
/* =========================================================
   TOKENS — paleta Salão Gálbano (NÃO MUDA)
   ========================================================= */
:root{
  /* fundos */
  --bg-page:        #e8d8bd;     /* champagne principal */
  --bg-soft:        #f0e0c4;     /* bege mais claro */
  --bg-card:        #faf2e1;     /* cards claros cream */
  --bg-cream:       #fdf9f0;     /* off-white quente */
  --bg-nav:         #f6e7cd;     /* barra inferior */
  --bg-overlay:     rgba(43, 31, 15, 0.55);

  /* dourados / castanhos */
  --gold:           #8b6f3f;
  --gold-dark:      #6b5530;
  --gold-deeper:    #4d3a1d;
  --gold-deepest:   #2b1f0f;
  --gold-mid:       #c9a875;
  --gold-soft:      #d9bd8b;
  --gold-warm:      #b48f5a;
  --gold-glow:      rgba(201, 168, 117, 0.35);

  /* textos */
  --text:           #2b1f0f;
  --text-body:      #4a3a25;
  --text-mute:      #8a7458;
  --text-soft:      #6e5a3d;

  /* raios / sombras */
  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-2xl: 36px;
  --r-pill: 999px;

  --shadow-sm: 0 1px 3px rgba(43,31,15,0.08);
  --shadow-md: 0 6px 18px rgba(43,31,15,0.12);
  --shadow-lg: 0 14px 36px rgba(43,31,15,0.18);
  --shadow-xl: 0 24px 60px rgba(43,31,15,0.25);
  --shadow-gold: 0 8px 22px rgba(139,111,63,0.40);
}

*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  background:
    radial-gradient(1200px 800px at 100% -20%, rgba(196,160,108,0.30), transparent 60%),
    radial-gradient(900px 600px at -10% 110%, rgba(180,143,90,0.18), transparent 60%),
    linear-gradient(180deg, #e6d4b6 0%, #ead8b9 100%);
  color: var(--text-body);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  overflow-x: hidden;
}
h1,h2,h3,h4{ font-family:'Cormorant Garamond', 'Playfair Display', serif; color: var(--text); margin:0; font-weight: 600; letter-spacing: -0.2px;}
button{ font-family: inherit; cursor: pointer; border: none; background: none; }
a{ color: inherit; text-decoration: none; }
input{ font-family: inherit; }
img{ max-width: 100%; display: block; }

/* fontes especiais */
.font-script{ font-family: 'Allura', cursive; font-weight: 400; }
.font-serif{ font-family: 'Cormorant Garamond', 'Playfair Display', serif; }

/* =========================================================
   APP — moldura mobile em telas grandes
   ========================================================= */
.app{
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  min-height: 100vh;
  background: transparent;
  position: relative;
  padding-bottom: 110px;
}

/* =========================================================
   WELCOME / HERO
   ========================================================= */
.welcome{
  position: relative;
  padding: 18px 22px 6px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 12px;
  align-items: start;
  min-height: 280px;
}
.welcome-text{ position: relative; z-index: 2; padding-top: 6px;}
.welcome-text .hi{
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 28px;
  color: var(--text);
  line-height: 1.1;
  margin-bottom: 2px;
}
.welcome-text .name{
  font-family: 'Allura', cursive;
  font-size: 64px;
  line-height: 0.95;
  color: var(--gold-dark);
  margin: 0 0 4px;
  font-weight: 400;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.welcome-text .name::after{
  content: "♥";
  font-size: 22px;
  color: var(--gold-mid);
  margin-top: 14px;
  font-family: 'Cormorant Garamond', serif;
}
.welcome-text .sub{
  font-size: 14px;
  color: var(--text-body);
  margin: 0;
  line-height: 1.35;
  max-width: 220px;
}
.welcome-text .sub .sparkle{ color: var(--gold); }

.bell-btn{
  position: absolute;
  top: 18px; right: 18px;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--bg-card);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
  border: 1px solid rgba(139,111,63,0.18);
  box-shadow: var(--shadow-sm);
  z-index: 3;
  transition: all .2s;
}
.bell-btn:active{ transform: scale(0.95); }
.bell-btn svg{ width: 18px; height: 18px; }
.bell-btn .dot{
  position: absolute; top: 10px; right: 10px;
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--danger, #c46a4a);
  border: 2px solid var(--bg-card);
}

.welcome-img{
  position: relative;
  height: 230px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
  background: linear-gradient(135deg, #d9bd8b, #8b6f3f);
}
.welcome-img img{
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.welcome-img::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(43,31,15,0.20));
  pointer-events: none;
}

/* =========================================================
   PRÓXIMO AGENDAMENTO
   ========================================================= */
.next-appt{
  margin: 6px 18px 0;
  background: var(--bg-card);
  border-radius: var(--r-lg);
  padding: 18px 18px;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 14px;
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(139,111,63,0.08);
  position: relative;
  overflow: hidden;
}
.next-appt::before{
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold-soft), transparent);
}
.appt-ico{
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fbf2dd, #ead7b6);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-dark);
  flex-shrink: 0;
}
.appt-ico svg{ width: 26px; height: 26px; }
.appt-info{ min-width: 0;}
.appt-info .lbl{
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: var(--gold-dark);
  font-weight: 600;
  display: block;
  margin-bottom: 4px;
}
.appt-info .when{
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  display: block;
  line-height: 1.2;
}
.appt-info .what{
  font-size: 13px;
  color: var(--text-mute);
  display: block;
  margin-top: 2px;
}
.btn-outline{
  padding: 9px 16px;
  background: transparent;
  color: var(--gold-dark);
  border: 1.5px solid var(--gold-mid);
  border-radius: var(--r-pill);
  font-size: 12px;
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .2s;
  white-space: nowrap;
}
.btn-outline:active{ transform: scale(0.96); }
.btn-outline svg{ width: 12px; height: 12px; }

/* =========================================================
   NOSSOS SERVIÇOS — galeria horizontal
   ========================================================= */
.section-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 22px 12px;
}
.section-head h2{
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  color: var(--text);
  font-weight: 600;
  letter-spacing: -0.3px;
}
.section-head a{
  font-size: 13px;
  color: var(--gold-dark);
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 4px;
}
.section-head a svg{ width: 14px; height: 14px; }

.gallery{
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 0 18px 8px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.gallery::-webkit-scrollbar{ display: none; }
.gallery .card{
  flex: 0 0 165px;
  background: var(--bg-card);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  scroll-snap-align: start;
  position: relative;
  border: 1px solid rgba(139,111,63,0.08);
  transition: all .25s;
  cursor: pointer;
}
.gallery .card:active{ transform: scale(0.97); }
.gallery .card .photo{
  width: 100%;
  aspect-ratio: 1;
  background: linear-gradient(135deg, #ead7b6, #c9a875);
  overflow: hidden;
  position: relative;
}
.gallery .card .photo img{
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .4s;
}
.gallery .card:hover .photo img{ transform: scale(1.05);}
.gallery .card .meta{
  padding: 10px 12px 12px;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.gallery .card .meta .text{ min-width: 0; flex: 1;}
.gallery .card .meta .ttl{
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
  color: var(--text);
  font-weight: 600;
  line-height: 1.1;
}
.gallery .card .meta .sub{
  font-size: 11px;
  color: var(--text-mute);
  margin-top: 2px;
  line-height: 1.2;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gallery .card .arrow{
  width: 26px; height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-soft), var(--gold));
  color: var(--bg-cream);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  margin-top: -8px;
}
.gallery .card .arrow svg{ width: 12px; height: 12px; }

/* =========================================================
   PRODUTOS PREMIUM — banner
   ========================================================= */
.products{
  margin: 24px 18px 0;
  background: linear-gradient(135deg, #f3e0c1 0%, #ead7b6 100%);
  border-radius: var(--r-xl);
  padding: 24px 22px;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 14px;
  align-items: center;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(139,111,63,0.12);
}
.products::before{
  content: "";
  position: absolute;
  top: -50px; right: -30px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,255,255,0.4), transparent 60%);
  pointer-events: none;
}
.products-content{ position: relative; z-index: 1; }
.products .eyebrow{
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: var(--gold-dark);
  font-weight: 700;
  display: block;
  margin-bottom: 8px;
}
.products h3{
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  line-height: 1.1;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 14px;
  letter-spacing: -0.3px;
}
.products .btn-prod{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  background: transparent;
  color: var(--gold-dark);
  border: 1.5px solid var(--gold-mid);
  border-radius: var(--r-pill);
  font-size: 12px;
  font-weight: 600;
  transition: all .2s;
}
.products .btn-prod:active{ transform: scale(0.96); }
.products .btn-prod svg{ width: 12px; height: 12px; }

.products-img{
  position: relative;
  height: 130px;
  border-radius: var(--r-md);
  overflow: hidden;
  background: linear-gradient(135deg, #d9bd8b, #8b6f3f);
}
.products-img img{
  width: 100%; height: 100%; object-fit: cover;
}

/* =========================================================
   BOTTOM NAV — 5 ITENS IGUAIS + AGENDAR ELEVADO
   ========================================================= */
.bottom-nav{
  position: fixed;
  bottom: 14px; left: 0; right: 0;
  z-index: 50;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.bottom-nav-inner{
  width: calc(100% - 28px);
  max-width: 460px;
  background: var(--bg-cream);
  border-radius: var(--r-pill);
  box-shadow: 0 12px 32px rgba(43,31,15,0.18);
  padding: 10px 6px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: center;
  pointer-events: auto;
  position: relative;
  border: 1px solid rgba(139,111,63,0.10);
}
.bn-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 6px 0 4px;
  color: var(--text-mute);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3px;
  transition: all .2s;
  cursor: pointer;
  min-width: 0;
}
.bn-item svg{ width: 22px; height: 22px; transition: all .2s; }
.bn-item.active{ color: var(--gold-dark); }
.bn-item.active svg{ color: var(--gold-dark); transform: scale(1.05);}
.bn-item:active{ transform: scale(0.95); }

/* AGENDAR — coluna central com botão elevado */
.bn-item.bn-agendar-item{
  position: relative;
  padding-top: 0;
}
.bn-agendar-btn{
  width: 54px; height: 54px;
  border-radius: 50%;
  background: linear-gradient(145deg, #b48f5a 0%, #8b6f3f 55%, #6b5530 100%);
  color: var(--bg-cream);
  display: flex; align-items: center; justify-content: center;
  box-shadow:
    0 0 0 4px var(--bg-page),
    0 0 0 6px rgba(139,111,63,0.25),
    0 10px 22px rgba(43,31,15,0.35);
  margin-top: -22px;
  margin-bottom: -2px;
  position: relative;
  transition: all .25s;
}
.bn-agendar-btn::before{
  content: "";
  position: absolute; inset: 3px;
  border-radius: 50%;
  border: 1px solid rgba(243,220,166,0.30);
  pointer-events: none;
}
.bn-agendar-btn:active{ transform: scale(0.95); }
.bn-agendar-btn:hover{ transform: translateY(-2px) scale(1.04); }
.bn-agendar-btn svg{ width: 24px; height: 24px; }
.bn-item.bn-agendar-item .bn-label{
  color: var(--gold-dark);
  font-weight: 700;
}

/* =========================================================
   MODAL — WIZARD DE AGENDAMENTO (mantido)
   ========================================================= */
.modal-overlay{
  position: fixed; inset: 0;
  background: var(--bg-overlay);
  z-index: 100;
  display: none;
  align-items: flex-end;
  justify-content: center;
  opacity: 0;
  transition: opacity .3s;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.modal-overlay.open{ display: flex; opacity: 1; animation: fadeIn .3s ease both;}
@keyframes fadeIn{ from{opacity:0;} to{opacity:1;} }
.modal{
  width: 100%;
  max-width: 480px;
  max-height: 92vh;
  background: linear-gradient(180deg, #f5e8d0 0%, #faf2e1 100%);
  border-radius: 28px 28px 0 0;
  box-shadow: var(--shadow-xl);
  display: flex; flex-direction: column; overflow: hidden;
  animation: slideUp .35s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes slideUp{ from{ transform: translateY(100%);} to{ transform: translateY(0);} }
.modal-handle{ width: 40px; height: 4px; background: rgba(139,111,63,0.30); border-radius: 2px; margin: 10px auto 0;}
.modal-header{
  padding: 18px 22px 12px;
  border-bottom: 1px solid rgba(139,111,63,0.10);
  display: flex; align-items: center; justify-content: space-between;
}
.modal-header h2{
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px; color: var(--text); font-weight: 600;
}
.modal-close{
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--bg-card); color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(139,111,63,0.15);
}
.modal-close:active{ transform: scale(0.92); }
.modal-close svg{ width: 16px; height: 16px; }
.progress{ display: flex; gap: 4px; padding: 0 22px 14px;}
.progress span{
  flex: 1; height: 4px;
  background: rgba(139,111,63,0.15);
  border-radius: 2px;
  transition: background .3s;
}
.progress span.on{ background: linear-gradient(90deg, var(--gold-mid), var(--gold-dark)); }
.progress span.done{ background: var(--gold); }
.steps-label{
  display: flex; justify-content: space-between;
  padding: 0 22px 16px;
  font-size: 10px; color: var(--text-mute);
  text-transform: uppercase; letter-spacing: 1px; font-weight: 600;
}
.steps-label .on{ color: var(--gold-dark); }
.modal-body{ flex: 1; overflow-y: auto; padding: 0 22px 22px; -webkit-overflow-scrolling: touch;}
.step{ display: none; animation: stepIn .35s ease both;}
.step.active{ display: block; }
@keyframes stepIn{ from{ opacity: 0; transform: translateX(10px);} to{ opacity: 1; transform: translateX(0);} }
.step h3{ font-family: 'Cormorant Garamond', serif; font-size: 20px; margin-bottom: 6px; color: var(--text); font-weight: 600;}
.step .sub{ font-size: 13px; color: var(--text-mute); margin-bottom: 18px;}

.cat-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;}
.cat-card{
  background: var(--bg-card);
  border: 1.5px solid transparent;
  border-radius: var(--r-lg);
  padding: 18px 16px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  box-shadow: var(--shadow-sm);
  transition: all .25s;
  text-align: left;
}
.cat-card.selected{
  border-color: var(--gold);
  background: linear-gradient(135deg, #fbf2dd, #f5e2bf);
  box-shadow: 0 4px 14px rgba(139,111,63,0.20);
}
.cat-card:active{ transform: scale(0.98); }
.cat-card .cat-ico{
  width: 46px; height: 46px; border-radius: 50%;
  background: linear-gradient(135deg, #fbf2dd, #d9bd8b);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-dark);
}
.cat-card .cat-ico svg{ width: 24px; height: 24px; }
.cat-card .cat-name{ font-size: 14px; font-weight: 600; color: var(--text); }
.cat-card .cat-count{ font-size: 11px; color: var(--text-mute); }

.svc-list{ display: flex; flex-direction: column; gap: 10px;}
.svc-item{
  background: var(--bg-card);
  border: 1.5px solid transparent;
  border-radius: var(--r-md);
  padding: 14px 16px;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  box-shadow: var(--shadow-sm);
  transition: all .25s;
  cursor: pointer;
}
.svc-item:active{ transform: scale(0.98); }
.svc-item.selected{
  border-color: var(--gold);
  background: linear-gradient(135deg, #fbf2dd, #f5e2bf);
}
.svc-item .svc-info{ flex: 1; min-width: 0;}
.svc-item .svc-name{ font-size: 14px; font-weight: 600; color: var(--text);}
.svc-item .svc-desc{ font-size: 11px; color: var(--text-mute); margin-top: 2px;}
.svc-item .svc-meta{ display: flex; flex-direction: column; align-items: flex-end; gap: 2px;}
.svc-item .svc-price{ font-size: 14px; font-weight: 700; color: var(--gold-dark);}
.svc-item .svc-dur{ font-size: 10px; color: var(--text-mute);}

.pro-list{ display: flex; flex-direction: column; gap: 10px;}
.pro-card{
  background: var(--bg-card);
  border: 1.5px solid transparent;
  border-radius: var(--r-md);
  padding: 14px;
  display: flex; align-items: center; gap: 12px;
  box-shadow: var(--shadow-sm);
  transition: all .25s; cursor: pointer;
}
.pro-card:active{ transform: scale(0.98); }
.pro-card.selected{
  border-color: var(--gold);
  background: linear-gradient(135deg, #fbf2dd, #f5e2bf);
}
.pro-avatar{
  width: 52px; height: 52px; border-radius: 50%;
  background: linear-gradient(135deg, #f3dca6, #c9a875 60%, #8b6f3f);
  color: var(--gold-deepest);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 700;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(139,111,63,0.30);
  position: relative; overflow: hidden;
}
.pro-avatar::before{
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 25%, rgba(255,255,255,0.5), transparent 50%);
}
.pro-avatar span{ position: relative; z-index: 2; }
.pro-avatar.has-photo::before{ z-index:1; background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(43,31,15,.05)); }
.pro-avatar.has-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:0; }
.pro-avatar.has-photo .pro-avatar-fallback{ display:none; }
.pro-avatar.has-photo img[hidden] + .pro-avatar-fallback{ display:block; }
.pro-info{ flex: 1; min-width: 0;}
.pro-name{ font-size: 14px; font-weight: 600; color: var(--text);}
.pro-spec{ font-size: 11px; color: var(--text-mute); margin-top: 2px;}
.pro-next{
  font-size: 10px; color: var(--gold-dark);
  background: rgba(201,168,117,0.20);
  padding: 7px 11px; border-radius: 12px; font-weight: 700; white-space: nowrap;
  border:1px solid rgba(139,111,63,.08);
  transition:transform .2s ease,background .2s ease;
}
.pro-next:active{transform:scale(.96);}

.cal-head{ display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px;}
.cal-month{ font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 600; color: var(--text);}
.cal-nav{ display: flex; gap: 6px;}
.cal-nav button{
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--bg-card); color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(139,111,63,0.15);
}
.cal-nav button:disabled{ opacity: 0.3; pointer-events: none; }
.cal-nav svg{ width: 14px; height: 14px; }
.cal-week{ display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 6px;}
.cal-week span{
  text-align: center; font-size: 10px; text-transform: uppercase;
  letter-spacing: 1px; color: var(--text-mute); font-weight: 600; padding: 6px 0;
}
.cal-grid{ display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;}
.cal-day{
  aspect-ratio: 1; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 500; color: var(--text);
  background: var(--bg-card);
  border: 1.5px solid transparent;
  transition: all .2s; cursor: pointer; position: relative;
}
.cal-day:active{ transform: scale(0.92); }
.cal-day.dim{ color: rgba(138,116,88,0.30); background: transparent;}
.cal-day.disabled{
  color: rgba(138,116,88,0.30); background: rgba(232,216,189,0.40);
  cursor: not-allowed; pointer-events: none;
}
.cal-day.disabled::after{
  content: ""; position: absolute; width: 16px; height: 1px;
  background: rgba(138,116,88,0.40); transform: rotate(-30deg);
}
.cal-day.today{ font-weight: 700; color: var(--gold-dark); background: rgba(217,189,139,0.30);}
.cal-day.selected{
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: var(--bg-cream); font-weight: 700;
  box-shadow: 0 4px 12px rgba(139,111,63,0.35);
}

.time-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;}
.time-slot{
  padding: 12px 0; text-align: center;
  background: var(--bg-card);
  border: 1.5px solid transparent;
  border-radius: var(--r-md);
  font-size: 13px; font-weight: 600; color: var(--text);
  transition: all .2s; cursor: pointer;
}
.time-slot:active{ transform: scale(0.96); }
.time-slot.selected{
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: var(--bg-cream); border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(139,111,63,0.35);
}
.time-slot.disabled{
  color: rgba(138,116,88,0.40); background: rgba(232,216,189,0.40);
  cursor: not-allowed; pointer-events: none; text-decoration: line-through;
}

.form-field{ display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px;}
.form-field label{
  font-size: 11px; text-transform: uppercase; letter-spacing: 1.2px;
  color: var(--text-mute); font-weight: 600;
}
.form-field input{
  width:100%;
  max-width:100%;
  min-width:0;
  padding: 12px 14px;
  background: var(--bg-card);
  border: 1.5px solid rgba(139,111,63,0.15);
  border-radius: var(--r-md);
  font-size: 14px; color: var(--text); outline: none;
  transition: all .2s;
}
.form-field input:focus{ border-color: var(--gold); box-shadow: 0 0 0 4px rgba(201,168,117,0.20);}
.password-input-wrap{position:relative;width:100%;min-width:0;}
.password-input-wrap input{padding-right:46px!important;}
.password-strength-dot{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:13px;height:13px;border-radius:50%;background:#b9ac98;box-shadow:0 0 0 4px rgba(255,255,255,.48),0 1px 5px rgba(43,31,15,.16);transition:background .2s,box-shadow .2s;pointer-events:none;}
.password-strength-dot.is-empty{background:#c9baa3;opacity:.55;}
.password-strength-dot.is-weak{background:#c64b43;box-shadow:0 0 0 4px rgba(198,75,67,.12),0 1px 5px rgba(43,31,15,.16);}
.password-strength-dot.is-medium{background:#d4a62a;box-shadow:0 0 0 4px rgba(212,166,42,.13),0 1px 5px rgba(43,31,15,.16);}
.password-strength-dot.is-strong{background:#4e9a59;box-shadow:0 0 0 4px rgba(78,154,89,.13),0 1px 5px rgba(43,31,15,.16);}
.form-row{ display:grid; grid-template-columns:1fr; gap:0; width:100%; min-width:0; }
.login-toggle{
  display: flex; background: var(--bg-card);
  border-radius: var(--r-md); padding: 4px; margin-bottom: 18px;
  border: 1px solid rgba(139,111,63,0.10);
}
.login-toggle button{
  flex: 1; padding: 10px; font-size: 12px; font-weight: 600;
  color: var(--text-mute); border-radius: 10px; transition: all .2s;
}
.login-toggle button.active{
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  color: var(--bg-cream);
  box-shadow: 0 2px 8px rgba(139,111,63,0.30);
}

.summary{
  background: var(--bg-card); border-radius: var(--r-lg);
  padding: 20px; box-shadow: var(--shadow-sm); margin-bottom: 14px;
}
.sum-row{
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(139,111,63,0.15);
  font-size: 13px;
}
.sum-row:last-child{ border-bottom: none; }
.sum-row .lbl{ color: var(--text-mute); font-size: 12px;}
.sum-row .val{ color: var(--text); font-weight: 600; text-align: right;}
.sum-row .val.pro-val{ display: flex; align-items: center; gap: 8px;}
.sum-row .mini-avatar{
  width: 26px; height: 26px; border-radius: 50%;
  background: linear-gradient(135deg, #f3dca6, #8b6f3f);
  color: var(--gold-deepest);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif; font-size: 11px; font-weight: 700;
  box-shadow: 0 2px 6px rgba(139,111,63,0.30);
}

.modal-footer{
  padding: 14px 22px 22px;
  background: var(--bg-card);
  border-top: 1px solid rgba(139,111,63,0.10);
  display: flex; gap: 10px;
}
.btn-back{
  padding: 14px 20px; background: transparent;
  color: var(--gold-dark);
  border: 1.5px solid var(--gold-mid);
  border-radius: var(--r-pill);
  font-size: 13px; font-weight: 600;
}
.btn-back:active{ transform: scale(0.97); }
.btn-next{
  flex: 1; padding: 14px 20px;
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%);
  color: var(--bg-cream);
  border-radius: var(--r-pill);
  font-size: 14px; font-weight: 600;
  letter-spacing: 0.3px;
  box-shadow: var(--shadow-gold);
}
.btn-next:disabled{
  background: rgba(139,111,63,0.30);
  box-shadow: none;
  color: rgba(253,249,240,0.60);
  cursor: not-allowed;
}
.btn-next:not(:disabled):active{ transform: scale(0.98); }

/* =========================================================
   MINI MODAL — RESUMO FLUTUANTE (mantido)
   ========================================================= */
.mini-overlay{
  position: fixed; inset: 0;
  background: rgba(43, 31, 15, 0.55);
  z-index: 200;
  display: none; align-items: center; justify-content: center;
  padding: 20px; opacity: 0; transition: opacity .3s;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.mini-overlay.open{ display: flex; opacity: 1; }
.mini-modal{
  width: 100%; max-width: 360px;
  background: linear-gradient(180deg, #faf2e1 0%, #f5e8d0 100%);
  border-radius: 24px;
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  animation: popIn .4s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes popIn{ from{ opacity: 0; transform: scale(0.85) translateY(20px);} to{ opacity: 1; transform: scale(1) translateY(0);} }
.mini-top{
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%);
  padding: 22px 22px 18px;
  color: var(--bg-cream);
  position: relative;
}
.mini-top::after{
  content: ""; position: absolute; bottom: -16px; left: 50%;
  transform: translateX(-50%);
  width: 32px; height: 32px;
  background: var(--bg-cream);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.10);
}
.mini-top::before{
  content: ""; position: absolute; bottom: -10px; left: 50%;
  transform: translateX(-50%);
  width: 18px; height: 18px;
  background: var(--gold-mid);
  border-radius: 50%;
  z-index: 1;
}
.mini-greet{
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px; font-weight: 600; margin-bottom: 4px;
}
.mini-sub{ font-size: 12px; opacity: 0.85;}
.mini-icon{
  position: absolute; top: 22px; right: 22px;
  width: 36px; height: 36px;
  background: rgba(253,249,240,0.15);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.mini-icon svg{ width: 18px; height: 18px; color: var(--bg-cream); }
.mini-body{ padding: 32px 22px 18px;}
.mini-body h3{
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px; margin-bottom: 12px; text-align: center;
}
.mini-list{ display: flex; flex-direction: column; gap: 6px;}
.mini-list .l{
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  background: var(--bg-card);
  border-radius: var(--r-md);
  font-size: 13px;
}
.mini-list .l .k{ color: var(--text-mute); font-size: 11px; min-width: 90px;}
.mini-list .l .v{ color: var(--text); font-weight: 600; flex: 1; text-align: right;}
.mini-list .l .v.pro{ display: flex; align-items: center; gap: 8px; justify-content: flex-end;}
.mini-list .l .mini-avatar{
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, #f3dca6, #8b6f3f);
  color: var(--gold-deepest);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 12px; font-weight: 700;
  box-shadow: 0 2px 6px rgba(139,111,63,0.30);
}
.mini-actions{ display: flex; gap: 10px; padding: 0 22px 22px;}
.mini-actions button{
  flex: 1; padding: 13px;
  border-radius: var(--r-pill);
  font-size: 13px; font-weight: 700;
  letter-spacing: 0.5px; text-transform: uppercase;
}
.mini-actions .btn-corrigir{
  background: transparent;
  color: var(--gold-dark);
  border: 1.5px solid var(--gold-mid);
}
.mini-actions .btn-confirmar{
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%);
  color: var(--bg-cream);
  box-shadow: var(--shadow-gold);
}
.mini-actions button:active{ transform: scale(0.97); }

.success-state{ text-align: center; padding: 20px 0 0;}
.success-state .check{
  width: 80px; height: 80px; border-radius: 50%;
  background: linear-gradient(135deg, #8b6f3f, #6b5530);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
  animation: bounceIn .5s cubic-bezier(.2,.7,.2,1) both;
  position: relative;
}
.success-state .check::before{
  content: ""; position: absolute; inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(139,111,63,0.20);
  animation: pulse 1.5s ease-out infinite;
}
@keyframes pulse{ 0%{ transform: scale(1); opacity: 1;} 100%{ transform: scale(1.4); opacity: 0;}}
@keyframes bounceIn{ from{ transform: scale(0);} to{ transform: scale(1);}}
.success-state .check svg{ width: 38px; height: 38px; color: var(--bg-cream);}
.success-state h3{ font-family: 'Cormorant Garamond', serif; font-size: 24px; margin-bottom: 6px; color: var(--text);}
.success-state p{ color: var(--text-mute); font-size: 13px; margin: 0 0 18px;}

.toast{
  position: fixed;
  bottom: 130px; left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--gold-deepest); color: var(--bg-cream);
  padding: 12px 20px;
  border-radius: var(--r-pill);
  font-size: 13px; font-weight: 500;
  z-index: 300; opacity: 0; pointer-events: none;
  transition: all .3s; box-shadow: var(--shadow-lg);
  display: flex; align-items: center; gap: 8px;
}
.toast.show{ opacity: 1; transform: translateX(-50%) translateY(0);}
.toast svg{ width: 16px; height: 16px; color: var(--gold-soft);}

@media (max-width: 380px){
  .welcome-text .name{ font-size: 56px;}
  .gallery .card{ flex: 0 0 145px;}
  .bn-agendar-btn{ width: 48px; height: 48px;}
  .bn-agendar-btn svg{ width: 20px; height: 20px;}
  .bn-label{ font-size: 9px;}
}


/* ===== Ajustes 1.2.3: formulário e resumos do agendamento ===== */
.form-field .field-help{font-size:10px;color:var(--text-mute);margin-top:2px;letter-spacing:.02em}
.summary{padding:18px 18px}
.sum-row{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);gap:14px;align-items:center;justify-content:initial}
.sum-row .lbl{line-height:1.25}
.sum-row .val{text-align:left;justify-self:stretch;min-width:0;overflow-wrap:anywhere}
.professional-inline{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%}
.professional-inline-name{font-weight:700;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.mini-avatar{position:relative;overflow:hidden;flex:0 0 auto}
.mini-avatar.has-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;z-index:2}
.mini-avatar.has-photo .avatar-fallback{position:relative;z-index:1}
.mini-avatar.has-photo img:not([hidden]) + .avatar-fallback{visibility:hidden}
.mini-avatar.has-photo img[hidden] + .avatar-fallback{visibility:visible}
.mini-list .l{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:center}
.mini-list .l .k{min-width:0}
.mini-list .l .v{text-align:left;min-width:0;overflow-wrap:anywhere}
.mini-list .l .v.pro{justify-content:flex-start}
.mini-professional-row .professional-inline{justify-content:flex-start}

@media(max-width:380px){
  .sum-row{grid-template-columns:82px minmax(0,1fr);gap:10px}
  .mini-list .l{grid-template-columns:76px minmax(0,1fr);gap:9px}
}

/* =========================================================
   1.2.5 — PRÓXIMO AGENDAMENTO COMPACTO
   Redução aproximada de 50% da altura visual do cartão,
   preservando a hierarquia e a leitura no telemóvel.
   ========================================================= */
.next-appt{
  margin:6px 18px 0;
  min-height:76px;
  padding:10px 12px;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:10px;
  border-radius:16px;
  align-items:center;
}
.next-appt::before{height:2px}
.next-appt .appt-ico{
  width:42px;
  height:42px;
}
.next-appt .appt-ico svg{
  width:20px;
  height:20px;
}
.next-appt .appt-info{
  min-width:0;
  align-self:center;
}
.next-appt .appt-info .lbl{
  margin-bottom:2px;
  font-size:9px;
  line-height:1.15;
  letter-spacing:1px;
}
.next-appt .appt-info .when{
  font-size:15px;
  line-height:1.05;
  margin:0;
}
.next-appt .appt-info .what{
  margin-top:3px;
  font-size:11px;
  line-height:1.2;
}
.next-appt .btn-outline{
  min-height:34px;
  padding:7px 12px;
  font-size:10.5px;
  line-height:1;
  justify-content:center;
  align-self:center;
  white-space:nowrap;
}
.next-appt .btn-outline svg{
  width:10px;
  height:10px;
}

@media(max-width:380px){
  .next-appt{
    margin-left:14px;
    margin-right:14px;
    min-height:72px;
    padding:9px 10px;
    grid-template-columns:38px minmax(0,1fr) auto;
    gap:8px;
  }
  .next-appt .appt-ico{width:38px;height:38px}
  .next-appt .appt-ico svg{width:18px;height:18px}
  .next-appt .appt-info .lbl{font-size:8px;letter-spacing:.8px}
  .next-appt .appt-info .when{font-size:14px}
  .next-appt .appt-info .what{font-size:10px}
  .next-appt .btn-outline{padding:7px 10px;font-size:9.5px}
}


/* =========================================================
   PREVIEW DA AGENDA — SOMENTE LEITURA
   ========================================================= */
.schedule-preview-overlay{
  position:fixed; inset:0; z-index:260;
  display:none; align-items:flex-end; justify-content:center;
  background:rgba(43,31,15,.48);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; transition:opacity .25s ease;
}
.schedule-preview-overlay.open{display:flex;opacity:1;animation:fadeIn .25s ease both;}
.schedule-preview-modal{
  position:relative; width:min(440px,100%); max-height:min(82vh,720px);
  overflow-y:auto; overscroll-behavior:contain;
  padding:18px 20px calc(24px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,#f9ecd4 0%,#fff8e9 100%);
  border-radius:28px 28px 0 0; box-shadow:0 -18px 48px rgba(43,31,15,.26);
  animation:slideUp .3s cubic-bezier(.2,.7,.2,1) both;
}
.schedule-preview-handle{width:42px;height:4px;border-radius:999px;background:rgba(139,111,63,.28);margin:0 auto 18px;}
.schedule-preview-close{
  position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;background:#fff8e9;color:var(--gold-dark);
  border:1px solid rgba(139,111,63,.18);box-shadow:0 3px 10px rgba(43,31,15,.08);z-index:2;
}
.schedule-preview-close svg{width:18px;height:18px;}
.schedule-preview-close:active{transform:scale(.94);}
.schedule-preview-head{display:flex;align-items:center;gap:13px;padding-right:46px;margin-bottom:18px;}
.schedule-preview-avatar{
  width:58px;height:58px;border-radius:50%;flex:0 0 58px;overflow:hidden;position:relative;
  display:grid;place-items:center;background:linear-gradient(135deg,#f3dca6,#c9a875 60%,#8b6f3f);
  color:var(--gold-deepest);font:700 19px/1 'Cormorant Garamond',serif;box-shadow:0 5px 14px rgba(139,111,63,.24);
}
.schedule-preview-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.schedule-preview-person{min-width:0;}
.schedule-preview-kicker{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1.6px;color:var(--gold-dark);font-weight:700;margin-bottom:2px;}
.schedule-preview-person h3{font:600 24px/1.05 'Cormorant Garamond',serif;color:var(--text);margin:0;}
.schedule-preview-person p{margin:4px 0 0;font-size:11px;color:var(--text-mute);line-height:1.35;}
.schedule-preview-toolbar{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin:2px 0 12px;}
.schedule-preview-toolbar button{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--bg-card);color:var(--gold-dark);border:1px solid rgba(139,111,63,.14);}
.schedule-preview-toolbar button:disabled{opacity:.28;pointer-events:none;}
.schedule-preview-toolbar button svg{width:16px;height:16px;}
.schedule-preview-toolbar strong{text-align:center;font:600 20px/1 'Cormorant Garamond',serif;color:var(--text);text-transform:capitalize;}
.schedule-preview-week,.schedule-preview-grid{display:grid;grid-template-columns:repeat(7,1fr);}
.schedule-preview-week{margin-bottom:5px;}
.schedule-preview-week span{text-align:center;padding:5px 1px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-mute);}
.schedule-preview-grid{gap:5px;}
.schedule-preview-day{
  aspect-ratio:1;border-radius:10px;display:grid;place-items:center;position:relative;
  font-size:11px;font-weight:700;border:1px solid rgba(139,111,63,.12);background:rgba(255,255,255,.38);color:var(--text);
}
.schedule-preview-day.is-dim{border-color:transparent;background:transparent;color:rgba(138,116,88,.24);font-weight:500;}
.schedule-preview-day.is-available{background:linear-gradient(135deg,#f8e5bd,#ead1a1);border-color:rgba(139,111,63,.34);color:var(--gold-deepest);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);}
.schedule-preview-day.is-available::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;bottom:5px;background:var(--gold-dark);}
.schedule-preview-day.is-unavailable{background:rgba(232,216,189,.34);color:rgba(110,90,61,.42);}
.schedule-preview-day.is-unavailable::after{content:"";position:absolute;width:15px;height:1px;background:rgba(110,90,61,.28);transform:rotate(-32deg);}
.schedule-preview-day.is-today{outline:2px solid rgba(139,111,63,.50);outline-offset:1px;}
.schedule-preview-grid .schedule-preview-loading{grid-column:1/-1;text-align:center;padding:32px 8px;color:var(--text-mute);font-size:12px;}
.schedule-preview-legend{display:flex;gap:18px;justify-content:center;align-items:center;margin:16px 0 8px;font-size:10px;color:var(--text-soft);}
.schedule-preview-legend span{display:flex;align-items:center;gap:6px;}
.schedule-preview-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(139,111,63,.25);}
.schedule-preview-legend i.is-available{background:#ead1a1;}
.schedule-preview-legend i.is-unavailable{background:rgba(232,216,189,.55);}
.schedule-preview-note{margin:0;text-align:center;font-size:10px;line-height:1.45;color:var(--text-mute);}
@media(max-width:380px){
  .schedule-preview-modal{padding-left:16px;padding-right:16px;}
  .schedule-preview-grid{gap:4px;}
  .schedule-preview-day{font-size:10px;border-radius:9px;}
}

/* 1.3.7 — controlo universal para mostrar/ocultar palavra-passe */
.galbano-password-wrap{position:relative;display:block;width:100%}
.galbano-password-wrap>input{width:100%;padding-right:48px!important}
.galbano-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0!important;border-radius:50%;background:transparent!important;color:inherit;opacity:.72;display:flex;align-items:center;justify-content:center;padding:0!important;margin:0!important;box-shadow:none!important;cursor:pointer;z-index:3}
.galbano-password-toggle:hover{opacity:1;background:rgba(139,111,63,.08)!important}
.galbano-password-toggle:focus-visible{outline:2px solid currentColor;outline-offset:1px}
.galbano-password-toggle svg{width:19px;height:19px;display:block;pointer-events:none}
.galbano-auth-options{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-2px 0 2px;font-size:12px}
.galbano-auth-remember{display:inline-flex;align-items:center;gap:7px;color:var(--galbano-text,#754e21);font-weight:600;cursor:pointer}
.galbano-auth-remember input{width:16px!important;height:16px!important;min-height:0!important;margin:0;accent-color:var(--galbano-primary,#8f642f)}
.galbano-auth-forgot-link{border:0;background:transparent;color:var(--galbano-primary,#8f642f);font:700 11px/1.2 inherit;text-transform:uppercase;letter-spacing:.03em;padding:4px 0;cursor:pointer;text-decoration:none}
/* 1.3.7 — no cadastro da home, preserva também o indicador de força ao lado do olho */
.password-input-wrap .galbano-password-wrap>input{padding-right:82px!important}
.password-input-wrap .galbano-password-toggle{right:34px}


/* =========================================================
   1.3.9 — HERO LIMPO + SLIDES REAIS NA HOME PÚBLICA
   ========================================================= */
.welcome{
  display:block;
  min-height:0;
  padding:18px 22px 12px;
}
.welcome-text{
  width:100%;
  padding-top:6px;
  padding-right:58px;
}
.welcome-text .sub{
  max-width:290px;
}
.welcome-img{display:none!important;}

.home-service-slideshow{
  position:relative;
  width:100%;
  aspect-ratio:16 / 7.2;
  min-height:150px;
  max-height:235px;
  margin:2px 0 12px;
  overflow:hidden;
  background:linear-gradient(135deg,#ead7b6,#c9a875);
  box-shadow:0 9px 24px rgba(43,31,15,.14);
  isolation:isolate;
}
.home-service-slideshow[hidden]{display:none!important;}
.home-service-slides{
  position:absolute;
  inset:0;
}
.home-service-slide{
  position:absolute;
  margin:0;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .85s ease, visibility .85s ease;
  pointer-events:none;
}
.home-service-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  z-index:2;
}
.home-service-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.home-service-slide::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:28%;
  background:linear-gradient(180deg,transparent,rgba(43,31,15,.13));
  pointer-events:none;
}
.home-service-dots{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:9px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(43,31,15,.20);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.home-service-dot{
  width:6px;
  height:6px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(253,249,240,.58);
  box-shadow:none;
  transition:width .25s ease, background .25s ease;
}
.home-service-dot.is-active{
  width:18px;
  border-radius:999px;
  background:var(--bg-cream);
}
.home-service-slideshow + .next-appt{
  margin-top:8px;
}
@media (max-width:380px){
  .welcome{padding-left:18px;padding-right:18px;padding-bottom:10px;}
  .welcome-text{padding-right:52px;}
  .home-service-slideshow{min-height:138px;aspect-ratio:16 / 7.4;}
}


/* =========================================================
   1.4.1 — RIBBON DIAGONAL COM ACABAMENTO TRANSLÚCIDO
   ========================================================= */
.welcome{
  padding-top:14px;
  padding-bottom:9px;
}
.welcome-text .hi{
  font-size:24px;
  line-height:1.05;
}
.welcome-text .name{
  font-size:56px;
  line-height:.92;
  margin-bottom:3px;
}
.welcome-text .name::after{
  font-size:19px;
  margin-top:10px;
}
.welcome-text .sub{
  font-size:13px;
  line-height:1.3;
  max-width:270px;
}
.home-service-slideshow{
  aspect-ratio:16 / 8.25;
  min-height:178px;
  max-height:265px;
  margin-top:4px;
}
.home-slide-ribbon{
  position:absolute;
  z-index:6;
  top:14px;
  left:-36px;
  width:148px;
  height:34px;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-size:10px;
  line-height:1;
  font-weight:800;
  letter-spacing:1.9px;
  text-transform:uppercase;
  color:rgba(253,249,240,.30);
  background:rgba(43,31,15,.30);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px 12px 12px 0;
  box-shadow:0 8px 18px rgba(43,31,15,.12);
  backdrop-filter:blur(7px) saturate(.9);
  -webkit-backdrop-filter:blur(7px) saturate(.9);
  transform:rotate(-45deg);
  transform-origin:center;
  pointer-events:none;
  overflow:hidden;
}
.home-slide-ribbon::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 42%,rgba(255,255,255,.08) 58%,rgba(0,0,0,.08));
  pointer-events:none;
}
.home-slide-ribbon::after{
  content:"";
  position:absolute;
  right:10px;
  top:3px;
  width:18px;
  height:18px;
  border-top:1px solid rgba(255,255,255,.18);
  opacity:.55;
  transform:rotate(0deg);
  pointer-events:none;
}
@media (max-width:380px){
  .welcome-text .hi{font-size:22px;}
  .welcome-text .name{font-size:50px;}
  .welcome-text .sub{font-size:12.5px;}
  .home-service-slideshow{aspect-ratio:16 / 8.45;min-height:170px;max-height:220px;}
  .home-slide-ribbon{left:-42px;top:11px;width:136px;height:31px;font-size:9px;letter-spacing:1.6px;}
}


/* =========================================================
   1.4.2 — RIBBON LEGÍVEL + HERO SEM SINO + VERSÍCULO DO DIA
   ========================================================= */
.bell-btn{display:none!important;}
.welcome-text{padding-right:0!important;}

.home-slide-ribbon{
  top:18px;
  left:-28px;
  width:150px;
  height:32px;
  padding:0 14px;
  font-size:7.2px;
  line-height:1;
  font-weight:800;
  letter-spacing:.75px;
  white-space:nowrap;
  text-align:center;
  overflow:visible;
}
.home-slide-ribbon::before,
.home-slide-ribbon::after{pointer-events:none;}

.next-appt.daily-verse{
  min-height:76px;
  padding:8px 16px 9px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  text-align:center;
  grid-template-columns:none;
}
.next-appt.daily-verse::before{height:2px;}
.daily-verse-title{
  width:100%;
  font-size:8px;
  line-height:1;
  font-weight:700;
  letter-spacing:1.25px;
  text-transform:uppercase;
  color:var(--gold-dark);
}
.daily-verse-copy{
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
}
.daily-verse-text{
  display:block;
  max-width:100%;
  font-family:'Cormorant Garamond','Playfair Display',serif;
  font-size:13px;
  line-height:1.08;
  font-weight:600;
  color:var(--text);
  letter-spacing:-.1px;
}
.daily-verse-ref{
  display:block;
  margin-top:1px;
  font-size:8.5px;
  line-height:1;
  font-weight:600;
  color:var(--text-mute);
}

@media(max-width:380px){
  .home-slide-ribbon{
    top:16px;
    left:-30px;
    width:144px;
    height:30px;
    padding:0 12px;
    font-size:6.7px;
    letter-spacing:.6px;
  }
  .next-appt.daily-verse{
    min-height:72px;
    padding:7px 12px 8px;
    gap:2px;
  }
  .daily-verse-title{font-size:7.4px;letter-spacing:1px;}
  .daily-verse-text{font-size:12px;line-height:1.05;}
  .daily-verse-ref{font-size:8px;}
}


/* =========================================================
   1.4.3 — HERO COM IMAGEM, REVELAÇÃO SUAVE E TEXTO ANIMADO
   ========================================================= */
.welcome{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 150px;
  align-items:start;
  gap:14px;
  min-height:196px;
  padding-top:14px;
  padding-bottom:8px;
}
.welcome-text{
  padding-top:6px;
  padding-right:0!important;
  min-width:0;
}
.welcome-text .hi,
.welcome-text .name,
.welcome-text .sub{
  will-change:transform,opacity;
}
.welcome-text .hi{
  display:inline-block;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  clip-path:inset(0 100% 0 0);
  opacity:0;
}
.welcome-text .hi.hero-animate-hi{
  animation:galbanoRevealLine 1.55s cubic-bezier(.2,.72,.2,1) forwards;
}
.welcome-text .name{
  opacity:0;
  transform:translateY(24px);
}
.welcome-text .name.hero-animate-name{
  animation:galbanoRiseName 1.05s cubic-bezier(.2,.8,.18,1) forwards;
}
.welcome-text .sub{
  min-height:36px;
}
.welcome-text .sub.hero-type-sub{
  position:relative;
}
.welcome-text .sub.hero-type-sub::after{
  content:"";
  display:inline-block;
  width:1.5px;
  height:1em;
  margin-left:4px;
  vertical-align:-.12em;
  background:rgba(143,100,47,.9);
  animation:galbanoBlinkCursor .95s step-end infinite;
}
.welcome-text .sub.hero-type-sub.is-complete::after{
  opacity:.45;
}
.welcome-visual{
  position:relative;
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  padding-top:2px;
}
.welcome-img{
  display:block!important;
  position:relative;
  width:100%;
  height:166px;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(73,53,26,.12);
  background:linear-gradient(135deg,#efe3ce,#d5b27a);
  opacity:0;
  transform:translateX(14px) scale(.985);
}
.welcome-img.hero-animate-image{
  animation:galbanoFadeImage 1.8s cubic-bezier(.24,.78,.24,1) .2s forwards;
}
.welcome-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(.92) brightness(1.04);
}
.welcome-img::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(247,240,228,.995) 0%,rgba(247,240,228,.92) 18%,rgba(247,240,228,.68) 38%,rgba(247,240,228,.34) 62%,rgba(247,240,228,.10) 82%,rgba(247,240,228,0) 100%);
  z-index:2;
  pointer-events:none;
}
.welcome-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(43,31,15,.06));
  z-index:3;
  pointer-events:none;
}
@keyframes galbanoRevealLine{
  from{clip-path:inset(0 100% 0 0);opacity:0;}
  to{clip-path:inset(0 0 0 0);opacity:1;}
}
@keyframes galbanoRiseName{
  from{opacity:0;transform:translateY(24px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes galbanoFadeImage{
  from{opacity:0;transform:translateX(14px) scale(.985);}
  to{opacity:1;transform:translateX(0) scale(1);}
}
@keyframes galbanoBlinkCursor{
  0%,46%{opacity:1;}
  47%,100%{opacity:0;}
}
@media (max-width:380px){
  .welcome{
    grid-template-columns:minmax(0,1fr) 132px;
    gap:12px;
    min-height:184px;
    padding-left:18px;
    padding-right:18px;
  }
  .welcome-text .hi{font-size:22px;}
  .welcome-text .name{font-size:50px;}
  .welcome-text .sub{font-size:12.5px;max-width:180px;}
  .welcome-img{height:154px;border-radius:28px;}
}


/* =========================================================
   1.4.4 — HERO MAIS SUAVE E ANIMAÇÃO MAIS LENTA
   ========================================================= */
.welcome-img{
  background:linear-gradient(135deg,#f4ead8,#d9bc87)!important;
}
.welcome-img img{
  filter:saturate(.9) brightness(1.06) contrast(.96)!important;
}


/* =========================================================
   1.4.5 — HERO FULL-WIDTH COM FUNDO INTEGRADO
   ========================================================= */
.welcome{
  display:block!important;
  position:relative!important;
  min-height:268px!important;
  margin:0!important;
  padding:18px 24px 8px!important;
  overflow:hidden;
  isolation:isolate;
}
.welcome::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url('../images/hero-salao-home-v148.png');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  opacity:0;
  transform:scale(1.03);
  animation:galbanoHeroSectionFade 2.6s cubic-bezier(.22,.74,.2,1) forwards;
  z-index:0;
}
.welcome::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(251,246,238,0.06) 0%, rgba(248,241,230,0.12) 42%, rgba(232,216,189,0.28) 78%, rgba(232,216,189,0.62) 100%),
    linear-gradient(90deg, rgba(248,242,233,0.16) 0%, rgba(248,242,233,0.05) 48%, rgba(248,242,233,0.02) 100%);
  z-index:1;
  pointer-events:none;
}
.welcome-visual{display:none!important;}
.welcome-text{
  position:relative;
  z-index:2;
  max-width:56%;
  min-width:0;
  padding-top:4px!important;
}
.welcome-text .hi{margin-bottom:4px;}
.welcome-text .name{margin-bottom:10px;}
.welcome-text .sub{
  max-width:205px;
  min-height:50px;
  line-height:1.34;
}
.welcome-text .hi.hero-animate-hi{
  animation-duration:1.95s!important;
}
.welcome-text .name.hero-animate-name{
  animation-duration:1.3s!important;
}
@keyframes galbanoHeroSectionFade{
  from{opacity:0; transform:scale(1.03);}
  to{opacity:1; transform:scale(1);}
}
@media (max-width:380px){
  .welcome{
    min-height:248px!important;
    padding:16px 18px 8px!important;
  }
  .welcome-text{max-width:58%; padding-top:2px!important;}
  .welcome-text .hi{font-size:21px!important;}
  .welcome-text .name{font-size:49px!important;}
  .welcome-text .sub{font-size:12.5px!important; max-width:176px; min-height:46px;}
}


/* =========================================================
   1.4.9 — AJUSTES FINOS HERO/SLIDES
   ========================================================= */
.home-service-slideshow{
  aspect-ratio:16 / 9.1;
  min-height:194px;
  max-height:286px;
  margin-top:12px;
}
.home-service-slide::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(251,246,238,0.00) 0%,
    rgba(251,246,238,0.03) 34%,
    rgba(251,246,238,0.12) 52%,
    rgba(251,246,238,0.34) 70%,
    rgba(251,246,238,0.70) 100%);
  pointer-events:none;
  z-index:1;
}
.home-service-slide::after{
  z-index:2;
}
.home-slide-ribbon{z-index:6;}
.home-service-dots{z-index:7;}

@media (max-width:380px){
  .home-service-slideshow{
    aspect-ratio:16 / 9.35;
    min-height:186px;
    max-height:246px;
    margin-top:10px;
  }
}


/* =========================================================
   1.4.10 — SLIDES ABAIXO DO TEXTO DO HERO
   ========================================================= */
.welcome{
  min-height:290px!important;
  padding:18px 24px 16px!important;
}
.welcome-text .sub{
  min-height:62px;
  margin-bottom:6px;
}
.home-service-slideshow{
  margin-top:16px;
}
@media (max-width:380px){
  .welcome{
    min-height:272px!important;
    padding:16px 18px 14px!important;
  }
  .welcome-text .sub{
    min-height:58px;
    margin-bottom:8px;
  }
  .home-service-slideshow{
    margin-top:14px;
  }
}


/* =========================================================
   1.4.11 — SLIDE IMEDIATAMENTE ABAIXO DO TEXTO
   ========================================================= */
.welcome{
  min-height:214px!important;
  padding:14px 24px 4px!important;
}
.welcome-text{
  max-width:52%!important;
  padding-top:2px!important;
}
.welcome-text .hi{margin-bottom:2px!important;}
.welcome-text .name{margin-bottom:8px!important;}
.welcome-text .sub{
  max-width:188px;
  min-height:40px;
  margin-bottom:0!important;
}
.home-service-slideshow{
  margin-top:0!important;
}
@media (max-width:380px){
  .welcome{
    min-height:198px!important;
    padding:12px 18px 2px!important;
  }
  .welcome-text{max-width:53%!important;}
  .welcome-text .hi{font-size:20px!important;}
  .welcome-text .name{font-size:46px!important; margin-bottom:6px!important;}
  .welcome-text .sub{font-size:12.5px!important; max-width:166px; min-height:36px;}
  .home-service-slideshow{margin-top:-2px!important;}
}


/* =========================================================
   1.4.12 — SLIDE MAIS PRÓXIMO DO TEXTO
   ========================================================= */
.welcome{
  min-height:206px!important;
  padding:12px 24px 2px!important;
}
.welcome-text .sub{
  min-height:34px!important;
  margin-bottom:0!important;
}
.home-service-slideshow{
  margin-top:-8px!important;
}
@media (max-width:380px){
  .welcome{
    min-height:190px!important;
    padding:10px 18px 2px!important;
  }
  .welcome-text .sub{
    min-height:32px!important;
  }
  .home-service-slideshow{
    margin-top:-10px!important;
  }
}


/* =========================================================
   1.4.13 — HERO MAIS BAIXO E SLIDE MAIS COLADO AO TEXTO
   ========================================================= */
.welcome{
  min-height:168px!important;
  padding:8px 24px 0!important;
}
.welcome-text{
  max-width:52%!important;
  padding-top:0!important;
}
.welcome-text .hi{
  margin-bottom:0!important;
}
.welcome-text .name{
  margin-bottom:6px!important;
}
.welcome-text .sub{
  max-width:182px!important;
  min-height:0!important;
  margin-bottom:0!important;
  line-height:1.24!important;
}
.home-service-slideshow{
  position:relative;
  z-index:4;
  margin-top:-18px!important;
}
@media (max-width:380px){
  .welcome{
    min-height:160px!important;
    padding:8px 18px 0!important;
  }
  .welcome-text{max-width:53%!important;}
  .welcome-text .hi{font-size:20px!important;}
  .welcome-text .name{font-size:45px!important; margin-bottom:4px!important;}
  .welcome-text .sub{
    font-size:12.5px!important;
    max-width:162px!important;
    min-height:0!important;
    line-height:1.22!important;
  }
  .home-service-slideshow{
    margin-top:-20px!important;
  }
}


/* =========================================================
   1.4.14 — SLIDE ENCOSTADO ABAIXO DO TEXTO
   ========================================================= */
.welcome{
  min-height:150px!important;
  padding:8px 24px 0!important;
}
.welcome-text .sub{
  margin-bottom:0!important;
}
.home-service-slideshow{
  margin-top:-34px!important;
}
@media (max-width:380px){
  .welcome{
    min-height:144px!important;
    padding:8px 18px 0!important;
  }
  .home-service-slideshow{
    margin-top:-36px!important;
  }
}


/* =========================================================
   1.4.15 — SLIDE COM TRANSPARÊNCIA REAL NO LADO DIREITO
   ========================================================= */
.home-service-slideshow{
  background:
    linear-gradient(180deg, rgba(251,246,238,.06) 0%, rgba(248,241,230,.14) 45%, rgba(232,216,189,.34) 100%),
    url('../images/hero-salao-home-v148.png') center top / cover no-repeat!important;
}
.home-service-slide::before{
  background:none!important;
}
.home-service-slide img{
  -webkit-mask-image:linear-gradient(90deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,.99) 36%,
    rgba(0,0,0,.92) 52%,
    rgba(0,0,0,.72) 68%,
    rgba(0,0,0,.38) 82%,
    rgba(0,0,0,.12) 92%,
    rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(90deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,.99) 36%,
    rgba(0,0,0,.92) 52%,
    rgba(0,0,0,.72) 68%,
    rgba(0,0,0,.38) 82%,
    rgba(0,0,0,.12) 92%,
    rgba(0,0,0,0) 100%);
}


/* =========================================================
   1.4.16 — FUNDO ÚNICO E CONTÍNUO PARA HERO + SLIDES
   ========================================================= */
.home-hero-stage{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.home-hero-stage::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:url('../images/hero-salao-home-v148.png') center top / cover no-repeat;
  opacity:0;
  transform:scale(1.03);
  animation:galbanoHeroSectionFade 2.6s cubic-bezier(.22,.74,.2,1) forwards;
  pointer-events:none;
}
/* O fundo deixa de existir dentro do .welcome para não ser renderizado duas vezes. */
.welcome::before{
  content:none!important;
  display:none!important;
  background:none!important;
}
.welcome{
  position:relative!important;
  z-index:2;
  background:transparent!important;
}
/* O slideshow também não recebe cópia do fundo: a máscara revela o ÚNICO fundo do wrapper. */
.home-service-slideshow{
  position:relative;
  z-index:3;
  background:transparent!important;
}
.home-service-slide{
  background:transparent!important;
}
.home-service-slide::before{
  background:none!important;
}
.home-service-slide img{
  -webkit-mask-image:linear-gradient(90deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 38%,
    rgba(0,0,0,.94) 54%,
    rgba(0,0,0,.74) 68%,
    rgba(0,0,0,.42) 81%,
    rgba(0,0,0,.16) 92%,
    rgba(0,0,0,0) 100%)!important;
  mask-image:linear-gradient(90deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 38%,
    rgba(0,0,0,.94) 54%,
    rgba(0,0,0,.74) 68%,
    rgba(0,0,0,.42) 81%,
    rgba(0,0,0,.16) 92%,
    rgba(0,0,0,0) 100%)!important;
}


/* =========================================================
   1.4.18 — REMOVE FAIXA/ESPAÇO ABAIXO DO SLIDESHOW
   ========================================================= */
.home-hero-stage{
  margin-bottom:0!important;
  padding-bottom:0!important;
}
.home-service-slideshow{
  margin-bottom:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
.home-service-slide{
  bottom:0!important;
}
.home-service-slide img{
  display:block!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  vertical-align:bottom!important;
}
/* remove o sombreado inferior antigo, que podia parecer uma borda/faixa */
.home-service-slide::after{
  content:none!important;
  display:none!important;
}
.next-appt.daily-verse{
  margin-top:0!important;
}


/* 1.4.19 — vale presente virtual */
.gift-float-trigger{position:fixed;right:18px;bottom:94px;z-index:70;border:none;background:none;padding:0;cursor:pointer;display:flex;align-items:flex-end;gap:10px;filter:drop-shadow(0 16px 30px rgba(101,67,26,.24));animation:giftFloat 3.8s ease-in-out infinite}
.gift-float-trigger img{width:min(132px,32vw);height:auto;display:block}
.gift-float-badge{display:inline-flex;flex-direction:column;justify-content:center;min-width:88px;min-height:68px;padding:10px 12px;border-radius:20px;background:linear-gradient(180deg,#fff7ea,#eed1a3);border:1px solid rgba(146,98,34,.22);color:#7b5321;font:800 12px/1.15 'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 10px 25px rgba(100,66,26,.18)}
.gift-overlay[hidden]{display:none!important}.gift-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(37,24,10,.55);backdrop-filter:blur(10px)}
.gift-modal{position:relative;width:min(920px,100%);max-height:min(92vh,980px);overflow:auto;border-radius:30px;background:linear-gradient(180deg,#fff8ee,#f4e1c5);box-shadow:0 30px 80px rgba(41,28,13,.32);padding:26px}
.gift-modal-close{position:absolute;right:16px;top:16px;width:42px;height:42px;border:none;border-radius:50%;background:rgba(255,255,255,.72);color:#6d4719;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 10px 22px rgba(71,45,16,.18)}
.gift-modal-body{display:grid;gap:18px}.gift-promo-hero{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:22px;align-items:center}.gift-promo-hero img{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 28px rgba(130,86,25,.16))}.gift-promo-copy h2{margin:0 0 10px;color:#6f481b;font:700 clamp(28px,4vw,40px)/1.05 'Cormorant Garamond',serif}.gift-promo-copy p{margin:0;color:#8c6940;font:500 15px/1.7 'Montserrat',sans-serif}.gift-promo-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.gift-promo-badges span,.gift-voucher-prize-chip{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border-radius:999px;background:linear-gradient(180deg,#fff6e7,#f0d7ae);border:1px solid rgba(157,109,36,.18);color:#7c5728;font:700 12px/1.2 'Montserrat',sans-serif;text-align:center}
.gift-promo-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.gift-promo-actions button,.gift-promo-actions a{border:none;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:16px;font:700 13px/1 'Montserrat',sans-serif}.gift-promo-actions .gift-primary{background:linear-gradient(180deg,#b88743,#8a5c23);color:#fff;box-shadow:0 14px 26px rgba(121,81,30,.24)}.gift-promo-actions .gift-secondary{background:rgba(255,255,255,.75);color:#7a5323;border:1px solid rgba(138,92,35,.16)}
.gift-voucher-card{position:relative;overflow:hidden;border-radius:30px;padding:26px;background:linear-gradient(180deg,#f8ead6,#edd8b8);border:1px solid rgba(150,109,55,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 16px 30px rgba(96,65,25,.12)}
.gift-voucher-watermark{position:absolute;inset:-10% -20%;display:flex;align-items:center;justify-content:center;font:700 54px/1 'Cormorant Garamond',serif;letter-spacing:.18em;color:rgba(135,99,48,.08);transform:rotate(-24deg);text-transform:uppercase;pointer-events:none;text-align:center}.gift-voucher-top,.gift-voucher-bottom,.gift-voucher-footer-grid{position:relative;z-index:1}.gift-voucher-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid rgba(147,105,52,.22)}.gift-voucher-brand{font:700 clamp(38px,5vw,64px)/.95 'Cormorant Garamond',serif;color:#8a5e28}.gift-voucher-seal{padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.44);border:1px solid rgba(147,105,52,.18);text-align:right;color:#775127;font:600 11px/1.5 'Montserrat',sans-serif}.gift-voucher-seal strong{display:block;font-size:14px;letter-spacing:.08em}
.gift-voucher-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr 1.3fr;gap:18px;padding:22px 0}.gift-voucher-col{padding-right:18px;border-right:1px solid rgba(146,107,58,.16)}.gift-voucher-col:last-child{border-right:none;padding-right:0}.gift-voucher-title{font:700 clamp(46px,5vw,68px)/.9 'Cormorant Garamond',serif;color:#855925;letter-spacing:.04em}.gift-voucher-sub{margin-top:10px;color:#8a6540;font:600 14px/1.6 'Montserrat',sans-serif;letter-spacing:.14em;text-transform:uppercase}.gift-voucher-mini{font:700 22px/1 'Cormorant Garamond',serif;color:#815724;letter-spacing:.14em}.gift-voucher-service{margin-top:8px;font:700 36px/1.08 'Cormorant Garamond',serif;color:#7a5120}.gift-voucher-meta{margin-top:14px;color:#906d46;font:500 13px/1.6 'Montserrat',sans-serif}.gift-voucher-choice-label{margin-bottom:10px;color:#8b6029;font:700 13px/1.4 'Montserrat',sans-serif;letter-spacing:.12em;text-transform:uppercase}.gift-voucher-prize-group{display:flex;flex-wrap:wrap;gap:10px}.gift-voucher-footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-top:18px;border-top:1px solid rgba(147,105,52,.18)}.gift-voucher-footer-grid span{display:block;color:#9b7750;font:700 10px/1.4 'Montserrat',sans-serif;letter-spacing:.18em;text-transform:uppercase}.gift-voucher-footer-grid strong{display:block;margin-top:6px;color:#714a1d;font:700 16px/1.3 'Montserrat',sans-serif}.gift-voucher-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:16px}.gift-voucher-contact{display:inline-flex;align-items:center;gap:8px;color:#7b572d;font:600 13px/1.5 'Montserrat',sans-serif}.gift-voucher-note{position:relative;z-index:1;margin-top:16px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.42);color:#8b6640;font:500 12px/1.7 'Montserrat',sans-serif}.gift-voucher-hint{margin:0;color:#7f582a;font:700 13px/1.6 'Montserrat',sans-serif;text-align:center}.gift-state-info{padding:18px;border-radius:22px;background:rgba(255,255,255,.55);color:#8a6540;font:500 14px/1.7 'Montserrat',sans-serif;text-align:center}
@keyframes giftFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(max-width:780px){.gift-float-trigger{right:12px;bottom:86px;gap:8px}.gift-float-trigger img{width:min(110px,34vw)}.gift-float-badge{min-width:74px;min-height:58px;font-size:11px;padding:8px 10px}.gift-promo-hero,.gift-voucher-grid,.gift-voucher-footer-grid{grid-template-columns:1fr}.gift-voucher-col{border-right:none;border-bottom:1px solid rgba(146,107,58,.16);padding-right:0;padding-bottom:14px}.gift-voucher-col:last-child{border-bottom:none;padding-bottom:0}.gift-voucher-top{flex-direction:column}.gift-modal{padding:18px 16px 20px}}


/* 1.4.20 — correção de clique + botão fechar dos balões */
.gift-float-shell{
  position:fixed;
  right:18px;
  bottom:94px;
  z-index:72;
  display:block;
  width:max-content;
  max-width:calc(100vw - 24px);
}
.gift-float-shell.is-dismissed{display:none!important}
.gift-float-shell .gift-float-trigger{
  position:relative!important;
  right:auto!important;
  bottom:auto!important;
  z-index:1;
  display:flex!important;
  align-items:flex-end;
  gap:10px;
  pointer-events:auto!important;
  touch-action:manipulation;
}
.gift-float-shell .gift-float-trigger,
.gift-float-shell .gift-float-trigger *{
  cursor:pointer!important;
}
.gift-float-dismiss{
  position:absolute;
  z-index:5;
  top:-7px;
  left:48px;
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:2px solid #fff;
  border-radius:50%;
  background:#d93025;
  color:#fff;
  font:800 22px/1 Arial,sans-serif;
  box-shadow:0 5px 14px rgba(99,24,17,.34);
  cursor:pointer;
  pointer-events:auto;
  touch-action:manipulation;
}
.gift-float-dismiss:hover{transform:scale(1.06)}
.gift-float-dismiss:active{transform:scale(.94)}
@media(max-width:780px){
  .gift-float-shell{right:12px;bottom:86px}
  .gift-float-shell .gift-float-trigger{gap:8px}
  .gift-float-dismiss{top:-6px;left:39px;width:28px;height:28px;font-size:20px}
}

/* =========================================================
   1.4.27 — FOTOS, CATÁLOGO DE SERVIÇOS E MOVIMENTO CONTÍNUO
   ========================================================= */

/* Versículo: leitura mais confortável e referência destacada */
.next-appt.daily-verse{
  min-height:88px!important;
  padding:10px 16px 11px!important;
  gap:4px!important;
}
.daily-verse-title{
  font-size:9px!important;
  letter-spacing:1.4px!important;
}
.daily-verse-copy{gap:0!important;}
.daily-verse-text{
  font-size:16px!important;
  line-height:1.15!important;
  font-weight:600!important;
}
.daily-verse-ref{
  display:block!important;
  width:100%;
  margin-top:6px!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  font-weight:700!important;
}
.daily-verse-ref::before{
  content:"";
  display:block;
  width:28px;
  height:1px;
  margin:0 auto 5px;
  background:rgba(139,111,63,.34);
}

/* Faixa "Nossos serviços" com deslocamento automático contínuo */
.gallery{
  scroll-snap-type:none!important;
  scroll-behavior:auto!important;
  overscroll-behavior-inline:contain;
  will-change:scroll-position;
}
.gallery .card{scroll-snap-align:none!important;}
.gallery.is-auto-scrolling{cursor:grab;}
.gallery.is-user-interacting{cursor:grabbing;}
.gallery .card[data-clone="1"]{pointer-events:auto;}

/* Modal editorial de Serviços / Fotos */
.discovery-overlay[hidden],
.photo-lightbox[hidden]{display:none!important;}
.discovery-overlay{
  position:fixed;
  inset:0;
  z-index:142;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:18px;
  background:rgba(40,27,12,.48);
  backdrop-filter:blur(10px);
  animation:galbanoDiscoveryFade .25s ease both;
}
.discovery-modal{
  width:min(760px,100%);
  max-height:min(88vh,940px);
  overflow:hidden;
  border-radius:30px;
  background:linear-gradient(180deg,#fffaf2 0%,#f5e5cc 100%);
  border:1px solid rgba(139,98,40,.17);
  box-shadow:0 30px 80px rgba(45,30,12,.30);
  animation:galbanoDiscoveryUp .38s cubic-bezier(.18,.84,.28,1) both;
}
.discovery-handle{
  width:46px;height:5px;border-radius:999px;
  margin:10px auto 3px;
  background:rgba(132,91,37,.22);
}
.discovery-header{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 42px;
  gap:10px;
  align-items:start;
  padding:12px 18px 14px;
  border-bottom:1px solid rgba(139,98,40,.12);
}
.discovery-heading{text-align:center;min-width:0;}
.discovery-kicker{
  display:block;
  margin-bottom:4px;
  color:#a1743b;
  font:800 9px/1.2 'Inter',sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.discovery-heading h2{
  margin:0;
  color:#5e3c18;
  font:700 31px/1 'Cormorant Garamond',serif;
}
.discovery-heading p{
  margin:6px auto 0;
  max-width:500px;
  color:#8d6c45;
  font:500 12px/1.45 'Inter',sans-serif;
}
.discovery-close,.discovery-back{
  width:38px;height:38px;
  border:1px solid rgba(132,91,37,.14);
  border-radius:50%;
  background:rgba(255,255,255,.72);
  color:#765024;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 7px 16px rgba(74,49,18,.09);
}
.discovery-close{font:700 26px/1 Arial,sans-serif;}
.discovery-back svg{width:18px;height:18px;}
.discovery-body{
  overflow:auto;
  max-height:calc(88vh - 116px);
  padding:18px;
  overscroll-behavior:contain;
}
.discovery-category-pills,.photo-gallery-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:0 0 14px;
  scrollbar-width:none;
}
.discovery-category-pills::-webkit-scrollbar,.photo-gallery-tabs::-webkit-scrollbar{display:none;}
.discovery-pill,.photo-tab{
  flex:0 0 auto;
  min-height:36px;
  padding:0 14px;
  border:1px solid rgba(139,98,40,.15);
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:#825b2c;
  font:700 10px/1 'Inter',sans-serif;
  cursor:pointer;
}
.discovery-pill.is-active,.photo-tab.is-active{
  background:linear-gradient(180deg,#b48749,#8b5b23);
  color:#fff;
  border-color:transparent;
  box-shadow:0 8px 18px rgba(119,76,26,.16);
}
.discovery-services-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.discovery-service-card{
  position:relative;
  overflow:hidden;
  min-height:178px;
  padding:0;
  border:1px solid rgba(139,98,40,.11);
  border-radius:20px;
  background:#f1dfc3;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(85,55,19,.09);
  animation:galbanoCardIn .42s both;
  animation-delay:calc(var(--item-index,0) * 45ms);
}
.discovery-service-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.7,.2,1);
}
.discovery-service-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(38,24,10,.02) 24%,rgba(38,24,10,.72) 100%);
}
.discovery-service-card:hover img{transform:scale(1.055);}
.discovery-service-copy{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:14px;
  color:#fff;
  text-align:left;
}
.discovery-service-copy small{
  display:block;margin-bottom:3px;
  font:800 8px/1.2 'Inter',sans-serif;
  letter-spacing:.14em;text-transform:uppercase;opacity:.82;
}
.discovery-service-copy strong{
  display:block;
  font:700 23px/1 'Cormorant Garamond',serif;
}
.discovery-service-copy span{
  display:block;margin-top:5px;
  font:500 10px/1.35 'Inter',sans-serif;opacity:.88;
}
.discovery-empty{
  padding:28px 18px;
  border-radius:20px;
  background:rgba(255,255,255,.48);
  color:#8a6841;
  text-align:center;
  font:500 13px/1.6 'Inter',sans-serif;
}

/* Galeria de fotos e equipa */
.photo-gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.photo-gallery-item{
  position:relative;
  overflow:hidden;
  aspect-ratio:1 / 1.08;
  padding:0;
  border:0;
  border-radius:18px;
  background:#ead5b5;
  box-shadow:0 9px 20px rgba(87,57,21,.10);
  cursor:pointer;
  animation:galbanoCardIn .42s both;
  animation-delay:calc(var(--item-index,0) * 40ms);
}
.photo-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
.photo-gallery-item:hover img{transform:scale(1.055);}
.photo-gallery-item::after{content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(180deg,transparent,rgba(35,22,9,.72));}
.photo-gallery-caption{position:absolute;z-index:2;left:11px;right:11px;bottom:10px;color:#fff;text-align:left;}
.photo-gallery-caption strong{display:block;font:700 17px/1 'Cormorant Garamond',serif;}
.photo-gallery-caption span{display:block;margin-top:3px;font:500 8.5px/1.3 'Inter',sans-serif;opacity:.84;}
.team-gallery-item{aspect-ratio:.86 / 1;}
.team-gallery-item img{object-position:center top;}

/* Galeria de um serviço */
.service-gallery-intro{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:14px;padding:12px 14px;border-radius:17px;
  background:rgba(255,255,255,.48);border:1px solid rgba(139,98,40,.10);
}
.service-gallery-intro div{min-width:0;}
.service-gallery-intro strong{display:block;color:#6b461d;font:700 18px/1 'Cormorant Garamond',serif;}
.service-gallery-intro span{display:block;margin-top:4px;color:#91704a;font:500 10px/1.4 'Inter',sans-serif;}
.service-gallery-book{
  flex:0 0 auto;min-height:38px;padding:0 13px;border:0;border-radius:13px;
  background:linear-gradient(180deg,#ad7c3d,#84551f);color:#fff;
  font:800 9px/1 'Inter',sans-serif;letter-spacing:.04em;cursor:pointer;
}
.service-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.service-work-photo{position:relative;overflow:hidden;aspect-ratio:1;border:0;border-radius:18px;background:#ead5b5;padding:0;cursor:pointer;animation:galbanoCardIn .42s both;animation-delay:calc(var(--item-index,0) * 50ms);}
.service-work-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
.service-work-photo:hover img{transform:scale(1.06);}
.service-work-photo span{position:absolute;left:9px;right:9px;bottom:8px;z-index:2;padding:6px 8px;border-radius:10px;background:rgba(55,36,15,.56);backdrop-filter:blur(5px);color:#fff;font:600 8.5px/1.3 'Inter',sans-serif;text-align:left;}

/* Lightbox elegante */
.photo-lightbox{
  position:fixed;inset:0;z-index:166;
  display:grid;grid-template-columns:52px minmax(0,1fr) 52px;
  align-items:center;gap:8px;padding:20px;
  background:rgba(25,16,8,.88);backdrop-filter:blur(14px);
  animation:galbanoDiscoveryFade .22s ease both;
}
.photo-lightbox-stage{margin:0;min-width:0;text-align:center;}
.photo-lightbox-stage img{
  display:block;max-width:min(920px,100%);max-height:74vh;margin:0 auto;
  border-radius:22px;object-fit:contain;
  box-shadow:0 24px 70px rgba(0,0,0,.38);
  animation:galbanoPhotoZoom .34s cubic-bezier(.2,.8,.2,1) both;
}
.photo-lightbox-stage figcaption{margin-top:12px;color:#fff;}
.photo-lightbox-stage figcaption strong{display:block;font:700 24px/1 'Cormorant Garamond',serif;}
.photo-lightbox-stage figcaption span{display:block;margin-top:5px;color:rgba(255,255,255,.72);font:500 10px/1.4 'Inter',sans-serif;}
.photo-lightbox-close,.photo-lightbox-nav{
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.11);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);
}
.photo-lightbox-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border-radius:50%;font:700 28px/1 Arial,sans-serif;}
.photo-lightbox-nav{width:46px;height:46px;border-radius:50%;}
.photo-lightbox-nav svg{width:20px;height:20px;}

@keyframes galbanoDiscoveryFade{from{opacity:0}to{opacity:1}}
@keyframes galbanoDiscoveryUp{from{opacity:0;transform:translateY(34px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes galbanoCardIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes galbanoPhotoZoom{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}

@media(max-width:560px){
  .next-appt.daily-verse{min-height:84px!important;padding:9px 12px 10px!important;}
  .daily-verse-title{font-size:8.4px!important;}
  .daily-verse-text{font-size:15px!important;line-height:1.14!important;}
  .daily-verse-ref{font-size:10px!important;margin-top:5px!important;}
  .discovery-overlay{padding:0;align-items:flex-end;}
  .discovery-modal{width:100%;max-height:89vh;border-radius:28px 28px 0 0;}
  .discovery-body{max-height:calc(89vh - 112px);padding:14px;}
  .discovery-header{padding:10px 14px 12px;grid-template-columns:38px minmax(0,1fr) 38px;}
  .discovery-heading h2{font-size:28px;}
  .discovery-heading p{font-size:10.5px;}
  .discovery-close,.discovery-back{width:36px;height:36px;}
  .discovery-services-grid{gap:9px;}
  .discovery-service-card{min-height:150px;border-radius:17px;}
  .discovery-service-copy{padding:11px;}
  .discovery-service-copy strong{font-size:20px;}
  .photo-gallery-grid,.service-work-grid{gap:8px;}
  .photo-gallery-item,.service-work-photo{border-radius:16px;}
  .photo-lightbox{grid-template-columns:38px minmax(0,1fr) 38px;gap:4px;padding:12px 7px;}
  .photo-lightbox-nav{width:36px;height:36px;}
  .photo-lightbox-close{right:12px;top:12px;width:38px;height:38px;font-size:25px;}
  .photo-lightbox-stage img{max-height:72vh;border-radius:18px;}
}
