  :root{
    --ink:#1E3229; --ink-soft:#3C5548;
    --paper:#EFEDE2; --paper-warm:#E7E2D2; --paper-dark:#16241C;
    --sage:#8A9683; --gild:#A9812E; --gild-light:#C9A24A; --rose:#A15D5A;
    --line:rgba(30,50,41,0.16); --radius:2px; --max:1180px;
  }
  *{box-sizing:border-box;}
  [hidden]{display:none !important;}
  html{scroll-behavior:smooth; overflow-x:hidden;}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:'Work Sans',sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; max-width:100vw;}
  body.lightbox-open{overflow-y:hidden;}
  h1,h2,h3{font-family:'Fraunces',serif; font-weight:450; line-height:1.08; margin:0; color:var(--ink);}
  a{color:inherit;} img,svg{display:block; max-width:100%;}
  .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gild); margin:0 0 .9rem;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 6vw;}
  section{padding:6.5rem 0;}
  @media(max-width:720px){section{padding:4rem 0;}}
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{outline:2px solid var(--gild); outline-offset:3px;}

  .btn{display:inline-flex; align-items:center; gap:.55rem; font-family:'IBM Plex Mono',monospace; font-size:.82rem; letter-spacing:.03em; text-decoration:none; padding:.85rem 1.5rem; border-radius:var(--radius); border:1px solid transparent; cursor:pointer; transition:transform .25s,background .25s,border-color .25s;}
  .btn-solid{background:var(--ink); color:var(--paper);}
  .btn-solid:hover{background:var(--ink-soft); transform:translateY(-2px);}
  .btn-ghost{border-color:var(--ink); color:var(--ink); background:transparent;}
  .btn-ghost:hover{border-color:var(--gild); color:var(--gild); transform:translateY(-2px);}
  .btn-gild{background:var(--gild); color:var(--paper-dark);}
  .btn-gild:hover{background:var(--gild-light); transform:translateY(-2px);}
  .btn-block{width:100%; justify-content:center;}

  header{position:sticky; top:0; z-index:50; background:rgba(239,237,226,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
  nav.wrap{display:flex; align-items:center; justify-content:space-between; padding:1.1rem 6vw; gap:1.5rem;}
  .brand{font-family:'Fraunces',serif; font-size:1.15rem; line-height:1.12;}
  .brand>span{display:block;}
  .brand small{display:block; font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; color:var(--sage); margin-top:.15rem;}
  .brand em{display:block; font:500 .56rem/1.3 'IBM Plex Mono',monospace; letter-spacing:.18em; text-transform:uppercase; color:var(--gild); margin-top:.1rem;}
  .navlinks{display:flex; gap:1.1rem; list-style:none; margin:0; padding:0; font-size:.85rem;}
  .navlinks a{text-decoration:none; position:relative; padding-bottom:2px;}
  .navlinks a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gild); transition:width .3s;}
  .navlinks a:hover::after{width:100%;}
  .nav-cta{display:flex; align-items:center; gap:1rem;}
  @media(max-width:900px){.navlinks{display:none;}}
  .icon-btn{width:38px; height:38px; border:1px solid transparent; background:var(--paper-warm); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .25s, transform .25s;}
  .icon-btn:hover{background:var(--gild); transform:translateY(-2px);}
  .icon-btn svg{width:16px; height:16px; stroke:var(--ink);}
  .icon-btn:hover svg{stroke:#fff;}

  .hero{position:relative; padding-top:5rem; overflow:hidden;}
  .hero-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:3rem; align-items:center;}
  @media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
  .hero h1{font-size:clamp(2.3rem,4.6vw,3.6rem); max-width:14ch;}
  .hero p.lede{font-size:1.08rem; color:var(--ink-soft); max-width:42ch; margin:1.6rem 0 2.2rem;}
  .hero-ctas{display:flex; gap:1rem; flex-wrap:wrap;}
  .hero-stats{display:flex; gap:2.4rem; margin-top:3rem; flex-wrap:wrap;}
  .hero-stats div strong{display:block; font-family:'Fraunces',serif; font-size:1.6rem;}
  .hero-stats div span{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sage);}
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.is-visible{opacity:1; transform:translateY(0);}

  .filosofia{background:var(--paper-warm); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .filosofia-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:4rem; align-items:start;}
  @media(max-width:900px){.filosofia-grid{grid-template-columns:1fr; gap:2.5rem;}}
  .filosofia h2{font-size:clamp(1.8rem,3vw,2.4rem); max-width:14ch;}
  .pull{font-family:'Fraunces',serif; font-style:italic; font-weight:450; font-size:1.3rem; color:var(--ink-soft); line-height:1.5; border-left:2px solid var(--gild); padding-left:1.5rem; margin:1.8rem 0;}
  .filosofia p{color:var(--ink-soft); max-width:56ch;}

  .servicos h2{font-size:clamp(1.8rem,3vw,2.4rem); max-width:16ch; margin-bottom:3rem;}
  .service-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1px; background:var(--paper); border:1px solid var(--line);}
  .service-card{background:var(--paper); padding:2.4rem;}
  .service-card h3{font-size:1.25rem; margin-bottom:.7rem;}
  .duracao-tag{font-family:'IBM Plex Mono',monospace; font-size:.62rem; font-weight:400; letter-spacing:.04em; color:var(--sage); background:var(--paper-warm); border:1px solid var(--line); border-radius:20px; padding:.2rem .55rem; vertical-align:middle; margin-left:.4rem; white-space:nowrap; display:inline-block;}
  .service-card p{color:var(--ink-soft); font-size:.95rem; max-width:36ch; margin:0 0 1.3rem;}
  .service-card a{font-family:'IBM Plex Mono',monospace; font-size:.78rem; text-decoration:none; color:var(--gild); border-bottom:1px solid var(--gild); padding-bottom:2px;}
  .service-card a:hover{color:var(--rose); border-color:var(--rose);}

  .galeria h2{font-size:clamp(1.6rem,2.6vw,2rem); max-width:22ch; margin-bottom:.6rem;}
  .galeria .note{color:var(--sage); font-family:'IBM Plex Mono',monospace; font-size:.75rem; margin-bottom:2.2rem;}
  .gal-grid{display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:1rem;}
  .gal-grid:has(a:only-child){grid-template-columns:1fr; max-width:360px; margin:0 auto;}
  @media(max-width:720px){.gal-grid{grid-template-columns:1fr 1fr;}}
  .gal-grid img{width:100%; height:100%; object-fit:cover; border:1px solid var(--line); background:var(--paper-warm); aspect-ratio:3/4;}
  .gal-grid a:first-child img{aspect-ratio:4/5;}

  .prova{background:var(--ink); color:var(--paper);}
  .prova .eyebrow{color:var(--gild-light);}
  .prova h2{color:var(--paper); font-size:clamp(1.8rem,3vw,2.4rem); max-width:18ch; margin-bottom:3rem;}
  .quote-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2.2rem;}
  @media(max-width:900px){.quote-grid{grid-template-columns:1fr;}}
  .quote-card{border-top:1px solid rgba(239,237,226,.25); padding-top:1.4rem;}
  .stars{color:var(--gild-light); letter-spacing:2px; font-size:.9rem; margin-bottom:.9rem;}
  .quote-card p{font-family:'Fraunces',serif; font-style:italic; font-size:1.08rem; line-height:1.5; margin:0 0 1rem;}
  .quote-card span{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sage);}

  .jornada h2{font-size:clamp(1.8rem,3vw,2.4rem); max-width:16ch; margin-bottom:1rem;}
  .jornada>.wrap>p{color:var(--ink-soft); max-width:50ch; margin-bottom:3.5rem;}
  .steps{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem;}
  @media(max-width:860px){.steps{grid-template-columns:1fr; gap:2.6rem;}}
  .step-line{position:absolute; top:22px; left:0; width:100%; height:40px; pointer-events:none;}
  @media(max-width:860px){.step-line{display:none;}}
  .step-line path{fill:none; stroke:var(--gild); stroke-width:1.4; stroke-linecap:round; stroke-dasharray:1000; stroke-dashoffset:1000; transition:stroke-dashoffset 1.6s ease;}
  .step-line.is-visible path{stroke-dashoffset:0;}
  .step{position:relative;}
  .step .num{width:44px; height:44px; border-radius:50%; border:1.4px solid var(--ink); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:.85rem; background:var(--paper); position:relative; z-index:2; margin-bottom:1.1rem;}
  .step h3{font-size:1.05rem; margin-bottom:.5rem;}
  .step p{color:var(--ink-soft); font-size:.92rem; margin:0;}

  .marcar{background:var(--paper-dark); color:var(--paper);}
  .marcar .eyebrow{color:var(--gild-light);}
  .marcar h2{color:var(--paper); font-size:clamp(1.8rem,3vw,2.4rem); max-width:18ch;}
  .marcar p.sub{color:#C7CFC5; max-width:48ch; margin:1.1rem 0 2.6rem;}
  .marcar-grid{display:grid; grid-template-columns:1fr 1fr; gap:3rem;}
  @media(max-width:860px){.marcar-grid{grid-template-columns:1fr;}}
  .field{margin-bottom:1.2rem;}
  .field label{display:block; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sage); margin-bottom:.5rem;}
  .field input, .field select, .field textarea{
    width:100%; background:rgba(239,237,226,.06); border:1px solid rgba(239,237,226,.3); color:var(--paper);
    padding:.75rem .9rem; font-family:'Work Sans',sans-serif; font-size:16px; border-radius:var(--radius);
  }
  .field select option, .client-modal .admin-field select option{ color:var(--ink); background:#fff; }
  .field textarea{resize:vertical; min-height:80px;}
  .field input::placeholder, .field textarea::placeholder{color:#8A9683;}
  .form-note{font-family:'IBM Plex Mono',monospace; font-size:.75rem; color:#8A9683; margin-top:1rem;}
  .marcar .confirm-soft{ background:rgba(239,237,226,.08); border-color:rgba(239,237,226,.25); }
  .marcar .confirm-soft p{ color:#C7CFC5; }
  .marcar-alt{border-top:1px solid rgba(239,237,226,.18); margin-top:2rem; padding-top:2rem;}
  .marcar-alt p{color:#C7CFC5; margin:0 0 1rem; font-size:.92rem;}

  .local-grid{display:grid; grid-template-columns:1fr 1fr; gap:3rem;}
  @media(max-width:860px){.local-grid{grid-template-columns:1fr;}}
  .local-grid h2{font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:1.4rem; max-width:14ch;}
  .info-row{display:flex; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line);}
  .info-row .label{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); width:110px; flex-shrink:0; padding-top:.15rem;}
  .map-frame{border:1px solid var(--line); background:var(--paper-warm); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; padding:2rem; text-align:center;}
  .map-frame a{font-family:'IBM Plex Mono',monospace; font-size:.8rem; color:var(--gild); text-decoration:none; border-bottom:1px solid var(--gild); padding-bottom:2px;}

  footer{background:var(--ink); color:var(--paper); padding:4rem 0 2.2rem;}
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(239,237,226,.18);}
  @media(max-width:760px){.foot-grid{grid-template-columns:1fr; gap:2.2rem;}}
  footer h4{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gild-light); margin:0 0 1rem;}
  footer .brand-foot{font-family:'Fraunces',serif; font-size:1.4rem; margin-bottom:.8rem;}
  footer p{color:#C7CFC5; font-size:.92rem; max-width:34ch;}
  footer a{color:#C7CFC5; text-decoration:none; display:block; margin-bottom:.6rem; font-size:.92rem;}
  footer a:hover{color:var(--gild-light);}
  .bottom-bar{display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding-top:1.6rem; font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--sage);}
  .bottom-bar button{background:none; border:none; color:var(--sage); font-family:'IBM Plex Mono',monospace; font-size:.72rem; cursor:pointer; text-decoration:underline; padding:0;}
  .bottom-bar button:hover{color:var(--gild-light);}

  /* ADMIN */
  .admin-overlay{position:fixed; inset:0; background:rgba(22,36,28,.72); z-index:200; display:flex; align-items:center; justify-content:center; padding:4vw;}
  .admin-modal{background:var(--paper); width:min(720px,100%); max-height:88vh; overflow-y:auto; border-radius:4px; padding:2.2rem;}
  .admin-modal h3{font-family:'Fraunces',serif; font-size:1.4rem; margin-bottom:.4rem;}
  .admin-modal .sub{color:var(--ink-soft); font-size:.88rem; margin-bottom:1.6rem;}
  .admin-close{float:right; background:none; border:none; font-size:1.3rem; cursor:pointer; color:var(--ink-soft); line-height:1;}
  body.modal-open{overflow:hidden;}
  .manual-booking-overlay{z-index:500; padding:1rem;}
  .manual-booking-modal{width:min(760px,100%); max-height:min(92vh,900px); border-radius:22px;}
  .manual-booking-actions{display:flex; justify-content:flex-end; gap:.7rem; flex-wrap:wrap; margin-top:1rem;}
  .agenda-create-btn{white-space:nowrap;}
  @media(max-width:640px){
    .manual-booking-overlay{padding:.5rem; align-items:flex-start; overflow-y:auto;}
    .manual-booking-modal{padding:1.15rem!important; max-height:none!important; margin:auto 0;}
    .manual-booking-actions{flex-direction:column; align-items:stretch;}
    .manual-booking-actions .btn{width:100%; justify-content:center;}
  }
  .admin-field{margin-bottom:1.1rem;}
  .admin-field label{display:block; font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); margin-bottom:.4rem;}
  .admin-field input, .admin-field textarea{width:100%; border:1px solid var(--line); background:#fff; padding:.65rem .8rem; font-family:'Work Sans',sans-serif; font-size:16px; border-radius:2px;}
  .admin-field textarea{resize:vertical; min-height:64px;}
  .admin-tabs{display:flex; gap:1.5rem; border-bottom:1px solid var(--line); margin-bottom:1.6rem; flex-wrap:wrap;}
  .admin-tab-btn{background:none; border:none; padding:.6rem 0; font-family:'IBM Plex Mono',monospace; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--sage); cursor:pointer; border-bottom:2px solid transparent;}
  .admin-tab-btn.active{color:var(--ink); border-color:var(--gild);}
  .admin-panel-view{display:none;}
  .admin-panel-view.active{display:block;}
  .pedido-card{border:1px solid var(--line); padding:1rem 1.2rem; margin-bottom:.9rem; border-radius:2px; background:var(--paper-warm);}
  .pedido-card .top{display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:.4rem;}
  .pedido-card strong{font-family:'Fraunces',serif; font-size:1.05rem;}
  .pedido-card .meta{font-family:'IBM Plex Mono',monospace; font-size:.7rem; color:var(--sage);}
  .pedido-card p{margin:.3rem 0; font-size:.9rem; color:var(--ink-soft);}
  .pedido-card .status-btn{margin-top:.5rem; font-family:'IBM Plex Mono',monospace; font-size:.7rem; padding:.35rem .7rem; border:1px solid var(--ink); background:none; border-radius:20px; cursor:pointer;}
  .pedido-card.tratado{opacity:.55;}
  .pedido-card .meta.novo{color:#8a6a3f;}
  .pedido-card .meta.confirmado{color:#3f5a3f;}
  .pedido-card .meta.concluido{color:#2f4a2f;}
  .pedido-card .meta.cancelado{color:#909090;}
  .pedido-card .meta.nao_compareceu{color:#8a5652;}
  .pedido-card .estado-select{font-family:'IBM Plex Mono',monospace; font-size:.72rem; padding:.4rem .6rem; border:1px solid var(--ink); border-radius:20px; background:#fff; cursor:pointer;}
  .pedido-card .pago-btn{font-family:'IBM Plex Mono',monospace; font-size:.72rem; padding:.4rem .8rem; border:1px solid var(--rose); color:var(--rose); background:none; border-radius:20px; cursor:pointer;}
  .pedido-card .pago-btn.pago{border-color:var(--gild); background:var(--gild); color:#fff;}
  .admin-save-row{display:flex; align-items:center; gap:1rem; margin-top:1.6rem; position:sticky; bottom:0; background:var(--paper); padding-top:1rem;}
  .admin-status{font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--gild);}
  #adminLoginErr{color:var(--rose); font-family:'IBM Plex Mono',monospace; font-size:.78rem; margin-top:.6rem; display:none;}
  #notConfiguredNotice{color:var(--rose); font-family:'IBM Plex Mono',monospace; font-size:.76rem; border:1px dashed var(--rose); padding:.8rem 1rem; margin-top:1rem;}
  .link-row{display:flex; align-items:center; justify-content:space-between; gap:1rem; border:1px solid var(--line); padding:.7rem 1rem; border-radius:2px; margin-bottom:.6rem; background:#fff;}
  .link-row span{font-size:.9rem;}
  .link-row span small{display:block; color:var(--sage); font-family:'IBM Plex Mono',monospace; font-size:.7rem;}
  .link-row button{background:none; border:none; color:var(--rose); font-family:'IBM Plex Mono',monospace; font-size:.72rem; cursor:pointer; text-decoration:underline;}
  .stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:1rem; margin-bottom:1.8rem;}
  .stat-box{border:1px solid var(--line); background:var(--paper-warm); padding:1rem; border-radius:2px; text-align:center;}
  .stat-box strong{display:block; font-family:'Fraunces',serif; font-size:1.6rem;}
  .stat-box span{font-family:'IBM Plex Mono',monospace; font-size:.65rem; letter-spacing:.05em; text-transform:uppercase; color:var(--sage);}
  .visita-row{display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; padding:.5rem 0; border-bottom:1px solid var(--line); color:var(--ink-soft);}
  .visita-row span:last-child{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--sage); text-align:right;}

  /* CLIENT MODAL — mais suave, mais terapêutico, distinto do painel de gestão */
  .client-modal{ border-radius:20px; width:min(880px,94vw)!important; max-height:90vh!important; }
  .client-modal h3{ font-family:'Fraunces',serif; font-weight:450; font-size:1.5rem; }
  .client-modal .admin-field label{
    font-family:'Work Sans',sans-serif; text-transform:none; letter-spacing:0;
    font-size:.88rem; color:var(--ink-soft); font-weight:500; margin-bottom:.5rem;
  }
  .client-modal .admin-field input,
  .client-modal .admin-field textarea,
  .client-modal .admin-field select{
    border-radius:12px; border-color:var(--line); background:var(--paper-warm);
    padding:.8rem 1rem; font-size:16px; transition:border-color .2s, background .2s;
  }
  .client-modal .admin-field input:focus,
  .client-modal .admin-field textarea:focus,
  .client-modal .admin-field select:focus{
    border-color:var(--gild); background:#fff;
  }
  .client-modal .eyebrow{ font-size:.68rem; }
  .client-tabs{display:flex; gap:.4rem; flex-wrap:wrap; margin:1.4rem 0 1.5rem; border-bottom:1px solid var(--line); padding-bottom:0;}
  .client-tab-btn{background:none; border:none; border-bottom:2px solid transparent; padding:.6rem .3rem; margin-right:1rem; font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.03em; color:var(--sage); cursor:pointer;}
  .client-tab-btn.active{color:var(--ink); border-bottom-color:var(--gild);}
  .client-tab-view{display:none;}
  .client-tab-view.active{display:block;}
  #clientNotesText{width:100%; border:1px solid var(--line); border-radius:14px; padding:.9rem 1rem; font-family:'Work Sans',sans-serif; font-size:.92rem; background:#fff; resize:vertical;}
  .duracao-pill{
    display:inline-block; font-family:'Fraunces',serif; font-style:italic; color:var(--gild);
    font-size:.95rem; margin:.5rem 0 0;
  }
  .pay-toggle{ display:flex; gap:.7rem; margin-top:.4rem; flex-wrap:wrap; }
  .pay-option{
    flex:1; border:1.4px solid var(--line); border-radius:12px; padding:.9rem 1rem;
    cursor:pointer; text-align:center; font-family:'Work Sans',sans-serif; font-size:.88rem;
    color:var(--ink-soft); transition:border-color .2s, background .2s; user-select:none;
  }
  .pay-option input{ display:none; }
  .pay-option.selected{ border-color:var(--gild); background:rgba(169,129,46,.08); color:var(--ink); }
  .confirm-soft{
    border-radius:14px; background:var(--paper-warm); border:1px solid var(--line);
    padding:1.3rem 1.4rem; margin-top:1rem; display:none;
  }
  .confirm-soft p{ margin:0 0 .8rem; font-size:.92rem; color:var(--ink-soft); line-height:1.55; }
  .confirm-soft p:last-child{ margin-bottom:0; }

/* ================================================================
   NOVA DIREÇÃO VISUAL — mais suave, mais humana, menos "formulário"
   ================================================================ */
:root{
  --ink:#34453B; --ink-soft:#5F6D63;
  --paper:#F7F3EC; --paper-warm:#EEE7DB; --paper-dark:#2E3B34;
  --sage:#91A091; --gild:#B28B62; --gild-light:#D7B993; --rose:#C99C98;
  --line:rgba(52,69,59,.13); --radius:14px;
}
body{background:var(--paper); color:var(--ink); line-height:1.7;}
.eyebrow{font-family:'Work Sans',sans-serif; font-size:.72rem; letter-spacing:.12em;}
.btn{border-radius:999px; transition:transform .15s ease,background .3s ease,box-shadow .3s ease;}
.btn:hover{transform:translateY(-1px); box-shadow:0 8px 24px rgba(52,69,59,.08);}
.btn:active{transform:translateY(0) scale(.97); box-shadow:0 2px 8px rgba(52,69,59,.1); transition-duration:.08s;}
.mini-action, .status-btn, .pay-option, .client-tab-btn, .admin-tab-btn, .admin-subtab, .month-cell, .client-modal .btn, .btn-filtro{transition:transform .15s ease,border-color .2s ease,background .2s ease,color .2s ease;}
.mini-action:active, .status-btn:active, .pay-option:active, .month-cell:active, .btn-filtro:active{transform:scale(.96);}
.filtros-tratamento{display:flex; gap:.7rem; justify-content:center; margin-bottom:2.2rem; flex-wrap:wrap;}
.btn-filtro{font-family:'Work Sans',sans-serif; font-size:.88rem; padding:.6rem 1.4rem; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--ink); cursor:pointer;}
.btn-filtro:hover{background:rgba(178,139,98,.12); border-color:var(--gild);}
.btn-filtro.active{background:var(--ink); color:var(--paper); border-color:var(--ink); box-shadow:0 4px 14px rgba(52,69,59,.18);}
.service-card.filtro-escondido{display:none;}
.btn-soft{background:#E7D9CB; color:var(--ink); border:1px solid transparent;}
header{background:rgba(247,243,236,.9); backdrop-filter:blur(12px);}

.hero{padding:4rem 0 7rem;}
.hero h1{letter-spacing:-.02em;}
.hero-media{display:flex; flex-direction:column; gap:1rem;}
.hero-media-image{position:relative; min-height:600px; border-radius:28px; overflow:hidden; background-color:#d9c4ac; box-shadow:0 24px 70px rgba(52,69,59,.12);}
.hero-media-image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,59,52,.01),rgba(46,59,52,.18));pointer-events:none;}
.hero-media-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:72% 40%;}
.hero-media-note{background:var(--paper); border-radius:14px; padding:.9rem 1.1rem; box-shadow:0 6px 20px rgba(52,69,59,.06); border:1px solid var(--line);}
.hero-media-note strong{display:block; font-family:'Fraunces',serif; font-size:1.05rem; font-weight:500;}
.hero-media-note span{display:block; color:var(--ink-soft); font-size:.8rem;}
.hero-media-note small{display:block;color:var(--gild);font:500 .66rem 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;}
@media(max-width:900px){ .hero-media-image{min-height:480px;} .hero-media{order:-1;} }
@media(max-width:720px){ .hero{padding-top:1rem;} .hero-media-image{min-height:0; aspect-ratio:4/5; border-radius:22px;} .hero-media-image img{object-position:72% 38%;} }

.pull{border-left:0; padding-left:0; font-size:1.45rem;}

.service-card{border-radius:18px; border:1px solid var(--line); transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;}
.service-thumb{display:block; margin:-2.4rem -2.4rem 1.3rem; aspect-ratio:16/10; background:var(--paper-warm) center/cover no-repeat; border-radius:18px 18px 0 0; cursor:pointer; position:relative; overflow:hidden;}
.service-thumb video{width:100%; height:100%; object-fit:cover; display:block; pointer-events:none;}
.service-thumb-play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(20,26,22,.08);}
.service-thumb-play span{width:44px; height:44px; border-radius:50%; background:rgba(247,243,236,.92); color:var(--ink); display:grid; place-items:center; font-size:.8rem; box-shadow:0 8px 20px rgba(0,0,0,.2);}
.service-card:hover{transform:translateY(-4px); box-shadow:0 16px 40px rgba(52,69,59,.08); border-color:rgba(178,139,98,.35);}

.em-breve{padding:3rem 0;}
.em-breve h2{font-size:clamp(1.7rem,2.8vw,2.3rem); max-width:18ch; margin-bottom:2rem;}
.em-breve-grid{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
@media(max-width:720px){ .em-breve-grid{grid-template-columns:1fr;} }
.em-breve-card{border:1.4px dashed var(--gild); border-radius:18px; padding:1.6rem 1.8rem; background:rgba(178,139,98,.06);}
.em-breve-card h3{font-family:'Fraunces',serif; font-size:1.2rem; margin-bottom:.4rem;}
.em-breve-card p{color:var(--ink-soft); margin:0; font-size:.92rem;}
.sobre{padding-top:5rem;}
.sobre-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:4rem; align-items:center;}
@media(max-width:900px){ .sobre-grid{grid-template-columns:1fr; gap:2.2rem;} }
.sobre-media-image{aspect-ratio:4/5; border-radius:24px; background:linear-gradient(150deg,#e5d8ca,#c7cdbf); box-shadow:0 20px 55px rgba(52,69,59,.1);overflow:hidden;position:relative;}
.sobre-media-image img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;}
.sobre-copy h2{font-size:clamp(1.9rem,3.2vw,2.6rem); margin-bottom:1.1rem;}
.sobre-copy p{color:var(--ink-soft); max-width:48ch; margin-bottom:1.6rem; font-size:1.02rem;}

.porque{background:var(--paper-warm); padding:6rem 0;}
.porque h2{font-size:clamp(1.8rem,3vw,2.4rem); max-width:20ch; margin-bottom:2.8rem;}
.porque-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;}
@media(max-width:900px){ .porque-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:600px){ .porque-grid{grid-template-columns:1fr;} }
.porque-card{background:#fff; border:1px solid var(--line); border-radius:18px; padding:1.8rem 1.5rem;}
.porque-icon{font-size:1.6rem; display:block; margin-bottom:.8rem;}
.porque-card h3{font-family:'Fraunces',serif; font-size:1.1rem; margin-bottom:.5rem;}
.porque-card p{color:var(--ink-soft); font-size:.9rem; margin:0;}

.experiencia{background:var(--paper-warm);}
.experience-grid{display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center;}
.experience-copy h2{font-size:clamp(2.2rem,4vw,3.4rem); max-width:11ch;}
.experience-copy>p:not(.eyebrow){color:var(--ink-soft); max-width:50ch; margin:1.2rem 0 1.8rem;}
.experience-list{display:grid; gap:1rem;}
.experience-list>div{display:grid; grid-template-columns:42px 1fr; column-gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line);}
.experience-list span{font-family:'Fraunces',serif; color:var(--gild); font-size:1.15rem;}
.experience-list strong{font-family:'Fraunces',serif; font-size:1.15rem;}
.experience-list p{grid-column:2; margin:.1rem 0 0; color:var(--ink-soft); font-size:.9rem;}

.reels{padding-top:6rem;}
.section-head{display:grid; grid-template-columns:1fr .8fr; gap:4rem; align-items:end; margin-bottom:2.5rem;}
.section-head h2{font-size:clamp(2rem,3.6vw,3rem); max-width:14ch;}
.section-head>p{color:var(--ink-soft); max-width:45ch;}
.reels-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;}
.video-real{position:relative; border-radius:20px; overflow:hidden; aspect-ratio:9/16; background:#000; box-shadow:0 12px 35px rgba(52,69,59,.08);}
.video-real video{width:100%; height:100%; object-fit:cover; display:block;}
.video-real iframe{width:100%; height:100%; border:0; display:block;}
.video-embed-instagram, .video-embed-tiktok{display:flex; align-items:center; justify-content:center; min-width:0; max-width:100%;}
.video-embed-instagram iframe, .video-embed-tiktok iframe{max-width:100%!important; max-height:100%;}
.video-embed-instagram blockquote.instagram-media{min-width:0!important; width:100%!important; margin:0!important;}
.reel-card, .video-real{min-width:0;}
.reels-grid, .gal-grid, .service-grid{min-width:0;}
.campaign-popup{position:fixed; inset:0; background:rgba(46,59,52,.5); z-index:300; display:flex; align-items:center; justify-content:center; padding:5vw;}
.campaign-popup-box{background:var(--paper); border-radius:22px; max-width:420px; width:100%; padding:2.2rem; position:relative; box-shadow:0 30px 80px rgba(0,0,0,.25); text-align:center;}
.campaign-popup-box img{width:100%; border-radius:14px; margin-bottom:1.2rem; aspect-ratio:4/3; object-fit:cover;}
.campaign-popup-box h3{font-family:'Fraunces',serif; font-size:1.6rem; margin-bottom:.7rem;}
.campaign-popup-box p{color:var(--ink-soft); margin-bottom:1.4rem;}

.media-lightbox{position:fixed; inset:0; background:rgba(20,26,22,.82); z-index:400; display:flex; align-items:center; justify-content:center; padding:5vw;}
.media-lightbox-box{background:var(--paper); border-radius:20px; max-width:560px; width:100%; max-height:86vh; position:relative; box-shadow:0 30px 80px rgba(0,0,0,.35); overflow:hidden; display:flex;}
.media-lightbox-box img{width:100%; max-height:86vh; object-fit:contain; display:block; background:#000;}
.media-lightbox-box .video-real{width:100%; aspect-ratio:16/10; border-radius:0;}
.media-lightbox-close{position:absolute; top:.6rem; right:.6rem; z-index:20; background:rgba(20,26,22,.76); color:#fff; border-radius:50%; width:44px; height:44px; float:none; display:grid; place-items:center; font-size:1.35rem; border:1px solid rgba(255,255,255,.55); touch-action:manipulation;}
.campaign-channel-choice{display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap;}
.campaign-channel-choice .btn{flex:1 1 45%; min-width:120px; padding:.7rem 1rem; font-size:.85rem;}
.client-campaign-banner{border:1px solid var(--gild); background:rgba(178,139,98,.08); border-radius:16px; padding:1.2rem 1.4rem; margin:1rem 0;}
.client-campaign-banner strong{font-family:'Fraunces',serif; font-size:1.15rem; display:block; margin:.2rem 0 .4rem;}
.client-campaign-banner p{color:var(--ink-soft); font-size:.9rem; margin:0;}
.reel-card{min-height:320px; border-radius:20px; overflow:hidden; position:relative; display:flex; flex-direction:column; justify-content:flex-end; padding:1.3rem; text-decoration:none; color:white; background:#6c756d center/cover no-repeat; box-shadow:0 12px 35px rgba(52,69,59,.08); transition:transform .35s ease;}
.reel-card::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(30,40,35,.02),rgba(30,40,35,.68));}
.reel-card>*{position:relative; z-index:1;}
.reel-card:hover{transform:translateY(-4px);}
.reel-card span:not(.play){font-family:'Fraunces',serif; font-size:1.3rem;}
.reel-card small{opacity:.82;}
.play{width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:rgba(247,243,236,.9); color:var(--ink); margin-bottom:auto; font-size:.85rem;}
.reels-grid:has(.reel-empty-state){grid-template-columns:1fr;}
.reel-empty-state{min-height:220px; border-radius:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; text-decoration:none; text-align:center; padding:2rem; background:linear-gradient(150deg,#e5d8ca,#c7cdbf); transition:transform .35s ease;}
.reel-empty-state:hover{transform:translateY(-4px);}
.reel-empty-state .play{background:rgba(52,69,59,.12); color:var(--ink); margin-bottom:.2rem;}
.reel-empty-state span:not(.play){font-family:'Fraunces',serif; font-size:1.25rem; color:var(--ink);}
.reel-empty-state small{color:var(--ink); opacity:.65; font-family:'IBM Plex Mono',monospace; font-size:.75rem;}
@media(max-width:900px){ .reels-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:720px){ .reels-grid{grid-template-columns:1fr;} .reel-card{min-height:280px;} }

.galeria{padding-top:4rem;}
.gal-grid img{border:0; border-radius:18px;}

.opiniao-top{display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:3rem;}
.opiniao-top h2{font-size:clamp(2rem,3.6vw,3rem); max-width:14ch;}
.google-score{text-align:right;}
.google-score strong{display:block; font-family:'Fraunces',serif; font-size:3rem;}
.google-score span{letter-spacing:3px; color:var(--gild);}
.google-score small{display:block; color:var(--sage);}
.prova .quote-card{border:1px solid var(--line); border-radius:18px; padding:1.7rem; background:#fff;}
.quote-mark{font-family:'Fraunces',serif; font-size:2.4rem; color:var(--gild); line-height:1;}
.prova .quote-card p{font-family:'Fraunces',serif; font-style:italic; color:var(--ink);}
.review-actions{display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; margin-top:2rem;}
.review-note{text-align:center; color:var(--sage); font-size:.72rem; max-width:70ch; margin:1rem auto 0;}
@media(max-width:900px){ .opiniao-top{align-items:start; flex-direction:column;} .google-score{text-align:left;} }

.client-review-box{margin-top:1.8rem; padding:1.3rem 1.4rem; border-radius:16px; background:var(--paper-warm); border:1px solid var(--line);}
.client-review-box h4{font-family:'Fraunces',serif; font-size:1.35rem; margin:.15rem 0;}
.client-review-box p{color:var(--ink-soft); font-size:.9rem;}

.mobile-cta{display:none;}
@media(max-width:720px){
  .mobile-cta{position:fixed; display:grid; grid-template-columns:1fr 1fr; left:0; right:0; bottom:0; z-index:100; padding:.55rem .55rem calc(.55rem + env(safe-area-inset-bottom)); background:rgba(247,243,236,.94); backdrop-filter:blur(12px); border-top:1px solid var(--line); box-shadow:0 -8px 25px rgba(52,69,59,.08);}
  .mobile-cta a{text-align:center; padding:.65rem; border-radius:999px; text-decoration:none; font-size:.82rem;}
  .mobile-cta a:first-child{color:var(--ink); border:1px solid var(--line);}
  .mobile-cta a:last-child{background:var(--ink); color:var(--paper);}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  .nav-cta .icon-btn{display:none;}
}

  @media (prefers-reduced-motion:reduce){
    *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
  }

/* =========================
   PAINEL PROFISSIONAL — Agenda, Contactos, Dashboard
   ========================= */
.admin-shell{max-width:1440px!important;width:96vw!important;max-height:94vh!important;padding:2rem!important;border-radius:22px!important;background:var(--paper)!important;color:var(--ink)!important;overflow-x:hidden!important;box-sizing:border-box!important}
.admin-shell *{max-width:100%; box-sizing:border-box;}
.admin-overlay{padding:2vh 2vw!important;}
.admin-head{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;padding-bottom:1.3rem;border-bottom:1px solid var(--line)}
.admin-head h3{font-family:'Fraunces',serif;font-size:2rem;margin:.1rem 0 .35rem}.admin-kicker{font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;color:var(--sage);margin:0 0 .4rem}.admin-logout{border:0;background:none;text-decoration:underline;color:var(--sage);cursor:pointer}
.admin-main-tabs{display:flex!important;gap:.45rem!important;margin:1.2rem 0!important;overflow:auto}.admin-main-tabs .admin-tab-btn{border:1px solid var(--line);background:transparent!important;border-radius:999px!important;padding:.75rem 1.1rem!important;white-space:nowrap!important}.admin-main-tabs .admin-tab-btn.active{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important}
.admin-subtabs{display:flex;gap:.35rem;flex-wrap:wrap;margin:0 0 1.4rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}.admin-subtab{border:0;background:none;color:var(--sage);padding:.5rem .7rem;cursor:pointer;border-radius:999px;font-size:.82rem}.admin-subtab.active{background:var(--paper-warm);color:var(--ink)}
.admin-subview{display:none}.admin-subview.active{display:block}.admin-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:720px){.admin-editor-grid{grid-template-columns:1fr}}
.admin-field-wide{grid-column:1/-1}.admin-section-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.admin-section-title h4{font-family:'Fraunces',serif;font-size:1.35rem;margin:0}.admin-section-title p{font-size:.85rem;color:var(--ink-soft);margin:.3rem 0 0}
.site-save-global{margin-top:1.4rem}
.contact-toolbar input,.contact-toolbar select,.agenda-toolbar input,.agenda-toolbar select{border:1px solid var(--line);background:white;color:var(--ink);padding:.7rem .8rem;border-radius:10px;font:inherit}.contact-card,.history-row,.service-admin-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.9rem 1rem;margin:.6rem 0}.contact-card{display:flex;justify-content:space-between;align-items:center;gap:1rem}.contact-card span{display:block;color:var(--sage);font-size:.75rem;margin-top:.2rem}.service-admin-card{display:grid;grid-template-columns:180px 1fr auto;gap:1rem;align-items:start}.service-admin-card textarea,.service-admin-card input{width:100%;border:1px solid var(--line);border-radius:10px;padding:.65rem;font:inherit;background:#fff}.service-admin-card textarea{min-height:70px;margin-bottom:.5rem}@media(max-width:800px){.service-admin-card{grid-template-columns:1fr}}
.agenda-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.agenda-toolbar input,.agenda-toolbar select{flex:1;min-width:160px;}
.agenda-summary{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.agenda-summary span{padding:.65rem .8rem;background:var(--paper-warm);border-radius:12px;color:var(--sage);font-size:.78rem}.agenda-summary strong{color:var(--ink);font-size:1rem;margin-right:.25rem}.admin-list-heading{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0 .7rem;color:var(--sage);font-size:.8rem}.admin-appointment-card{display:grid;grid-template-columns:75px 1fr auto;gap:1rem;align-items:center;border:1px solid var(--line);border-left-width:4px;background:#fff;border-radius:16px;padding:1rem;margin:.6rem 0}.appt-time{font-family:'Fraunces',serif;font-size:1.35rem}.appt-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.appt-main p{margin:.25rem 0;color:var(--ink)}.appt-main small{color:var(--sage)}.status-pill{font-size:.68rem;padding:.25rem .5rem;border-radius:999px;background:var(--paper-warm);color:var(--sage)}.appt-actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.mini-action{border:1px solid var(--line);background:#fff;color:var(--ink);padding:.5rem 1rem;border-radius:999px;text-decoration:none;font-family:'Work Sans',sans-serif;font-weight:500;font-size:.74rem;cursor:pointer;display:inline-block;transition:border-color .2s ease,background .2s ease,color .2s ease;}.mini-action:hover{border-color:var(--gild);background:var(--paper-warm);}.admin-appointment-card.cancelado{opacity:.55}.admin-appointment-card.concluido{background:#fafaf6}.admin-appointment-card.nao_compareceu{opacity:.6;border-color:var(--rose);}
.admin-appointment-card.novo{border-left-color:var(--gild);}
.admin-appointment-card.confirmado{border-left-color:var(--sage);}
.admin-appointment-card.concluido{border-left-color:#7a9a7a;}
.admin-appointment-card.cancelado{border-left-color:#bbb;}
.admin-appointment-card.nao_compareceu{border-left-color:var(--rose);}
.status-pill.novo{background:rgba(178,139,98,.2); color:#8a6a3f;}
.status-pill.confirmado{background:rgba(145,160,145,.25); color:#3f5a3f;}
.status-pill.concluido{background:rgba(122,154,122,.3); color:#2f4a2f;}
.status-pill.cancelado{background:rgba(150,150,150,.2); color:#707070;}
.status-pill.nao_compareceu{background:rgba(201,156,152,.28); color:#8a5652;}
.week-day{padding:1rem 0;border-bottom:1px solid var(--line)}.week-day>div:first-child{display:flex;justify-content:space-between;align-items:center}.week-day>div:first-child span{font-size:.78rem;color:var(--sage)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.month-head{font-size:.7rem;color:var(--sage);padding:.4rem}.month-cell{min-height:75px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;padding:.5rem;cursor:pointer}.month-cell strong,.month-cell span{display:block}.month-cell span{font-size:.68rem;color:var(--sage);margin-top:.3rem}.month-cell.selected{border-color:var(--gild);box-shadow:0 0 0 2px rgba(181,150,88,.12) inset}.month-cell.empty{background:transparent;border-style:dashed}
@media(max-width:600px){.month-grid{gap:.2rem}.month-cell{min-height:44px;padding:.3rem .25rem;border-radius:6px}.month-cell strong{font-size:.78rem}.month-cell span{font-size:.6rem;margin-top:.1rem}.month-head{font-size:.6rem;padding:.2rem}}
.contact-toolbar{display:grid;grid-template-columns:2fr 1fr auto;gap:.6rem;margin-bottom:1rem}@media(max-width:700px){.contact-toolbar{grid-template-columns:1fr}.contact-toolbar button{width:100%}}.contact-card strong{display:block}
.contact-detail{position:fixed; inset:0; z-index:250; background:rgba(46,59,52,.5); display:flex; align-items:flex-start; justify-content:center; padding:4vh 5vw; overflow-y:auto;}
.contact-detail-box{background:var(--paper); border-radius:22px; max-width:640px; width:100%; padding:2rem 2.2rem; box-shadow:0 30px 80px rgba(0,0,0,.25); margin:auto;}
.contact-data-grid{display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.4rem; margin-top:.8rem;}
.contact-data-grid span{display:block; font-family:'IBM Plex Mono',monospace; font-size:.65rem; letter-spacing:.05em; color:var(--sage); margin-bottom:.15rem;}
.contact-data-grid strong{font-weight:500; color:var(--ink);}
@media(max-width:520px){.contact-data-grid{grid-template-columns:1fr;}}
.contact-detail-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.contact-detail h4{font-family:'Fraunces',serif;font-size:1.7rem;margin:.2rem 0}.contact-actions{display:flex;gap:.5rem;margin:1rem 0}.history-row{display:grid;grid-template-columns:180px 1fr;gap:.5rem}.history-row small{grid-column:2;color:var(--sage)}@media(max-width:650px){.history-row{grid-template-columns:1fr}.history-row small{grid-column:1}}
.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1rem}.dashboard-cards>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem}.dashboard-cards span,.dashboard-cards small{display:block;color:var(--sage);font-size:.72rem}.dashboard-cards strong{display:block;font-family:'Fraunces',serif;font-size:2rem;margin:.25rem 0}.dashboard-panel{border:1px solid var(--line);border-radius:16px;padding:1rem;background:#fff}.dashboard-panel h4{font-family:'Fraunces',serif;margin:0 0 .8rem;font-size:1.25rem}.metric-row{display:flex;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--line)}
@media(max-width:720px){.admin-modal{padding:1rem!important}.admin-shell{padding:1rem!important;border-radius:18px!important}.admin-appointment-card{grid-template-columns:60px 1fr}.appt-actions{grid-column:1/-1;justify-content:flex-start}.admin-head{align-items:center}}
.cookie-banner{position:fixed; left:1.2rem; right:1.2rem; bottom:1.2rem; z-index:250; background:var(--paper-dark); color:var(--paper); border-radius:16px; padding:1.1rem 1.4rem; display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; box-shadow:0 20px 50px rgba(0,0,0,.25); max-width:640px;}
@media(max-width:720px){ .cookie-banner{ bottom:calc(64px + 1rem + env(safe-area-inset-bottom)); left:.8rem; right:.8rem; } }
.cookie-banner p{margin:0; font-size:.85rem; color:#C7CFC5; flex:1; min-width:220px;}
.cookie-banner a{color:var(--gild-light);}
.placeholder-nif{background:rgba(178,139,98,.18); padding:.1rem .35rem; border-radius:4px; color:var(--ink);}

.global-search-wrap{position:relative; margin:1rem 0 1.4rem;}
.global-search-wrap input{width:100%; border:1px solid var(--line); border-radius:12px; padding:.8rem 1rem; font:inherit; background:#fff;}
#globalSearchResults{position:absolute; top:calc(100% + .4rem); left:0; right:0; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.12); max-height:360px; overflow-y:auto; z-index:50; padding:.5rem;}
#globalSearchResults h5{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--sage); margin:.6rem .6rem .3rem;}
.gs-row{padding:.6rem .6rem; border-radius:8px; cursor:pointer;}
.gs-row:hover{background:var(--paper-warm);}
.gs-row strong{display:block; font-size:.92rem;}
.gs-row span{font-size:.76rem; color:var(--sage);}

.centro-atencao{border:1px solid var(--gild); border-radius:16px; background:rgba(178,139,98,.06); padding:1.2rem 1.4rem; margin-bottom:1.2rem;}
.centro-atencao h4{font-family:'Fraunces',serif; font-size:1.15rem; margin:0 0 .7rem;}
.centro-atencao .ca-row{display:flex; align-items:center; gap:.6rem; padding:.4rem 0; font-size:.9rem;}
.centro-atencao .ca-dot{width:8px; height:8px; border-radius:50%; flex-shrink:0;}
.centro-atencao .ca-ok{color:var(--sage); font-size:.85rem; padding:.3rem 0;}

/* ============================================
   PÁGINA DEDICADA DE GESTÃO (gestao.html)
   ============================================ */
.gestao-body{background:var(--paper-warm); min-height:100vh;}
.gestao-shell{width:100%;}
#adminLogin{max-width:420px; margin:8vh auto; background:var(--paper); border-radius:20px; padding:2.4rem; box-shadow:0 20px 60px rgba(0,0,0,.08);}
.gestao-layout{display:flex; min-height:100vh; align-items:stretch;}
.gestao-sidebar{width:260px; flex-shrink:0; background:var(--ink); color:var(--paper); display:flex; flex-direction:column; padding:1.6rem 1.2rem; position:sticky; top:0; height:100vh;}
.gestao-brand{margin-bottom:1.8rem;}
.gestao-brand strong{display:block; font-family:'Fraunces',serif; font-size:1.2rem;}
.gestao-brand small{color:rgba(247,243,236,.6); font-size:.72rem;}
.gestao-nav.admin-main-tabs{display:flex!important; flex-direction:column!important; gap:.3rem!important; margin:0!important; overflow:visible!important;}
.gestao-nav .admin-tab-btn{text-align:left!important; background:transparent!important; border:none!important; color:rgba(247,243,236,.75)!important; padding:.8rem 1rem!important; border-radius:12px!important; white-space:normal!important;}
.gestao-nav .admin-tab-btn.active{background:rgba(247,243,236,.12)!important; color:var(--paper)!important;}
.gestao-nav .admin-tab-btn:hover{background:rgba(247,243,236,.08)!important;}
.gestao-sidebar-foot{margin-top:auto; display:flex; flex-direction:column; gap:.6rem; padding-top:1.2rem; border-top:1px solid rgba(247,243,236,.15);}
.gestao-back{color:rgba(247,243,236,.7); font-size:.85rem; text-decoration:none;}
.gestao-back:hover{color:var(--paper);}
.gestao-sidebar-foot .admin-logout{color:rgba(247,243,236,.7); background:none; border:1px solid rgba(247,243,236,.25); border-radius:10px; padding:.6rem; cursor:pointer;}
.gestao-main{flex:1; padding:2.4rem 3rem; max-width:1400px; overflow-y:auto; max-height:100vh;}
@media(max-width:900px){
  .gestao-layout{flex-direction:column;}
  .gestao-sidebar{width:100%; height:auto; position:relative; flex-direction:row; align-items:center; flex-wrap:wrap; padding:1rem;}
  .gestao-brand{margin-bottom:0; margin-right:1rem;}
  .gestao-nav.admin-main-tabs{flex-direction:row!important; flex-wrap:wrap!important;}
  .gestao-sidebar-foot{flex-direction:row; margin-top:.6rem; margin-left:auto; border-top:none; padding-top:0;}
  .gestao-main{padding:1.2rem; max-height:none;}
}

/* Transição subtil ao trocar de separador na gestão */
@keyframes gestaoFadeIn{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }
.admin-subview.active{ animation:gestaoFadeIn .25s ease; }
@media(prefers-reduced-motion:reduce){ .admin-subview.active{ animation:none; } }

/* Notificações "toast" */
.toast-wrap{position:fixed; bottom:1.5rem; right:1.5rem; z-index:400; display:flex; flex-direction:column; gap:.6rem; align-items:flex-end;}
.toast{background:var(--ink); color:var(--paper); padding:.8rem 1.2rem; border-radius:12px; font-size:.88rem; box-shadow:0 12px 35px rgba(0,0,0,.2); max-width:320px; animation:toastIn .25s ease;}
.toast.toast-erro{background:var(--rose);}
.toast.toast-sucesso{background:var(--ink);}
@keyframes toastIn{ from{opacity:0; transform:translateX(12px);} to{opacity:1; transform:translateX(0);} }
@media(max-width:600px){ .toast-wrap{left:1rem; right:1rem; align-items:stretch;} .toast{max-width:none;} }

/* ============================================
   PÁGINA DEDICADA "A MINHA CONTA" (conta.html)
   ============================================ */
.conta-body{background:var(--paper-warm); min-height:100vh;}
.conta-head{display:flex; justify-content:space-between; align-items:center; padding:1.4rem 2rem; background:var(--paper);}
.conta-brand{font-family:'Fraunces',serif; font-size:1.1rem; color:var(--ink); text-decoration:none; display:flex; flex-direction:column; line-height:1.3;}
.conta-brand small{font-family:'IBM Plex Mono',monospace; font-size:.62rem; color:var(--sage); text-transform:uppercase; letter-spacing:.05em;}
.conta-back{font-size:.85rem; color:var(--sage); text-decoration:none;}
.conta-back:hover{color:var(--ink);}
.conta-wrap{max-width:600px; margin:4vh auto 6vh; padding:2.4rem; background:var(--paper); border-radius:20px; box-shadow:0 20px 60px rgba(0,0,0,.08);}
@media(max-width:720px){ .conta-head{padding:1rem 1.2rem;} .conta-wrap{margin:2vh auto 4vh; padding:1.6rem; border-radius:16px; width:94vw;} }

/* Painel de integrações */
.integ-row{display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:14px; background:#fff; margin-bottom:.7rem;}
.integ-row strong{display:block; font-family:'Fraunces',serif; font-size:1.05rem;}
.integ-row small{color:var(--sage); font-size:.78rem;}
.integ-badge{font-size:.72rem; padding:.35rem .7rem; border-radius:999px; white-space:nowrap; font-family:'IBM Plex Mono',monospace;}
.integ-badge.on{background:rgba(178,139,98,.15); color:var(--ink);}
.integ-badge.manual{background:rgba(201,156,152,.18); color:#8a5652;}
.integ-badge.off{background:var(--paper-warm); color:var(--sage);}

.faq-list{display:flex; flex-direction:column; gap:.9rem; max-width:760px;}
.faq-item{background:#fff; border:1px solid var(--line); border-radius:18px; padding:0 1.6rem;}
.faq-item summary{font-family:'Fraunces',serif; font-size:1.05rem; color:var(--ink); padding:1.3rem 0; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-family:'IBM Plex Mono',monospace; font-size:1.2rem; color:var(--gild); flex-shrink:0; transition:transform .2s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{color:var(--ink-soft); font-size:.94rem; line-height:1.6; margin:0 0 1.3rem;}

/* ================================================================
   CORREÇÕES FINAIS — responsividade, horários e orientador
   ================================================================ */
html,body{width:100%;max-width:100%;}
body.modal-open,body.guide-open{overflow:hidden;touch-action:none;}
.wrap,.hero-grid,.experience-grid,.section-head,.service-grid,.reels-grid,.gal-grid,
.marcar-grid,.local-grid,.sobre-grid,.porque-grid,.gestao-layout,.gestao-main,
.admin-panel-view,.admin-subview,.conta-wrap{min-width:0;}
.wrap{width:100%;}
p,h1,h2,h3,h4,strong,small,a,span{overflow-wrap:anywhere;}
input,select,textarea,button{max-width:100%;min-width:0;}
.admin-field input,.admin-field textarea,.admin-field select{width:100%;font-size:16px;}
.field>*,.admin-field>*{min-width:0;}
.contact-card>div,.admin-appointment-card>div,.service-admin-card>div{min-width:0;}
.contact-card{flex-wrap:wrap;}
.conta-wrap.client-modal{max-height:none!important;overflow:visible!important;}
.experience-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem;}

.booking-time-field{min-width:0;}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:.55rem;margin-top:.45rem;}
.slot-grid .slot-hint,.slot-grid .sub{grid-column:1/-1;margin:.2rem 0;color:inherit;opacity:.8;}
.slot-btn{min-height:46px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:.7rem .55rem;font:500 .88rem 'IBM Plex Mono',monospace;cursor:pointer;touch-action:manipulation;}
.slot-btn:hover,.slot-btn:focus-visible{border-color:var(--gild);outline:2px solid rgba(178,139,98,.22);outline-offset:2px;}
.slot-btn.selected{background:var(--gild);border-color:var(--gild);color:#fff;}
.marcar .slot-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35);color:var(--paper);}
.marcar .slot-btn.selected{background:var(--gild);border-color:var(--gild);color:#fff;}
.booking-time-fallback{margin-top:.6rem;}

.guide-overlay{position:fixed;inset:0;z-index:650;display:grid;place-items:center;padding:1rem;background:rgba(24,34,29,.72);backdrop-filter:blur(7px);}
.guide-overlay[hidden]{display:none!important;}
.guide-dialog{position:relative;width:min(680px,100%);max-height:90dvh;overflow:auto;background:var(--paper);border-radius:24px;padding:2rem;box-shadow:0 30px 90px rgba(0,0,0,.32);}
.guide-dialog h2{font-size:clamp(1.8rem,5vw,2.7rem);max-width:17ch;margin-bottom:1.3rem;}
.guide-close{position:absolute;top:.75rem;right:.75rem;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.4rem;cursor:pointer;}
.guide-options{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
.guide-option{min-height:56px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:.85rem 1rem;text-align:left;font:500 .92rem 'Work Sans',sans-serif;cursor:pointer;}
.guide-option:hover,.guide-option:focus-visible{border-color:var(--gild);background:var(--paper-warm);outline:2px solid rgba(178,139,98,.18);}
.guide-result{border:1px solid var(--gild);border-radius:18px;padding:1.25rem;background:rgba(178,139,98,.08);}
.guide-result h3{font-size:1.55rem;margin:.25rem 0 .6rem;}
.guide-result-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem;}

.admin-appointment-card.bloqueado{border-left-color:var(--rose);background:rgba(201,156,152,.08);}
.status-pill.bloqueado{background:rgba(201,156,152,.2);color:#7a4643;}
.history-delete-action{color:#8a5652;border-color:rgba(138,86,82,.5);}
.hours-row{display:grid;grid-template-columns:110px minmax(92px,auto) minmax(100px,1fr) minmax(100px,1fr);gap:.8rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line);}

@media(max-width:900px){
  .experience-grid{grid-template-columns:minmax(0,1fr);gap:2.4rem;}
  .section-head{grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .gestao-main{width:100%;overflow-x:clip;}
  .gestao-sidebar{min-width:0;}
  .gestao-nav.admin-main-tabs{flex-wrap:nowrap!important;overflow-x:auto!important;width:100%;padding-bottom:.25rem;scrollbar-width:thin;}
  .gestao-nav .admin-tab-btn{white-space:nowrap!important;flex:0 0 auto;}
  .gestao-sidebar-foot{width:100%;margin-left:0;justify-content:space-between;}
}

@media(max-width:720px){
  .wrap{padding-left:1rem;padding-right:1rem;}
  section{padding:3.6rem 0;}
  nav.wrap{padding:.75rem 1rem;gap:.55rem;flex-wrap:nowrap;}
  .brand{font-size:1rem;line-height:1.15;flex:1 1 auto;min-width:0;}
  .brand small{font-size:.51rem;letter-spacing:.08em;line-height:1.35;margin-top:.25rem;}
  .nav-cta{gap:.4rem;flex:0 0 auto;}
  .nav-cta .btn{font-size:.67rem;padding:.65rem .78rem;white-space:nowrap;}
  .hero-grid{gap:1.8rem;}
  .hero h1{font-size:clamp(2.25rem,11vw,3.1rem);max-width:12ch;}
  .hero p.lede{font-size:1rem;margin:1.2rem 0 1.6rem;}
  .hero-stats{gap:1.2rem;margin-top:2rem;}
  .hero-stats div{flex:1 1 130px;}
  .service-grid{grid-template-columns:minmax(0,1fr);gap:.8rem;border:0;background:transparent;}
  .service-card{padding:1.5rem;}
  .service-thumb{margin:-1.5rem -1.5rem 1.2rem;}
  .filtros-tratamento{justify-content:flex-start;gap:.55rem;}
  .btn-filtro{padding:.6rem .9rem;font-size:.8rem;flex:1 1 auto;}
  .experience-list>div{grid-template-columns:36px minmax(0,1fr);column-gap:.75rem;}
  .experience-actions,.guide-result-actions{flex-direction:column;align-items:stretch;}
  .experience-actions .btn,.guide-result-actions .btn{width:100%;justify-content:center;text-align:center;}
  .gal-grid,.gal-grid:has(a:only-child){grid-template-columns:minmax(0,1fr);max-width:none;width:100%;}
  .gal-grid img,.gal-grid a:first-child img{height:auto;aspect-ratio:auto;max-height:none;}
  .media-lightbox{padding:.75rem;align-items:center;}
  .media-lightbox-box{max-height:88dvh;width:100%;}
  .media-lightbox-box .video-real{aspect-ratio:9/16;max-height:86dvh;}
  .mobile-cta{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .mobile-cta a{font-size:.76rem!important;padding:.7rem .4rem!important;white-space:normal;line-height:1.25;}
  .conta-head{gap:1rem;}
  .conta-brand{min-width:0;}
  .conta-back{white-space:nowrap;}
  .conta-wrap{width:calc(100% - 1rem);margin:1rem .5rem 2rem;padding:1.15rem;}
  .client-tabs,.admin-subtabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:.5rem;scrollbar-width:thin;}
  .client-tab-btn,.admin-subtab{flex:0 0 auto;white-space:nowrap;margin-right:.25rem;}
  .pay-toggle{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .pay-option{padding:.8rem .45rem;}
  .client-tab-view .btn,.conta-wrap .btn{white-space:normal;text-align:center;justify-content:center;}
  .admin-editor-grid{grid-template-columns:minmax(0,1fr)!important;}
  .admin-section-title{align-items:flex-start;flex-direction:column;}
  .agenda-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:100%;}
  .agenda-toolbar #agendaPeriodLabel{text-align:center;align-self:center;}
  .agenda-toolbar input,.agenda-toolbar select,.agenda-toolbar .agenda-create-btn{grid-column:1/-1;width:100%;min-width:0;}
  .agenda-toolbar .agenda-create-btn{justify-content:center;}
  .admin-appointment-card{grid-template-columns:54px minmax(0,1fr);gap:.65rem;padding:.8rem;}
  .appt-time{font-size:1.05rem;}
  .appt-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;}
  .appt-actions .mini-action{text-align:center;justify-content:center;padding:.55rem .5rem;overflow-wrap:anywhere;}
  .contact-card{align-items:flex-start;flex-direction:column;}
  .contact-card>div:last-child{display:flex;flex-wrap:wrap;gap:.4rem;width:100%;}
  .contact-actions,.manual-booking-actions,.admin-save-row{flex-direction:column;align-items:stretch;width:100%;}
  .contact-actions .btn,.manual-booking-actions .btn,.admin-save-row .btn{width:100%;justify-content:center;}
  .contact-detail{padding:.5rem;}
  .contact-detail-box{padding:1.2rem;border-radius:16px;}
  .contact-detail-head{flex-direction:column;}
  .month-grid{width:100%;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible;}
  .month-cell{min-width:0;}
  .hours-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.55rem;}
  .hours-row strong{grid-column:1/-1;}
  .hours-row input{width:100%;}
  .foot-grid{grid-template-columns:minmax(0,1fr);}
  .toast-wrap{bottom:calc(76px + env(safe-area-inset-bottom));}
  .guide-overlay{padding:.5rem;align-items:end;}
  .guide-dialog{padding:1.4rem 1rem 1rem;border-radius:22px 22px 0 0;max-height:92dvh;}
  .guide-options{grid-template-columns:1fr;}
  .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

@media(max-width:390px){
  nav.wrap{padding-left:.7rem;padding-right:.7rem;}
  .brand{font-size:.92rem;}
  .brand small{font-size:.47rem;}
  .nav-cta .btn{font-size:.62rem;padding:.58rem .62rem;}
  .mobile-cta a{font-size:.71rem!important;}
  .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ================================================================
   V2 — identidade viva, controlos claros e pesquisa rápida
   ================================================================ */
.filtros-tratamento,.client-tabs,.admin-subtabs{scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(178,139,98,.45) transparent;}
.btn-filtro,.client-tab-btn,.admin-subtab{scroll-snap-align:start;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.68);color:var(--ink-soft);font:500 .82rem/1.2 'Work Sans',sans-serif;letter-spacing:0;padding:.72rem 1rem;margin:0;box-shadow:0 2px 0 rgba(52,69,59,.025);}
.btn-filtro:hover,.client-tab-btn:hover,.admin-subtab:hover{border-color:rgba(178,139,98,.65);background:#fff;color:var(--ink);transform:translateY(-1px);}
.btn-filtro.active,.client-tab-btn.active,.admin-subtab.active{border-color:var(--ink);background:var(--ink);color:var(--paper);box-shadow:0 8px 22px rgba(52,69,59,.16);}
.btn-filtro.active::after,.client-tab-btn.active::after,.admin-subtab.active::after{content:'';position:absolute;left:50%;bottom:5px;width:20px;height:2px;border-radius:2px;background:var(--gild-light);transform:translateX(-50%);}
.admin-subtabs{gap:.55rem;padding:.2rem 0 .85rem;border-bottom:1px solid var(--line);}
.client-tabs{gap:.55rem;padding:0 0 .85rem;border-bottom:1px solid var(--line);}

.admin-field select,.contact-toolbar select,.agenda-toolbar select,.field select{appearance:none;-webkit-appearance:none;padding-right:2.8rem!important;background-image:linear-gradient(45deg,transparent 50%,var(--gild) 50%),linear-gradient(135deg,var(--gild) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;border-radius:14px;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;}
.admin-field input,.admin-field textarea,.admin-field select,.contact-toolbar input,.contact-toolbar select,.agenda-toolbar input,.agenda-toolbar select{border-radius:14px!important;min-height:46px;}
.admin-field input:hover,.admin-field textarea:hover,.admin-field select:hover,.contact-toolbar input:hover,.contact-toolbar select:hover,.agenda-toolbar input:hover,.agenda-toolbar select:hover{border-color:rgba(178,139,98,.65);}
.admin-field input:focus,.admin-field textarea:focus,.admin-field select:focus,.contact-toolbar input:focus,.contact-toolbar select:focus,.agenda-toolbar input:focus,.agenda-toolbar select:focus{border-color:var(--gild);box-shadow:0 0 0 4px rgba(178,139,98,.12);outline:none;}
.pay-option{min-height:52px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#fff;box-shadow:0 4px 14px rgba(52,69,59,.04);}
.pay-option:hover{border-color:var(--gild);transform:translateY(-1px);}
.pay-option.selected{border-color:var(--ink);background:var(--ink);color:var(--paper);box-shadow:0 8px 22px rgba(52,69,59,.16);}
.btn,.mini-action,.status-btn{font-weight:500;}
.mini-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;}

.conta-body{position:relative;isolation:isolate;background:#d6c2a9 url('imagem-partilha.jpg?v=20260821-6') center 28%/cover fixed no-repeat;min-height:100dvh;padding:clamp(.7rem,4vw,2.2rem) 0;}
.conta-body::before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(115deg,rgba(31,47,39,.78),rgba(31,47,39,.4) 45%,rgba(247,243,236,.65));backdrop-filter:blur(2px);}
.conta-page-shell{width:100%;min-height:calc(100dvh - 2rem);display:grid;place-items:center;padding:0 1rem;}
.conta-wrap.client-modal{width:min(820px,100%)!important;max-width:820px;margin:0;padding:0 2rem 2.2rem;border:1px solid rgba(255,255,255,.7);border-radius:28px;background:rgba(247,243,236,.97);box-shadow:0 30px 90px rgba(20,31,25,.32);overflow:hidden!important;}
.conta-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 -2rem;padding:1.25rem 2rem;background:rgba(255,255,255,.72);border-bottom:1px solid var(--line);}
.conta-brand span{display:block;font-family:'Fraunces',serif;font-size:1.2rem;line-height:1.1;}
.conta-brand small{display:block;font:500 .62rem/1.35 'IBM Plex Mono',monospace;color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:.2rem;}
.conta-brand em{display:block;font:500 .56rem/1.35 'IBM Plex Mono',monospace;color:var(--gild);letter-spacing:.17em;text-transform:uppercase;}
.conta-back{display:inline-flex;align-items:center;min-height:42px;padding:.55rem .85rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-weight:500;white-space:nowrap;}
.conta-back:hover{border-color:var(--gild);color:var(--ink);transform:translateY(-1px);}
.conta-visual{height:190px;margin:1.25rem 0 1.6rem;border-radius:20px;overflow:hidden;position:relative;background:#d6c2a9;}
.conta-visual::after{content:'Daniela Barbosa · Massoterapeuta · Braga';position:absolute;left:1rem;right:1rem;bottom:.85rem;padding:.55rem .75rem;border-radius:12px;background:rgba(31,47,39,.78);color:#fff;font:500 .68rem/1.4 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(5px);}
.conta-visual img{width:100%;height:100%;object-fit:cover;object-position:center 29%;}

.manual-client-picker{position:relative;z-index:6;}
.manual-client-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center;}
.manual-client-clear{white-space:nowrap;min-height:46px;}
.manual-client-results{position:absolute;top:calc(100% - .35rem);left:0;right:0;z-index:30;max-height:280px;overflow:auto;padding:.45rem;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 22px 55px rgba(35,49,41,.18);}
.manual-client-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;width:100%;padding:.75rem .8rem;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer;}
.manual-client-result:last-child{border-bottom:0;}
.manual-client-result:hover,.manual-client-result:focus-visible{background:var(--paper-warm);border-radius:10px;outline:none;}
.manual-client-result strong{display:block;}
.manual-client-result span{display:block;color:var(--sage);font-size:.75rem;}
.manual-client-result small{align-self:center;color:var(--gild);font-weight:600;}
.manual-client-selected{margin:.55rem 0 0;color:var(--sage);font-size:.78rem;}
.manual-client-selected.has-client{color:var(--ink);font-weight:500;}

.dashboard-cards>.dashboard-stat{appearance:none;width:100%;border:1px solid var(--line);border-radius:18px;padding:1rem;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:transform .18s ease,border-color .2s ease,box-shadow .2s ease;}
.dashboard-cards>.dashboard-stat:hover{transform:translateY(-2px);border-color:rgba(178,139,98,.7);box-shadow:0 12px 28px rgba(52,69,59,.09);}
.dashboard-cards>.dashboard-stat:focus-visible{outline:2px solid var(--gild);outline-offset:3px;}
.dashboard-cards>.dashboard-stat span,.dashboard-cards>.dashboard-stat small{display:block;color:var(--sage);font-size:.72rem;}
.dashboard-cards>.dashboard-stat strong{display:block;font-family:'Fraunces',serif;font-size:2rem;margin:.25rem 0;}
.centro-atencao .ca-row.is-link{appearance:none;width:100%;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;}
.centro-atencao .ca-row.is-link:hover{background:rgba(255,255,255,.7);}

@media(max-width:720px){
  .hero-media-note{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.75rem;}
  .hero-media-note strong{grid-column:1;}
  .hero-media-note span{grid-column:1;}
  .hero-media-note small{grid-column:2;grid-row:1/3;}
  .conta-body{padding:.5rem 0;background-attachment:scroll;background-position:68% 22%;}
  .conta-page-shell{padding:0 .5rem;display:block;}
  .conta-wrap.client-modal{width:100%!important;margin:0!important;padding:0 1rem 1.4rem!important;border-radius:22px;}
  .conta-card-head{margin:0 -1rem;padding:1rem;align-items:flex-start;}
  .conta-brand span{font-size:1.05rem;}
  .conta-back{font-size:.76rem;padding:.48rem .68rem;}
  .conta-visual{height:150px;margin:1rem 0 1.25rem;border-radius:16px;}
  .conta-visual::after{left:.65rem;right:.65rem;bottom:.6rem;font-size:.58rem;}
  .manual-client-search-row{grid-template-columns:minmax(0,1fr);}
  .manual-client-clear{width:100%;}
  .manual-client-results{position:relative;top:auto;margin-top:.45rem;max-height:240px;}
  .filtros-tratamento,.client-tabs,.admin-subtabs{flex-wrap:nowrap!important;overflow-x:auto;justify-content:flex-start;padding-bottom:.75rem;}
  .btn-filtro,.client-tab-btn,.admin-subtab{flex:0 0 auto!important;white-space:nowrap;}
}

/* ================================================================
   V3 — EXPERIÊNCIA DO CLIENTE
   Um percurso mais humano, claro e confortável em qualquer ecrã.
   ================================================================ */
:root{
  --client-cream:#FBF8F2;
  --client-sand:#F1E8DC;
  --client-peach:#E8C6B2;
  --client-blush:#E9D0CA;
  --client-moss:#344C3F;
  --client-moss-soft:#587062;
  --client-gold:#B8875D;
  --client-danger:#9A5D5A;
  --client-shadow:0 24px 70px rgba(32,48,40,.12);
}

/* Interações globais mais consistentes sem alterar a lógica existente. */
.btn{min-height:46px;justify-content:center;line-height:1.25;position:relative;isolation:isolate;overflow:hidden;}
.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 10%,rgba(255,255,255,.16),transparent 90%);transform:translateX(-120%);transition:transform .55s ease;z-index:-1;}
.btn:hover::before{transform:translateX(120%);}
.btn:disabled{opacity:.58;cursor:not-allowed;transform:none!important;box-shadow:none!important;}
.btn-solid{background:linear-gradient(135deg,#344C3F,#2E4037);box-shadow:0 10px 24px rgba(52,76,63,.18);}
.btn-gild{background:linear-gradient(135deg,#D5AA80,#B8875D);color:#26372F;box-shadow:0 10px 24px rgba(184,135,93,.2);}
.btn-soft{background:linear-gradient(135deg,#F0DED2,#E7D0C1);}
.admin-modal,.campaign-popup-box,.media-lightbox-box,.guide-dialog{animation:clientDialogIn .24s cubic-bezier(.2,.8,.2,1);}
@keyframes clientDialogIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

.conta-body{padding:clamp(.65rem,3vw,2rem) 0;background:#9D856D url('imagem-partilha.jpg?v=20260821-6') center 26%/cover fixed no-repeat;}
.conta-body::before{background:linear-gradient(118deg,rgba(28,43,35,.84),rgba(28,43,35,.52) 43%,rgba(241,232,220,.76));backdrop-filter:blur(4px);}
.conta-page-shell{padding:0 clamp(.5rem,2vw,1.5rem);}
.conta-wrap.client-modal.client-experience-shell{width:min(1060px,100%)!important;max-width:1060px!important;padding:0 2.5rem 2.6rem!important;border-radius:32px;background:rgba(251,248,242,.97);box-shadow:0 35px 110px rgba(20,31,25,.34);}
.client-experience-shell .conta-card-head{margin:0 -2.5rem;padding:1.2rem 2.5rem;}
.client-experience-shell .conta-back{gap:.45rem;border-color:rgba(52,76,63,.14);box-shadow:0 5px 18px rgba(52,76,63,.05);}
.client-experience-shell .conta-back:hover{background:var(--client-sand);}
.client-experience-shell .conta-visual{height:245px;margin:1.3rem 0 1.8rem;border-radius:24px;box-shadow:0 14px 38px rgba(52,69,59,.1);isolation:isolate;}
.client-experience-shell .conta-visual::after{content:none;}
.client-experience-shell .conta-visual::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(27,42,34,.06) 35%,rgba(27,42,34,.76));}
.client-experience-shell .conta-visual img{object-position:center 35%;}
.conta-visual-caption{position:absolute;z-index:2;top:50%;right:clamp(1.2rem,5vw,3.5rem);width:min(330px,44%);transform:translateY(-50%);color:#fff;}
.conta-visual-caption strong{display:block;font-family:'Fraunces',serif;font-weight:450;font-size:clamp(1.45rem,2.6vw,2.2rem);line-height:1.05;margin-bottom:.55rem;}
.conta-visual-caption span{display:block;color:rgba(255,255,255,.82);font-size:.88rem;line-height:1.55;}

.client-auth-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);gap:clamp(1.5rem,4vw,3.8rem);align-items:start;padding:.4rem 0;}
.client-auth-intro{padding:1.2rem .4rem;}
.client-auth-intro h1{font-size:clamp(2rem,4vw,3.25rem);max-width:12ch;letter-spacing:-.025em;}
.client-auth-intro>p:not(.eyebrow){max-width:45ch;color:var(--ink-soft);margin:1.1rem 0 1.5rem;}
.client-benefit-list{display:grid;gap:.6rem;}
.client-benefit-list>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.8rem;align-items:center;padding:.8rem .9rem;border:1px solid rgba(52,76,63,.09);border-radius:16px;background:rgba(255,255,255,.62);}
.client-benefit-list>div>span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--client-sand);color:var(--client-gold);font:600 .65rem 'IBM Plex Mono',monospace;}
.client-benefit-list p{margin:0;}
.client-benefit-list strong,.client-benefit-list small{display:block;}
.client-benefit-list strong{font-size:.9rem;}
.client-benefit-list small{color:var(--ink-soft);font-size:.76rem;margin-top:.08rem;}
.client-auth-panel{padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(52,76,63,.1);border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 16px 45px rgba(52,76,63,.08);}
.client-auth-panel h2{font-family:'Fraunces',serif;font-size:2rem;line-height:1.1;margin-bottom:.5rem;}
.client-auth-panel>.sub{margin:0 0 1.35rem;color:var(--ink-soft);}
.client-auth-panel .admin-field{margin-bottom:.9rem;}
.client-auth-panel .admin-field input{min-height:52px;background:#fff!important;border-radius:15px!important;padding:.8rem 1rem;}
.password-field{position:relative;display:flex;align-items:center;}
.password-field input{padding-right:4.2rem!important;}
.password-toggle{position:absolute;right:.45rem;min-width:52px;min-height:38px;border:0;border-radius:999px;background:var(--client-sand);color:var(--ink);font:600 .72rem 'Work Sans',sans-serif;cursor:pointer;}
.password-toggle:hover{background:#E6D7C5;}
.consent-row{display:grid!important;grid-template-columns:22px minmax(0,1fr);gap:.65rem;align-items:start;margin:.9rem 0 1.1rem;}
.consent-row[hidden]{display:none!important;}
.consent-row input{appearance:none;width:22px!important;height:22px!important;margin:.05rem 0 0!important;border:1.5px solid rgba(52,76,63,.35);border-radius:7px;background:#fff;cursor:pointer;display:grid;place-items:center;}
.consent-row input::after{content:'✓';color:#fff;font:700 .82rem 'Work Sans',sans-serif;opacity:0;transform:scale(.65);transition:.15s ease;}
.consent-row input:checked{background:var(--client-moss);border-color:var(--client-moss);}
.consent-row input:checked::after{opacity:1;transform:scale(1);}
.consent-row label{font:400 .82rem/1.5 'Work Sans',sans-serif!important;color:var(--ink-soft)!important;text-transform:none!important;letter-spacing:0!important;margin:0!important;cursor:pointer;}
.consent-row a{color:var(--client-moss);font-weight:600;}
.client-auth-submit{margin-top:.35rem;}
.client-inline-error{display:none;margin:.75rem 0 0;padding:.7rem .85rem;border-radius:12px;background:rgba(154,93,90,.09);color:var(--client-danger);font:500 .78rem/1.45 'Work Sans',sans-serif;}
.client-inline-error:not(:empty){display:block;}
.client-auth-switch{text-align:center;margin:1rem 0 .7rem;font-size:.84rem;}
.client-auth-switch a{color:var(--client-moss);font-weight:600;}
.client-safe-note{display:flex;gap:.45rem;align-items:center;justify-content:center;margin:.5rem 0 0;color:var(--sage);font-size:.72rem;text-align:center;}
.client-safe-note span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(52,76,63,.1);color:var(--client-moss);font-size:.65rem;}

.client-account{padding:.2rem 0;}
.client-welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.75fr) auto;gap:1.2rem;align-items:center;padding:1.25rem 1.35rem;border-radius:22px;background:linear-gradient(135deg,#F0E3D6,#E7D4C5 52%,#D7C8B9);border:1px solid rgba(184,135,93,.2);}
.client-welcome .eyebrow{margin-bottom:.25rem;}
.client-welcome h1{font-size:clamp(1.7rem,3vw,2.35rem);}
.client-account-email{margin:.2rem 0 0;color:var(--ink-soft);font-size:.78rem;}
.client-next-session{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border:1px solid rgba(255,255,255,.58);border-radius:16px;background:rgba(255,255,255,.58);}
.client-next-dot{width:11px;height:11px;border-radius:50%;background:var(--client-gold);box-shadow:0 0 0 5px rgba(184,135,93,.15);flex:0 0 auto;}
.client-next-session small,.client-next-session strong{display:block;}
.client-next-session small{color:var(--ink-soft);font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;}
.client-next-session strong{font-size:.79rem;line-height:1.35;margin-top:.12rem;}
.client-logout{align-self:start;border:0;background:transparent;color:var(--ink-soft);font:600 .72rem 'Work Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:.35rem;white-space:nowrap;}
.client-logout:hover{color:var(--client-danger);}

.client-experience-shell .client-tabs{position:sticky;top:.5rem;z-index:30;display:flex;gap:.5rem;margin:1.2rem 0 1.8rem;padding:.5rem;border:1px solid rgba(52,76,63,.1);border-radius:20px;background:rgba(251,248,242,.88);box-shadow:0 10px 35px rgba(52,69,59,.07);backdrop-filter:blur(14px);}
.client-experience-shell .client-tab-btn{display:flex;align-items:center;justify-content:center;gap:.42rem;min-height:46px;padding:.65rem .85rem;margin:0;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--ink-soft);font:600 .76rem 'Work Sans',sans-serif;}
.client-experience-shell .client-tab-btn>span{font-size:1rem;color:var(--client-gold);}
.client-experience-shell .client-tab-btn:hover{background:#fff;border-color:rgba(52,76,63,.08);transform:none;}
.client-experience-shell .client-tab-btn.active{background:var(--client-moss);color:#fff;border-color:var(--client-moss);box-shadow:0 8px 20px rgba(52,76,63,.16);}
.client-experience-shell .client-tab-btn.active>span{color:var(--client-peach);}
.client-experience-shell .client-tab-btn.active::after{content:none;}
.client-tab-view.active{animation:clientTabIn .24s ease;}
@keyframes clientTabIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.client-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.65fr);gap:1.4rem;align-items:end;margin-bottom:1.3rem;}
.client-section-head .eyebrow{margin-bottom:.35rem;}
.client-section-head h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.5vw,2.55rem);line-height:1.05;}
.client-section-head>p{margin:0;color:var(--ink-soft);font-size:.88rem;}

.booking-progress{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;padding:0;margin:0 0 1rem;}
.booking-progress li{position:relative;display:flex;align-items:center;gap:.6rem;min-width:0;padding:.7rem .75rem;border:1px solid rgba(52,76,63,.1);border-radius:15px;background:rgba(255,255,255,.56);transition:.2s ease;}
.booking-progress li::after{content:'';position:absolute;left:calc(100% + 1px);top:50%;width:.6rem;height:1px;background:rgba(52,76,63,.18);}
.booking-progress li:last-child::after{display:none;}
.booking-progress li>span{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--client-sand);color:var(--client-gold);font:600 .68rem 'IBM Plex Mono',monospace;}
.booking-progress p,.booking-progress strong,.booking-progress small{display:block;margin:0;min-width:0;}
.booking-progress strong{font-size:.77rem;}
.booking-progress small{color:var(--sage);font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.booking-progress li.is-complete{border-color:rgba(52,76,63,.2);background:rgba(52,76,63,.06);}
.booking-progress li.is-complete>span{background:var(--client-moss);color:#fff;}

.client-booking-form{display:grid;gap:1rem;}
.booking-step-card{padding:clamp(1.05rem,2.5vw,1.55rem);border:1px solid rgba(52,76,63,.1);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 10px 30px rgba(52,69,59,.045);}
.booking-step-heading{display:flex;align-items:center;gap:.85rem;margin-bottom:1.15rem;}
.booking-step-heading>span{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:linear-gradient(135deg,var(--client-moss),#486454);color:#fff;font:600 .78rem 'IBM Plex Mono',monospace;box-shadow:0 7px 18px rgba(52,76,63,.16);}
.booking-step-heading .eyebrow{margin:0 0 .1rem;font-size:.61rem;}
.booking-step-heading h3{font-size:clamp(1.2rem,2.2vw,1.55rem);}
.booking-native-service.is-enhanced{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.service-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;}
.service-choice-grid:empty{display:none;}
.service-choice{appearance:none;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:.7rem;align-items:center;min-height:76px;padding:.72rem .8rem;border:1px solid rgba(52,76,63,.12);border-radius:17px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:transform .16s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;}
.service-choice:hover{transform:translateY(-2px);border-color:rgba(184,135,93,.55);box-shadow:0 10px 24px rgba(52,69,59,.07);}
.service-choice:active{transform:scale(.985);}
.service-choice.is-selected{border-color:var(--client-moss);background:linear-gradient(135deg,rgba(52,76,63,.08),rgba(232,198,178,.2));box-shadow:0 0 0 3px rgba(52,76,63,.07);}
.service-choice-index{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--client-sand);color:var(--client-gold);font:600 .68rem 'IBM Plex Mono',monospace;}
.service-choice.is-selected .service-choice-index{background:var(--client-moss);color:#fff;}
.service-choice-copy{min-width:0;}
.service-choice-copy strong,.service-choice-copy small{display:block;}
.service-choice-copy strong{font-family:'Fraunces',serif;font-size:.98rem;line-height:1.2;}
.service-choice-copy small{color:var(--ink-soft);font-size:.68rem;line-height:1.35;margin-top:.18rem;}
.service-choice-duration{padding:.25rem .45rem;border-radius:999px;background:var(--client-sand);color:var(--ink-soft);font:500 .61rem 'IBM Plex Mono',monospace;white-space:nowrap;}
.client-booking-form .duracao-pill{margin:.75rem 0 0;padding:.42rem .7rem;border-radius:999px;background:rgba(184,135,93,.1);font-family:'Work Sans',sans-serif;font-size:.76rem;font-style:normal;font-weight:600;}

.booking-date-time-grid{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);gap:1rem;align-items:start;}
.booking-date-time-grid .admin-field{margin:0;}
.booking-date-field input{min-height:56px!important;background:#fff!important;border-radius:16px!important;color:var(--ink);font-weight:600;}
.client-booking-form .slot-grid{grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:.48rem;}
.client-booking-form .slot-btn{min-height:48px;border-radius:14px;background:#fff;font-family:'Work Sans',sans-serif;font-weight:600;box-shadow:0 3px 10px rgba(52,69,59,.035);}
.client-booking-form .slot-btn:hover{background:var(--client-sand);}
.client-booking-form .slot-btn.selected{background:var(--client-moss);border-color:var(--client-moss);color:#fff;box-shadow:0 8px 18px rgba(52,76,63,.16);outline:0;}
.booking-help-row{display:flex;align-items:flex-start;gap:.65rem;margin-top:1rem;padding:.72rem .8rem;border-radius:14px;background:rgba(232,198,178,.24);}
.booking-help-row>span{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#fff;color:var(--client-gold);font-weight:700;}
.booking-help-row p{margin:0;color:var(--ink-soft);font-size:.78rem;line-height:1.45;}
.booking-help-row a{color:var(--client-moss);font-weight:600;}

.client-booking-form .pay-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
.client-booking-form .pay-option{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.7rem;align-items:center;justify-content:start;min-height:72px;padding:.72rem .8rem;text-align:left;background:#fff;border-color:rgba(52,76,63,.12);}
.client-booking-form .pay-option-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--client-sand);color:var(--client-moss);font:700 .86rem 'IBM Plex Mono',monospace;}
.client-booking-form .pay-option strong,.client-booking-form .pay-option small{display:block;}
.client-booking-form .pay-option strong{font-size:.86rem;}
.client-booking-form .pay-option small{font-size:.67rem;color:var(--sage);margin-top:.1rem;}
.client-booking-form .pay-option.selected{border-color:var(--client-moss);background:linear-gradient(135deg,rgba(52,76,63,.07),rgba(232,198,178,.16));color:var(--ink);box-shadow:0 0 0 3px rgba(52,76,63,.06);}
.client-booking-form .pay-option.selected .pay-option-mark{background:var(--client-moss);color:#fff;}
.client-booking-form textarea{min-height:94px!important;background:#fff!important;border-radius:16px!important;}
.client-booking-form .admin-field label small{font-size:.7rem;color:var(--sage);font-weight:400;}
.booking-consent{margin-bottom:0;}

.booking-summary{padding:1.15rem 1.25rem;border:1px solid rgba(184,135,93,.3);border-radius:22px;background:linear-gradient(135deg,#F2E6D8,#EBD9CA);}
.booking-summary-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.75rem;}
.booking-summary-head>span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--client-moss);color:#fff;font-weight:700;}
.booking-summary-head .eyebrow{margin:0 0 .05rem;font-size:.58rem;}
.booking-summary-head h3{font-size:1.2rem;}
.booking-summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:0;}
.booking-summary dl>div{padding:.62rem .7rem;border-radius:13px;background:rgba(255,255,255,.6);min-width:0;}
.booking-summary dt{color:var(--ink-soft);font-size:.61rem;text-transform:uppercase;letter-spacing:.07em;}
.booking-summary dd{margin:.16rem 0 0;font-size:.77rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere;}
.booking-summary-note{margin:.7rem 0 0;color:var(--ink-soft);font-size:.72rem;line-height:1.45;}
.booking-submit{min-height:58px;display:flex;justify-content:space-between;padding-left:1.35rem;padding-right:1.15rem;font-size:.85rem;}
.booking-submit>span:last-child{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.28);font-size:1rem;}
.client-btn-spinner{width:19px!important;height:19px!important;border:2px solid rgba(38,55,47,.22);border-top-color:#26372F;border-radius:50%!important;background:transparent!important;animation:clientSpin .7s linear infinite;}

.client-success-state,.client-error-state{grid-template-columns:46px minmax(0,1fr);gap:.85rem;align-items:start;border-radius:20px!important;padding:1.1rem!important;}
.client-success-state[style*="display: block"],.client-error-state[style*="display: block"]{display:grid!important;}
.client-success-state{border-color:rgba(52,76,63,.25)!important;background:rgba(52,76,63,.07)!important;}
.client-error-state{display:none;border-color:rgba(154,93,90,.28)!important;background:rgba(154,93,90,.07)!important;}
.state-symbol{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:var(--client-moss);color:#fff;font-size:1.1rem;font-weight:700;}
.client-error-state .state-symbol{background:var(--client-danger);}
.client-success-state h3,.client-error-state h3{font-size:1.2rem;margin-bottom:.2rem;}

.client-settings-card{padding:clamp(1rem,2.5vw,1.5rem);border:1px solid rgba(52,76,63,.1);border-radius:22px;background:rgba(255,255,255,.72);}
.client-save-row{display:flex;align-items:center;gap:.8rem;margin-top:.5rem;}
.client-notes-label{display:block;margin-bottom:.45rem;font-weight:600;font-size:.84rem;}
.client-settings-card #clientNotesText{background:#fff;min-height:180px;}
.client-review-box{margin-top:1.2rem;padding:1.4rem;border:1px solid rgba(184,135,93,.25);border-radius:22px;background:linear-gradient(135deg,#F2E4D7,#EAD3C5);}
.client-review-box h3{font-size:1.4rem;margin-bottom:.25rem;}
.client-review-box p{color:var(--ink-soft);font-size:.85rem;margin:.2rem 0 1rem;}
.client-loading-state{display:flex;align-items:center;justify-content:center;gap:.7rem;min-height:130px;border:1px dashed rgba(52,76,63,.18);border-radius:20px;color:var(--ink-soft);}
.client-loading-state span{width:20px;height:20px;border:2px solid rgba(52,76,63,.18);border-top-color:var(--client-gold);border-radius:50%;animation:clientSpin .8s linear infinite;}
.client-loading-state p{margin:0;font-size:.82rem;}
@keyframes clientSpin{to{transform:rotate(360deg)}}
.client-empty-state{padding:2rem 1.2rem;text-align:center;border:1px dashed rgba(52,76,63,.2);border-radius:22px;background:rgba(255,255,255,.5);}
.client-empty-state>span{width:54px;height:54px;display:grid;place-items:center;margin:0 auto .8rem;border-radius:18px;background:var(--client-sand);color:var(--client-gold);font-family:'Fraunces',serif;font-size:1.45rem;}
.client-empty-state h3{font-size:1.35rem;margin-bottom:.3rem;}
.client-empty-state p{max-width:42ch;margin:.2rem auto 1rem;color:var(--ink-soft);font-size:.84rem;}
.client-experience-shell .pedido-card{padding:1rem 1.1rem;margin-bottom:.7rem;border-radius:18px;background:#fff;box-shadow:0 7px 22px rgba(52,69,59,.04);}
.client-experience-shell .pedido-card .top{align-items:center;}
.client-experience-shell .pedido-card .meta{padding:.32rem .6rem;border-radius:999px;background:var(--client-sand);}
.booking-card-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.75rem;}
.booking-card-actions .mini-action{display:inline-flex;align-items:center;gap:.35rem;margin:0!important;min-height:40px;padding:.5rem .7rem;border:1px solid rgba(52,76,63,.14);border-radius:12px;background:var(--client-cream);color:var(--ink);font:600 .72rem 'Work Sans',sans-serif;cursor:pointer;}
.booking-card-actions .mini-action:hover{border-color:var(--client-gold);background:var(--client-sand);}
.booking-card-actions .history-delete-action{color:var(--client-danger);}

.toast-wrap{gap:.5rem;}
.toast{position:relative;padding:.9rem 1rem .9rem 2.8rem;border:1px solid rgba(255,255,255,.15);border-radius:16px;background:rgba(52,76,63,.96);box-shadow:0 18px 50px rgba(22,36,28,.24);backdrop-filter:blur(12px);}
.toast::before{content:'✓';position:absolute;left:.85rem;top:50%;width:24px;height:24px;display:grid;place-items:center;transform:translateY(-50%);border-radius:50%;background:rgba(255,255,255,.14);font-weight:700;}
.toast.toast-erro{background:rgba(126,70,68,.97);}
.toast.toast-erro::before{content:'!';}

/* Confirmações e reagendamento sem caixas cinzentas do navegador. */
.client-action-overlay{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:1rem;background:rgba(24,37,30,.68);backdrop-filter:blur(8px);}
.client-action-overlay[hidden]{display:none!important;}
.client-action-dialog{position:relative;width:min(500px,100%);max-height:92dvh;overflow:auto;padding:clamp(1.25rem,4vw,2rem);border:1px solid rgba(255,255,255,.6);border-radius:26px;background:var(--client-cream);box-shadow:0 34px 100px rgba(20,31,25,.4);animation:clientDialogIn .24s cubic-bezier(.2,.8,.2,1);}
.client-action-close{position:absolute;top:.8rem;right:.8rem;width:42px;height:42px;border:1px solid rgba(52,76,63,.13);border-radius:50%;background:#fff;color:var(--ink);font-size:1.35rem;cursor:pointer;}
.client-action-close:hover{background:var(--client-sand);}
.client-action-symbol{width:54px;height:54px;display:grid;place-items:center;margin-bottom:1rem;border-radius:18px;background:linear-gradient(135deg,#EFD7C8,#E5C4B1);color:var(--client-moss);font-family:'Fraunces',serif;font-size:1.5rem;}
.client-action-dialog.is-danger .client-action-symbol{background:rgba(154,93,90,.12);color:var(--client-danger);}
.client-action-dialog.is-danger #clientActionConfirm{background:linear-gradient(135deg,#A96A66,#8C514E);color:#fff;box-shadow:0 10px 24px rgba(154,93,90,.2);}
.client-action-dialog>.eyebrow{margin-bottom:.35rem;}
.client-action-dialog h2{font-size:clamp(1.7rem,5vw,2.25rem);padding-right:2.2rem;}
.client-action-dialog>p:not(.eyebrow):not(.client-inline-error){color:var(--ink-soft);font-size:.9rem;margin:.75rem 0 1rem;}
.client-action-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
.client-action-fields:empty{display:none;}
.client-action-field label{display:block;margin-bottom:.35rem;color:var(--ink-soft);font-size:.75rem;font-weight:600;}
.client-action-field input{width:100%;min-height:52px;padding:.75rem .85rem;border:1px solid rgba(52,76,63,.16);border-radius:14px;background:#fff;color:var(--ink);font:500 16px 'Work Sans',sans-serif;}
.client-action-buttons{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.2rem;}
.client-action-buttons .btn{min-width:125px;}
body.client-action-open{overflow:hidden;}

@media(max-width:900px){
  .conta-wrap.client-modal.client-experience-shell{padding:0 1.5rem 2rem!important;}
  .client-experience-shell .conta-card-head{margin:0 -1.5rem;padding:1.1rem 1.5rem;}
  .client-auth-layout{grid-template-columns:1fr;gap:1rem;}
  .client-auth-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:1.4rem;align-items:start;}
  .client-auth-intro>.eyebrow,.client-auth-intro>h1,.client-auth-intro>p{grid-column:1;}
  .client-benefit-list{grid-column:2;grid-row:1/5;}
  .client-welcome{grid-template-columns:minmax(0,1fr) minmax(210px,.8fr);}
  .client-logout{grid-column:1/-1;justify-self:end;margin-top:-.5rem;}
  .client-experience-shell .client-tab-btn{flex:1 0 auto;}
}

@media(max-width:720px){
  .conta-body{padding:0;background-position:72% 22%;}
  .conta-page-shell{padding:0;}
  .conta-wrap.client-modal.client-experience-shell{width:100%!important;margin:0!important;padding:0 .85rem calc(1rem + env(safe-area-inset-bottom))!important;border:0;border-radius:0;box-shadow:none;}
  .client-experience-shell .conta-card-head{position:sticky;top:0;z-index:45;margin:0 -.85rem;padding:.75rem .85rem;background:rgba(251,248,242,.94);backdrop-filter:blur(14px);}
  .client-experience-shell .conta-brand span{font-size:1rem;}
  .client-experience-shell .conta-back{min-height:40px;padding:.45rem .62rem;font-size:.7rem;}
  .client-experience-shell .conta-visual{height:210px;margin:.75rem 0 1rem;border-radius:20px;}
  .client-experience-shell .conta-visual::before{background:linear-gradient(0deg,rgba(27,42,34,.78),rgba(27,42,34,.02) 70%);}
  .client-experience-shell .conta-visual img{object-position:58% 31%;}
  .conta-visual-caption{left:1rem;right:1rem;top:auto;bottom:1rem;width:auto;transform:none;}
  .conta-visual-caption strong{font-size:1.35rem;margin-bottom:.2rem;}
  .conta-visual-caption span{font-size:.75rem;max-width:38ch;}
  .client-auth-intro{display:block;padding:.4rem .15rem .7rem;}
  .client-auth-intro h1{font-size:2.05rem;max-width:13ch;}
  .client-benefit-list{margin-top:1rem;}
  .client-benefit-list>div{padding:.68rem .72rem;}
  .client-auth-panel{padding:1.15rem;border-radius:20px;}
  .client-welcome{grid-template-columns:1fr;padding:1rem;border-radius:19px;}
  .client-next-session{width:100%;}
  .client-logout{grid-column:1;justify-self:start;margin:0;padding:.15rem 0;}
  .client-experience-shell .client-tabs{top:67px;margin:.8rem -.1rem 1.3rem;padding:.42rem;overflow-x:auto;border-radius:17px;scrollbar-width:none;}
  .client-experience-shell .client-tabs::-webkit-scrollbar{display:none;}
  .client-experience-shell .client-tab-btn{flex:0 0 auto!important;min-height:43px;padding:.58rem .75rem;}
  .client-section-head{grid-template-columns:1fr;gap:.55rem;align-items:start;margin-bottom:1rem;}
  .client-section-head h2{font-size:2rem;}
  .client-section-head>p{font-size:.8rem;}
  .booking-progress{gap:.4rem;}
  .booking-progress li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:.4rem;padding:.55rem .45rem;border-radius:13px;}
  .booking-progress li>span{width:28px;height:28px;}
  .booking-progress strong{font-size:.67rem;}
  .booking-progress small{display:none;}
  .booking-step-card{padding:1rem;border-radius:20px;}
  .booking-step-heading{gap:.65rem;margin-bottom:.95rem;}
  .booking-step-heading>span{width:38px;height:38px;border-radius:13px;}
  .booking-step-heading h3{font-size:1.25rem;}
  .service-choice-grid{grid-template-columns:1fr;}
  .service-choice{min-height:70px;}
  .booking-date-time-grid{grid-template-columns:1fr;}
  .client-booking-form .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .client-booking-form .pay-toggle{grid-template-columns:1fr;}
  .booking-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));}
  .booking-submit{position:sticky;bottom:calc(.6rem + env(safe-area-inset-bottom));z-index:20;box-shadow:0 14px 34px rgba(52,76,63,.28);}
  .client-save-row{align-items:stretch;flex-direction:column;}
  .client-save-row .btn{width:100%;}
  .booking-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .booking-card-actions .mini-action{justify-content:center;text-align:center;}
  .client-action-overlay{padding:.5rem;align-items:end;}
  .client-action-dialog{width:100%;max-height:92dvh;padding:1.35rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;}
  .client-action-fields{grid-template-columns:1fr;}
  .client-action-buttons{display:grid;grid-template-columns:1fr 1fr;}
  .client-action-buttons .btn{min-width:0;padding:.75rem .65rem;}
}

@media(max-width:390px){
  .client-experience-shell .conta-back{font-size:0;width:42px;padding:0;}
  .client-experience-shell .conta-back span{font-size:1rem;}
  .booking-progress li{grid-template-columns:1fr;justify-items:center;text-align:center;}
  .booking-progress p{display:none;}
  .booking-summary dl{grid-template-columns:1fr;}
  .booking-card-actions{grid-template-columns:1fr;}
}

@media(prefers-reduced-motion:reduce){
  .client-tab-view.active,.client-action-dialog,.toast,.admin-modal,.campaign-popup-box,.media-lightbox-box,.guide-dialog{animation:none!important;}
  .btn::before{display:none;}
  .service-choice,.btn,.client-tab-btn{transition:none!important;}
}

/* ================================================================
   V4 — EDITORIAL, CALENDÁRIO E MODAIS
   Paleta original preservada: verde, creme e dourado. A composição é
   deliberadamente neutra para acolher mulheres e homens.
   ================================================================ */
:root{
  --client-peach:#D8C9AE;
  --client-blush:#E2DDD1;
  --v4-forest:#294238;
  --v4-forest-deep:#15271F;
  --v4-cream:#F7F3EA;
  --v4-sand:#E8E0D0;
  --v4-gold:#B78C47;
  --v4-shadow:0 28px 80px rgba(24,42,33,.15);
}

/* Botões com presença, sem perder a sobriedade da marca. */
.btn{border-radius:999px;padding:.86rem 1.45rem;font-weight:500;box-shadow:none;}
.btn-solid,.btn-gild{box-shadow:0 12px 30px rgba(29,50,40,.14);}
.btn:active{transform:translateY(0) scale(.985)!important;}

/* Hero editorial inspirado na relação imagem/tipografia da referência. */
.hero{padding:0;background:var(--v4-cream);}
.hero .hero-grid{max-width:none;min-height:min(820px,calc(100svh - 76px));padding:0;grid-template-columns:minmax(0,.94fr) minmax(420px,1.06fr);gap:0;align-items:stretch;}
.hero .hero-grid>div:first-child{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,8rem) max(6vw,calc((100vw - var(--max))/2 + 3vw));}
.hero h1{font-size:clamp(3rem,5.8vw,6.2rem);line-height:.96;max-width:10.5ch;letter-spacing:-.045em;}
.hero p.lede{font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.75;}
.hero-media{position:relative;min-width:0;display:flex;flex-direction:column;gap:1rem;}
.hero-media-image{min-height:100%;height:100%;border-radius:0;box-shadow:none;}
.hero-media-image img{object-position:68% 39%;}
.hero-media-note{min-width:min(310px,calc(100% - 2rem));padding:1rem 1.15rem;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 10px 30px rgba(20,36,28,.08);}
.hero-stats{padding-top:1.25rem;border-top:1px solid var(--line);}

/* Cartões mais táteis e menos semelhantes a caixas cinzentas. */
.service-grid{gap:1rem;border:0;background:transparent;}
.service-card{position:relative;overflow:hidden;border:1px solid rgba(30,50,41,.1);border-radius:24px;background:rgba(247,243,234,.78);box-shadow:0 12px 38px rgba(31,49,40,.055);transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease;}
.service-card:hover{transform:translateY(-5px);border-color:rgba(183,140,71,.42);box-shadow:0 24px 54px rgba(31,49,40,.1);}
.service-card::after{content:'';position:absolute;inset:auto -30% -55% 35%;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(183,140,71,.12),transparent 68%);pointer-events:none;}
.service-card .marcar-link{display:inline-flex;align-items:center;min-height:42px;padding:.58rem .85rem;border:1px solid rgba(169,129,46,.36);border-radius:999px;background:#fff;text-decoration:none;}
.service-card .marcar-link:hover{background:var(--ink);border-color:var(--ink);color:#fff;}

/* Marcação: a secção continua no site e transforma-se num modal quando
   acionada por qualquer botão "Marcar". Assim mantém-se o fallback sem JS. */
.booking-experience{position:relative;isolation:isolate;background:
  radial-gradient(circle at 78% 16%,rgba(183,140,71,.18),transparent 28%),
  linear-gradient(145deg,var(--v4-forest-deep),var(--v4-forest));}
.booking-experience>.wrap{position:relative;}
.booking-modal-close{display:none;position:absolute;top:.25rem;right:6vw;z-index:4;width:46px;height:46px;border:1px solid rgba(239,237,226,.22);border-radius:50%;background:rgba(239,237,226,.1);color:#fff;font-size:1.45rem;line-height:1;cursor:pointer;backdrop-filter:blur(8px);}
.booking-modal-close:hover{background:var(--paper);color:var(--ink);}
.public-booking-form{padding:clamp(1rem,2vw,1.5rem);border:1px solid rgba(239,237,226,.12);border-radius:26px;background:rgba(239,237,226,.055);box-shadow:inset 0 1px rgba(255,255,255,.04);}
.public-booking-form .field input,.public-booking-form .field select,.public-booking-form .field textarea{min-height:52px;border-radius:15px;background:rgba(247,243,234,.08);}
.public-booking-form .field textarea{min-height:96px;}
.public-booking-form .btn-block{min-height:56px;}
.booking-inline-help{margin:-.3rem 0 1.15rem;color:#C7CFC5;font-size:.82rem;}
.booking-inline-help a{color:var(--gild-light);font-weight:600;}
.marcar-alt{align-self:start;margin:0;padding:clamp(1.4rem,4vw,2.5rem);border:1px solid rgba(239,237,226,.16);border-radius:26px;background:rgba(239,237,226,.065);}
.marcar-alt h3{max-width:15ch;margin:.25rem 0 1rem;color:var(--paper);font-size:clamp(1.65rem,3vw,2.35rem);}
.booking-side-number{display:grid;place-items:center;width:50px;height:50px;margin-bottom:1.5rem;border:1px solid rgba(201,162,74,.55);border-radius:50%;color:var(--gild-light);font:500 .72rem 'IBM Plex Mono',monospace;}
.booking-side-list{display:grid;gap:.65rem;padding:0;margin:0 0 1.5rem;list-style:none;}
.booking-side-list li{position:relative;padding-left:1.6rem;color:#D9DED6;font-size:.9rem;}
.booking-side-list li::before{content:'✓';position:absolute;left:0;top:.05rem;color:var(--gild-light);}

body.booking-experience-open{overflow:hidden;}
.booking-experience.is-modal-open{position:fixed;inset:0;z-index:1000;overflow-y:auto;padding:clamp(.75rem,3vw,2rem);background:rgba(15,27,21,.82);backdrop-filter:blur(12px);animation:v4FadeIn .2s ease;}
.booking-experience.is-modal-open>.wrap{max-width:1120px;margin:auto;padding:clamp(1.2rem,4vw,3.2rem);border:1px solid rgba(255,255,255,.16);border-radius:32px;background:
  radial-gradient(circle at 82% 12%,rgba(183,140,71,.18),transparent 25%),
  linear-gradient(145deg,#182A22,#294238);box-shadow:0 40px 120px rgba(7,17,12,.48);animation:v4ModalIn .28s cubic-bezier(.2,.8,.2,1);}
.booking-experience.is-modal-open .booking-modal-close{display:grid;place-items:center;position:sticky;top:.15rem;float:right;right:0;margin:-.25rem -.25rem 0 1rem;}
.booking-experience.is-modal-open h2{font-size:clamp(2rem,4vw,3.2rem);}
.booking-experience.is-modal-open .marcar-grid{gap:1.2rem;}

/* Calendário neutro e legível. A fonte de verdade continua no Supabase. */
.visual-calendar{overflow:hidden;border:1px solid rgba(30,50,41,.12);border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 12px 34px rgba(30,50,41,.06);}
.calendar-toolbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.5rem;padding:.8rem;border-bottom:1px solid rgba(30,50,41,.09);background:linear-gradient(135deg,#F7F3EA,#EEE7D9);}
.calendar-toolbar>div{text-align:center;}
.calendar-toolbar strong,.calendar-toolbar span{display:block;}
.calendar-toolbar strong{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;}
.calendar-toolbar span{color:var(--sage);font:500 .62rem 'IBM Plex Mono',monospace;letter-spacing:.08em;}
.calendar-nav{width:40px;height:40px;border:1px solid rgba(30,50,41,.12);border-radius:50%;background:#fff;color:var(--ink);font-size:1rem;cursor:pointer;}
.calendar-nav:hover:not(:disabled){background:var(--ink);color:#fff;}
.calendar-nav:disabled{opacity:.3;cursor:not-allowed;}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.28rem;}
.calendar-weekdays{padding:.7rem .75rem .25rem;}
.calendar-weekdays span{text-align:center;color:var(--sage);font:500 .57rem 'IBM Plex Mono',monospace;text-transform:uppercase;}
.calendar-days{padding:.35rem .75rem .75rem;}
.calendar-blank,.calendar-day{aspect-ratio:1;min-width:0;}
.calendar-day{display:grid;place-items:center;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);font:600 .75rem 'Work Sans',sans-serif;cursor:pointer;}
.calendar-day:hover:not(:disabled){border-color:rgba(183,140,71,.55);background:#F4ECDD;}
.calendar-day.is-today{border-color:rgba(41,66,56,.28);}
.calendar-day.is-selected{background:var(--v4-forest);border-color:var(--v4-forest);color:#fff;box-shadow:0 7px 16px rgba(41,66,56,.2);}
.calendar-day:disabled{opacity:.22;cursor:not-allowed;}
.calendar-selection{margin:0;padding:.65rem .8rem;border-top:1px solid rgba(30,50,41,.08);background:#FBF8F2;color:var(--ink-soft);font-size:.69rem;text-align:center;}
.calendar-selection strong{color:var(--ink);}
.calendar-native-fallback.is-calendar-enhanced{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.public-booking-form .visual-calendar{border-color:rgba(239,237,226,.2);}
.public-booking-form .calendar-selection{color:var(--ink-soft)!important;margin:0!important;}
.booking-date-time-grid{grid-template-columns:minmax(290px,1.15fr) minmax(230px,.85fr);}
.client-booking-form .booking-step-card{background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(247,243,234,.68));}
.client-booking-form .pay-option.selected{background:linear-gradient(135deg,rgba(52,76,63,.08),rgba(183,140,71,.13));}
.booking-summary,.client-review-box{background:linear-gradient(135deg,#EEE6D7,#E1D5C2);}

/* A imagem acompanha também a área de cliente no telemóvel, mas o texto e
   os controlos mantêm contraste e uma composição neutra. */
.conta-wrap.client-modal.client-experience-shell{background:rgba(250,247,240,.975);}
.client-welcome{background:linear-gradient(135deg,#EEE6D7,#DED3C0 52%,#D2C7B5);}
.client-action-symbol{background:linear-gradient(135deg,#E5DDCE,#D6C9B4);}

@keyframes v4FadeIn{from{opacity:0}to{opacity:1}}
@keyframes v4ModalIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}

@media(max-width:900px){
  .hero .hero-grid{min-height:auto;grid-template-columns:1fr;}
  .hero .hero-grid>div:first-child{order:2;padding:3.4rem 6vw 4.5rem;}
  .hero-media{order:1;min-height:68svh;}
  .hero-media-image{min-height:68svh;}
  .hero h1{font-size:clamp(3rem,10vw,5rem);}
  .booking-date-time-grid{grid-template-columns:1fr;}
}

@media(max-width:720px){
  .hero-media,.hero-media-image{min-height:66svh;}
  .hero-media-image{aspect-ratio:auto;border-radius:0;}
  .hero-media-image img{object-position:64% 35%;}
  .hero-media-note{min-width:0;}
  .hero .hero-grid>div:first-child{padding:2.8rem 6vw 4rem;}
  .hero h1{font-size:clamp(2.75rem,13.4vw,4.35rem);}
  .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
  .service-grid{grid-template-columns:1fr;gap:.8rem;}
  .service-card{padding:1.45rem;border-radius:20px;}
  .booking-experience{padding:4rem 0;}
  .booking-experience>.wrap{padding:0 .85rem;}
  .booking-experience.is-modal-open{padding:0;align-items:end;}
  .booking-experience.is-modal-open>.wrap{width:100%;min-height:100svh;padding:1rem .85rem calc(6.6rem + env(safe-area-inset-bottom));border:0;border-radius:0;}
  .booking-experience.is-modal-open .booking-modal-close{top:.15rem;margin:0 0 .4rem 1rem;}
  .booking-experience.is-modal-open .marcar-grid{grid-template-columns:1fr;}
  .public-booking-form,.marcar-alt{padding:1rem;border-radius:20px;}
  .marcar-alt{order:-1;}
  .marcar-alt .booking-side-list,.marcar-alt .form-note{display:none;}
  .marcar-alt h3{font-size:1.55rem;}
  .visual-calendar{border-radius:18px;}
  .calendar-toolbar{grid-template-columns:40px minmax(0,1fr) 40px;padding:.65rem;}
  .calendar-weekdays,.calendar-days{gap:.14rem;}
  .calendar-weekdays{padding:.65rem .45rem .2rem;}
  .calendar-days{padding:.3rem .45rem .6rem;}
  .calendar-day{border-radius:10px;font-size:.72rem;}
  .client-booking-form .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

@media(max-width:390px){
  .hero-stats{grid-template-columns:1fr;}
  .calendar-day{font-size:.68rem;}
  .calendar-weekdays span{font-size:.5rem;}
}

@media(prefers-reduced-motion:reduce){
  .booking-experience.is-modal-open,.booking-experience.is-modal-open>.wrap{animation:none!important;}
  .service-card{transition:none!important;}
}

/* ================================================================
   V6 — HERO E NAVEGAÇÃO RESPONSIVOS
   O JavaScript acrescenta data-viewport, data-orientation e data-input
   ao elemento <html>. As media queries mantêm o layout correto mesmo
   antes do JavaScript carregar ou caso esteja desativado.
   ================================================================ */
:root{
  --site-wide:1420px;
  --hero-wide:1360px;
  --viewport-height:1vh;
  --viewport-width:1vw;
}

/* Nunca partir palavras do menu, da marca ou dos botões. A regra global
   de quebra continua disponível para textos longos e dados de clientes. */
.brand,.brand *,
.navlinks,.navlinks li,.navlinks a,
.nav-cta,.nav-cta .btn{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

header nav.wrap{
  width:min(calc(100% - 3rem),var(--site-wide));
  max-width:var(--site-wide);
  padding:.95rem 0;
  gap:clamp(.75rem,1.25vw,1.4rem);
  flex-wrap:nowrap;
}
.brand{flex:0 0 auto;white-space:nowrap;}
.navlinks{
  flex:1 1 auto;
  min-width:0;
  justify-content:center;
  gap:clamp(.62rem,.9vw,1.05rem);
  font-size:clamp(.76rem,.72vw,.84rem);
  white-space:nowrap;
}
.navlinks li,.navlinks a{display:block;white-space:nowrap;}
.nav-cta{flex:0 0 auto;gap:.7rem;white-space:nowrap;}
.nav-cta .btn{white-space:nowrap;}

/* O início deixa de ocupar obrigatoriamente a altura total do monitor. */
.hero{padding:clamp(2.2rem,4vw,4.5rem) 0;background:var(--v4-cream);}
.hero .hero-grid{
  width:min(calc(100% - 3rem),var(--hero-wide));
  max-width:var(--hero-wide);
  min-height:0;
  margin:0 auto;
  padding:0;
  grid-template-columns:minmax(0,.88fr) minmax(460px,1.12fr);
  gap:clamp(2.5rem,5vw,5rem);
  align-items:center;
}
.hero .hero-grid>div:first-child{
  padding:clamp(.5rem,2vw,1.5rem) 0;
}
.hero h1{
  max-width:12.25ch;
  font-size:clamp(3rem,3.35vw,4rem);
  line-height:1.01;
  letter-spacing:-.038em;
  overflow-wrap:normal;
  word-break:normal;
}
.hero p.lede{
  max-width:44ch;
  margin:1.35rem 0 1.75rem;
  font-size:clamp(.98rem,1.05vw,1.08rem);
  line-height:1.68;
  overflow-wrap:normal;
  word-break:normal;
}
.hero-stats{margin-top:2.1rem;padding-top:1.05rem;}
.hero-media{min-height:0;height:auto;}
.hero-media-image{
  min-height:0;
  height:clamp(450px,58vh,610px);
  border-radius:28px;
  box-shadow:0 24px 70px rgba(52,69,59,.12);
}
.hero-media-image img{object-position:65% 38%;}

/* Portáteis: navegação simplificada e composição ainda em duas colunas. */
@media(max-width:1450px){
  .navlinks{display:none;}
  header nav.wrap{width:min(calc(100% - 2.5rem),1180px);max-width:1180px;}
}

@media(max-width:1100px) and (min-width:901px){
  .hero .hero-grid{
    width:min(calc(100% - 2.5rem),1040px);
    grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr);
    gap:2.4rem;
  }
  .hero h1{font-size:clamp(2.75rem,4.8vw,3.45rem);}
  .hero-media-image{height:clamp(430px,55vh,530px);}
  .nav-cta .icon-btn{display:none;}
}

/* Ecrãs baixos, incluindo portáteis com barras do navegador visíveis. */
@media(min-width:901px) and (max-height:800px){
  .hero{padding:2rem 0 2.8rem;}
  .hero-media-image{height:clamp(400px,57vh,500px);}
  .hero h1{font-size:clamp(2.75rem,3.15vw,3.65rem);}
  .hero-stats{margin-top:1.45rem;}
}

/* Tablet: imagem primeiro, texto depois, sem recortes gigantes. */
@media(max-width:900px){
  header nav.wrap{width:calc(100% - 2rem);padding:.82rem 0;}
  .hero{padding:0;}
  .hero .hero-grid{
    width:100%;
    max-width:none;
    min-height:0;
    grid-template-columns:minmax(0,1fr);
    gap:0;
  }
  .hero .hero-grid>div:first-child{
    order:2;
    padding:clamp(2.5rem,7vw,4rem) max(1.25rem,6vw) clamp(3.5rem,8vw,5rem);
  }
  .hero-media{order:1;min-height:0;height:auto;}
  .hero-media-image{
    min-height:0;
    height:clamp(390px,58svh,540px);
    border-radius:0;
    box-shadow:none;
  }
  .hero h1{max-width:12ch;font-size:clamp(2.75rem,8vw,4.25rem);}
}

/* Telemóvel: controlos confortáveis e uma abertura compacta. */
@media(max-width:720px){
  header nav.wrap{width:calc(100% - 1.4rem);padding:.7rem 0;}
  .nav-cta{gap:.4rem;}
  .nav-cta .icon-btn{display:none;}
  .nav-cta .btn{min-height:42px;padding:.62rem .78rem;font-size:.66rem;}
  .hero-media,.hero-media-image{min-height:0;}
  .hero-media-image{height:clamp(330px,55svh,470px);aspect-ratio:auto;}
  .hero-media-image img{object-position:63% 34%;}
  .hero .hero-grid>div:first-child{padding:2.4rem 1rem 3.8rem;}
  .hero h1{max-width:11.5ch;font-size:clamp(2.35rem,10.5vw,3.15rem);line-height:1.02;}
  .hero p.lede{font-size:.98rem;line-height:1.62;}
}

@media(max-width:430px){
  .brand{font-size:.96rem;}
  .brand small{font-size:.48rem;}
  .brand em{font-size:.47rem;}
  .nav-cta .btn-ghost{display:none;}
  .hero-media-image{height:clamp(310px,52svh,420px);}
  .hero h1{font-size:clamp(2.25rem,10.8vw,2.85rem);}
}

/* Ajustes derivados do perfil calculado em tempo real. */
html[data-input="touch"] .btn,
html[data-input="touch"] button{min-height:44px;}
html[data-viewport="wide"] .hero .hero-grid{max-width:var(--hero-wide);}
html[data-orientation="landscape"][data-viewport="mobile"] .hero-media-image{
  height:clamp(280px,72svh,410px);
}

/* ================================================================
   V8 — EXPERIÊNCIA PREMIUM
   Camada progressiva: não altera dados, agenda, autenticação ou media.
   ================================================================ */

:root{
  --ux-ease:cubic-bezier(.22,1,.36,1);
  --ux-ease-soft:cubic-bezier(.25,.46,.45,.94);
  --ux-ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ux-fast:180ms;
  --ux-medium:360ms;
  --ux-slow:680ms;
  --ux-ring:0 0 0 4px rgba(169,129,46,.18);
  --ux-shadow-soft:0 14px 38px rgba(30,50,41,.08);
  --ux-shadow-lift:0 22px 54px rgba(30,50,41,.14);
  --ux-glass:rgba(255,253,247,.82);
}

html.premium-ux{
  scroll-behavior:smooth;
  color-scheme:light;
}

html.premium-ux body{
  --ux-x:50%;
  --ux-y:18%;
  background-image:
    radial-gradient(700px circle at var(--ux-x) var(--ux-y),rgba(207,169,104,.075),transparent 48%),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0));
  background-attachment:fixed;
  -webkit-tap-highlight-color:transparent;
}

html.premium-ux body.ux-ready > header,
html.premium-ux body.ux-ready > main{
  animation:uxPageArrive .72s var(--ux-ease) both;
}
html.premium-ux body.ux-ready > main{animation-delay:60ms;}

@keyframes uxPageArrive{
  from{opacity:.01;transform:translateY(9px);}
  to{opacity:1;transform:none;}
}

/* Foco visível, nítido e coerente em teclado. */
html.premium-ux :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--gild,#A9812E);
  outline-offset:3px;
  box-shadow:var(--ux-ring);
}

/* Botões vivos, sem perder a sobriedade unissexo da marca. */
html.premium-ux :where(.btn,button,.mini-action,.marcar-link,.client-logout,.conta-back){
  --press-x:50%;
  --press-y:50%;
  position:relative;
  transform:translateZ(0);
  transition:
    transform var(--ux-fast) var(--ux-ease),
    box-shadow var(--ux-medium) var(--ux-ease),
    border-color var(--ux-fast) ease,
    color var(--ux-fast) ease,
    background-color var(--ux-fast) ease,
    opacity var(--ux-fast) ease;
}

html.premium-ux :where(.btn,button,.mini-action,.marcar-link)[data-ux-interactive="true"]{
  overflow:hidden;
  isolation:isolate;
}

html.premium-ux :where(.btn,button,.mini-action,.marcar-link)[data-ux-interactive="true"] .ux-ripple-dot{
  position:absolute;
  z-index:0;
  width:14rem;
  aspect-ratio:1;
  left:0;
  top:0;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.36) 0,rgba(255,255,255,.12) 33%,transparent 68%);
  opacity:0;
  transform:translate(-50%,-50%) scale(.12);
  transition:transform .55s var(--ux-ease),opacity .45s ease;
}

html.premium-ux :where(.btn,button,.mini-action,.marcar-link)[data-ux-interactive="true"] .ux-ripple-dot.is-active{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
  transition-duration:.32s;
}

html.premium-ux :where(.btn,button,.mini-action,.marcar-link).ux-pulse{
  animation:uxButtonPulse .44s var(--ux-ease-spring);
}

@keyframes uxButtonPulse{
  0%,100%{transform:translateZ(0) scale(1);}
  46%{transform:translateZ(0) scale(.965);}
  72%{transform:translateZ(0) scale(1.018);}
}

@media(hover:hover) and (pointer:fine){
  html.premium-ux :where(.btn,.mini-action,.marcar-link,.client-logout):not(:disabled):hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(30,50,41,.15);
  }
  html.premium-ux :where(.btn,.mini-action,.marcar-link,.client-logout):not(:disabled):active{
    transform:translateY(0) scale(.985);
  }
}

html.premium-ux :where(button,.btn)[disabled],
html.premium-ux :where(button,.btn)[aria-disabled="true"]{
  cursor:not-allowed;
  filter:saturate(.55);
  opacity:.56;
  box-shadow:none;
}

/* Entrada sequencial dos elementos dinâmicos. */
html.premium-ux body.ux-ready [data-ux-card="true"]{
  animation:uxCardArrive .62s var(--ux-ease) both;
  animation-delay:calc(min(var(--ux-order,0),10) * 45ms);
}

@keyframes uxCardArrive{
  from{opacity:.01;transform:translateY(18px) scale(.988);}
  to{opacity:1;transform:none;}
}

html.premium-ux :where(.service-card,.booking-step-card,.client-booking-card,.client-class-card,.client-data-card,.admin-card,.faq-item,.review-card,.guide-card,.campaign-popup-box,.client-auth-panel,.client-auth-intro){
  transition:
    transform var(--ux-medium) var(--ux-ease),
    box-shadow var(--ux-medium) var(--ux-ease),
    border-color var(--ux-medium) ease,
    background-color var(--ux-medium) ease;
}

@media(hover:hover) and (pointer:fine){
  html.premium-ux :where(.service-card,.booking-step-card,.client-booking-card,.client-class-card,.faq-item,.review-card)[data-ux-card="true"]:hover{
    transform:translateY(-5px);
    box-shadow:var(--ux-shadow-lift);
    border-color:rgba(169,129,46,.34);
  }
  html.premium-ux .service-card:hover :where(img,video){transform:scale(1.025);}
}

html.premium-ux .service-card :where(img,video),
html.premium-ux .gal-grid :where(img,video),
html.premium-ux .reels-grid :where(img,video){
  transition:transform .8s var(--ux-ease),filter .45s ease,opacity .3s ease;
}

/* Campos com uma resposta visual serena ao foco e ao preenchimento. */
html.premium-ux :where(.field,.admin-field)[data-ux-field="true"]{
  position:relative;
  transition:transform var(--ux-fast) var(--ux-ease),color var(--ux-fast) ease;
}

html.premium-ux :where(.field,.admin-field)[data-ux-field="true"].is-focused{
  transform:translateY(-1px);
}

html.premium-ux :where(input,select,textarea){
  transition:
    border-color var(--ux-fast) ease,
    box-shadow var(--ux-medium) var(--ux-ease),
    background-color var(--ux-fast) ease,
    transform var(--ux-fast) var(--ux-ease);
}

html.premium-ux :where(.field,.admin-field).is-focused :where(input,select,textarea){
  border-color:rgba(169,129,46,.76);
  box-shadow:var(--ux-ring);
}

html.premium-ux :where(.field,.admin-field).has-value > label::after{
  content:"  ✓";
  color:var(--gild,#A9812E);
  font-size:.78em;
  letter-spacing:0;
}

html.premium-ux input[type="checkbox"],
html.premium-ux input[type="radio"]{
  accent-color:var(--ink,#1E3229);
}

html.premium-ux label:has(input:checked){
  color:var(--gild-light,#D4B274);
}

/* Grelhas de escolha: seleção clara, tátil e não cinzenta. */
html.premium-ux :where(.service-choice,.pay-option,.slot-btn,.calendar-day,.btn-filtro,.client-tab-btn,.admin-tab-btn,.admin-subtab){
  transition:
    transform var(--ux-fast) var(--ux-ease),
    box-shadow var(--ux-medium) var(--ux-ease),
    border-color var(--ux-fast) ease,
    background-color var(--ux-medium) ease,
    color var(--ux-fast) ease;
}

html.premium-ux :where(.service-choice,.pay-option,.slot-btn,.calendar-day,.btn-filtro,.client-tab-btn,.admin-tab-btn,.admin-subtab):active{
  transform:scale(.975);
}

html.premium-ux :where(.service-choice,.pay-option,.slot-btn,.calendar-day).ux-selected,
html.premium-ux :where(.service-choice,.pay-option,.slot-btn,.calendar-day).selected,
html.premium-ux :where(.service-choice,.pay-option,.btn-filtro,.client-tab-btn,.admin-tab-btn,.admin-subtab).is-selected,
html.premium-ux :where(.btn-filtro,.client-tab-btn,.admin-tab-btn,.admin-subtab).active{
  box-shadow:0 10px 26px rgba(30,50,41,.16),0 0 0 2px rgba(169,129,46,.16);
}

html.premium-ux .service-choice.ux-selected::before,
html.premium-ux .pay-option.ux-selected::before{
  content:"✓";
  display:grid;
  place-items:center;
  position:absolute;
  top:.7rem;
  right:.7rem;
  width:1.55rem;
  height:1.55rem;
  border-radius:50%;
  color:#fff;
  background:var(--ink,#1E3229);
  box-shadow:0 5px 16px rgba(30,50,41,.2);
  animation:uxCheckIn .4s var(--ux-ease-spring) both;
}

@keyframes uxCheckIn{
  from{opacity:0;transform:scale(.35) rotate(-18deg);}
  to{opacity:1;transform:none;}
}

/* Progresso da marcação com sensação de continuidade. */
html.premium-ux .booking-progress li{
  position:relative;
  transition:opacity .3s ease,transform .3s var(--ux-ease),color .3s ease;
}

html.premium-ux .booking-progress li::after{
  transition:transform .6s var(--ux-ease),background-color .3s ease;
  transform-origin:left center;
}

html.premium-ux .booking-progress li.is-complete{
  opacity:1;
  transform:translateY(-2px);
}

html.premium-ux .booking-progress li.is-complete > span{
  color:#fff;
  background:var(--ink,#1E3229);
  border-color:var(--ink,#1E3229);
  box-shadow:0 7px 18px rgba(30,50,41,.18);
}

html.premium-ux .booking-progress li.is-complete > span::before{content:"✓";font-size:.8rem;}
html.premium-ux .booking-progress li.is-complete > span{font-size:0;}

/* Calendário visual e horas: escolha legível em rato e toque. */
html.premium-ux .visual-calendar{
  overflow:hidden;
  box-shadow:0 12px 34px rgba(30,50,41,.07);
}

html.premium-ux .calendar-day:not(:disabled):hover,
html.premium-ux .slot-btn:not(:disabled):hover{
  border-color:var(--gild,#A9812E);
  transform:translateY(-2px);
}

html.premium-ux .calendar-day.selected,
html.premium-ux .calendar-day.ux-selected,
html.premium-ux .slot-btn.selected,
html.premium-ux .slot-btn.ux-selected{
  color:#fff;
  background:linear-gradient(145deg,#415A4C,#233A30);
  border-color:#233A30;
  box-shadow:0 9px 22px rgba(30,50,41,.23);
  animation:uxSelectSoft .36s var(--ux-ease-spring);
}

@keyframes uxSelectSoft{
  0%{transform:scale(.92);}
  72%{transform:scale(1.035);}
  100%{transform:none;}
}

/* Separadores de cliente/admin com indicador de movimento. */
html.premium-ux :where(.client-tabs,.admin-main-tabs){
  position:relative;
  background:rgba(255,253,247,.72);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}

html.premium-ux .client-tab-btn.active,
html.premium-ux .admin-tab-btn.active{
  transform:translateY(-1px);
}

html.premium-ux :where(.client-tab-view,.admin-panel-view,.admin-subview).ux-entering{
  animation:uxPanelIn .48s var(--ux-ease) both;
}

@keyframes uxPanelIn{
  from{opacity:.01;transform:translateY(12px);filter:blur(3px);}
  to{opacity:1;transform:none;filter:none;}
}

/* Autenticação: painel acolhedor em vez de caixa isolada. */
html.premium-ux .client-auth-layout{
  box-shadow:0 28px 90px rgba(30,50,41,.1);
}

html.premium-ux .client-auth-panel.ux-auth-changing{
  animation:uxAuthSwitch .5s var(--ux-ease) both;
}

@keyframes uxAuthSwitch{
  0%{opacity:.35;transform:translateX(10px);}
  100%{opacity:1;transform:none;}
}

/* Modais e janelas: entrada suave, fundo atmosférico e fecho acessível. */
html.premium-ux :where(.admin-overlay,.client-action-overlay,.media-lightbox,.guide-overlay,.campaign-popup){
  backdrop-filter:blur(10px) saturate(.86);
  -webkit-backdrop-filter:blur(10px) saturate(.86);
}

html.premium-ux body.ux-overlay-open{overflow:hidden;}

html.premium-ux :where(.admin-overlay,.client-action-overlay,.media-lightbox,.guide-overlay,.campaign-popup).ux-opening{
  animation:uxBackdropIn .38s ease both;
}

html.premium-ux :where(.admin-overlay,.client-action-overlay,.media-lightbox,.guide-overlay,.campaign-popup).ux-opening > :where(.admin-modal,.client-action-dialog,.media-lightbox-box,.guide-dialog,.campaign-popup-box){
  animation:uxDialogIn .58s var(--ux-ease) both;
}

@keyframes uxBackdropIn{
  from{opacity:.01;backdrop-filter:blur(0);}
  to{opacity:1;}
}

@keyframes uxDialogIn{
  0%{opacity:.01;transform:translateY(24px) scale(.965);}
  100%{opacity:1;transform:none;}
}

html.premium-ux .booking-experience.is-modal-open{
  animation:uxBackdropIn .36s ease both;
}

html.premium-ux .booking-experience.is-modal-open > .wrap{
  animation:uxDialogIn .58s var(--ux-ease) both;
}

html.premium-ux :where(.admin-close,.booking-modal-close,.media-lightbox-close){
  display:grid;
  place-items:center;
  border-radius:50%;
  transition:transform .35s var(--ux-ease-spring),background-color .2s ease,color .2s ease;
}

@media(hover:hover) and (pointer:fine){
  html.premium-ux :where(.admin-close,.booking-modal-close,.media-lightbox-close):hover{
    transform:rotate(7deg) scale(1.08);
  }
}

/* Cinema leve para galeria e vídeos. */
html.premium-ux .media-lightbox{
  background:rgba(14,23,19,.88);
}

html.premium-ux .media-lightbox-box{
  box-shadow:0 34px 120px rgba(0,0,0,.42);
}

html.premium-ux .media-lightbox :where(img,video,iframe){
  animation:uxMediaReveal .68s var(--ux-ease) both;
}

@keyframes uxMediaReveal{
  from{opacity:.01;transform:scale(.975);filter:blur(8px);}
  to{opacity:1;transform:none;filter:none;}
}

html.premium-ux [data-ux-media="true"].ux-media-loading{
  background:linear-gradient(100deg,rgba(169,129,46,.07) 20%,rgba(255,255,255,.36) 42%,rgba(169,129,46,.07) 64%);
  background-size:220% 100%;
  animation:uxShimmer 1.5s linear infinite;
}

html.premium-ux [data-ux-media="true"].ux-media-error{
  opacity:.72;
  filter:grayscale(.25);
}

@keyframes uxShimmer{to{background-position:-220% 0;}}

/* FAQ com abertura discreta. */
html.premium-ux .faq-item[open]{
  border-color:rgba(169,129,46,.34);
  box-shadow:var(--ux-shadow-soft);
}

html.premium-ux .faq-item[open] > *:not(summary){
  animation:uxPanelIn .4s var(--ux-ease) both;
}

html.premium-ux .faq-item summary::marker{color:var(--gild,#A9812E);}

/* Estados de carregamento e sucesso mais humanos. */
html.premium-ux :where(.client-loading-state,.reel-empty-state){
  overflow:hidden;
  position:relative;
}

html.premium-ux .client-loading-state span{
  animation:uxBreath 1.25s ease-in-out infinite alternate;
}

html.premium-ux :where(.confirm-soft,.client-success-state):not(:empty){
  animation:uxSuccessIn .5s var(--ux-ease-spring) both;
}

@keyframes uxBreath{to{transform:scale(1.15);opacity:.55;}}
@keyframes uxSuccessIn{
  from{opacity:.01;transform:translateY(8px) scale(.98);}
  to{opacity:1;transform:none;}
}

/* Telemóvel: os modais comportam-se como folhas confortáveis. */
@media(max-width:720px){
  html.premium-ux :where(.admin-overlay,.client-action-overlay,.guide-overlay,.campaign-popup){
    align-items:flex-end;
    padding:0;
  }

  html.premium-ux :where(.admin-modal,.client-action-dialog,.guide-dialog,.campaign-popup-box){
    width:100%;
    max-width:none;
    max-height:min(90svh,780px);
    overflow:auto;
    border-radius:26px 26px 0 0;
    padding-bottom:max(1.5rem,env(safe-area-inset-bottom));
  }

  html.premium-ux :where(.admin-overlay,.client-action-overlay,.guide-overlay,.campaign-popup).ux-opening > :where(.admin-modal,.client-action-dialog,.guide-dialog,.campaign-popup-box){
    animation-name:uxSheetIn;
  }

  @keyframes uxSheetIn{
    from{opacity:.15;transform:translateY(100%);}
    to{opacity:1;transform:none;}
  }

  html.premium-ux .client-tabs{
    position:sticky;
    top:0;
    z-index:6;
    overflow-x:auto;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
  }
  html.premium-ux .client-tabs::-webkit-scrollbar{display:none;}
  html.premium-ux .client-tab-btn{scroll-snap-align:center;}
}

/* O utilizador manda no movimento: conforto e acessibilidade primeiro. */
@media(prefers-reduced-motion:reduce){
  html.premium-ux{scroll-behavior:auto;}
  html.premium-ux *,
  html.premium-ux *::before,
  html.premium-ux *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
  html.premium-ux body{background-image:none;}
}

/* ================================================================
   V9 — MENU LATERAL MÓVEL
   Navegação dedicada a iPhone, Android e tablets compactos.
   Esta camada é exclusivamente visual e não altera agenda ou dados.
   ================================================================ */
.mobile-menu-trigger{
  display:none;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:.62rem;
  min-width:96px;
  min-height:46px;
  padding:.65rem .9rem;
  border:1px solid rgba(30,50,41,.22);
  border-radius:999px;
  background:rgba(255,255,255,.48);
  color:var(--ink,#1E3229);
  font:600 .72rem/1 var(--mono,"Courier New",monospace);
  letter-spacing:.08em;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(30,50,41,.06);
  -webkit-tap-highlight-color:transparent;
  transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease;
}
.mobile-menu-trigger:hover{
  transform:translateY(-1px);
  border-color:rgba(169,129,46,.58);
  background:rgba(255,255,255,.76);
  box-shadow:0 12px 30px rgba(30,50,41,.1);
}
.mobile-menu-trigger:active{transform:scale(.97);}
.mobile-menu-trigger-icon{
  display:grid;
  gap:4px;
  width:20px;
}
.mobile-menu-trigger-icon i{
  display:block;
  width:100%;
  height:1.5px;
  border-radius:99px;
  background:currentColor;
  transform-origin:center;
  transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .2s ease,width .25s ease;
}
.mobile-menu-trigger-icon i:nth-child(2){width:72%;justify-self:end;}
.mobile-menu-trigger[aria-expanded="true"] .mobile-menu-trigger-icon i:first-child{transform:translateY(5.5px) rotate(45deg);}
.mobile-menu-trigger[aria-expanded="true"] .mobile-menu-trigger-icon i:nth-child(2){opacity:0;width:0;}
.mobile-menu-trigger[aria-expanded="true"] .mobile-menu-trigger-icon i:last-child{transform:translateY(-5.5px) rotate(-45deg);}

.mobile-menu-layer[hidden]{display:none!important;}
.mobile-menu-layer{
  position:fixed;
  inset:0;
  z-index:1800;
  pointer-events:none;
  isolation:isolate;
}
.mobile-menu-layer.is-open{pointer-events:auto;}
.mobile-menu-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  background:rgba(18,30,25,.48);
  opacity:0;
  cursor:pointer;
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
  transition:opacity .38s ease;
}
.mobile-menu-layer.is-open .mobile-menu-backdrop{opacity:1;}
.mobile-menu-drawer{
  position:absolute;
  top:0;
  right:0;
  display:flex;
  flex-direction:column;
  width:min(90vw,410px);
  height:100%;
  height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.15rem,env(safe-area-inset-bottom)) 1rem;
  border-left:1px solid rgba(169,129,46,.18);
  background:
    radial-gradient(circle at 94% 9%,rgba(169,129,46,.13),transparent 27%),
    radial-gradient(circle at 6% 54%,rgba(52,69,59,.07),transparent 30%),
    linear-gradient(165deg,#F8F5EE 0%,#EFEBDD 58%,#E9E3D3 100%);
  color:var(--ink,#1E3229);
  box-shadow:-28px 0 80px rgba(18,30,25,.22);
  transform:translate3d(104%,0,0);
  visibility:hidden;
  will-change:transform;
  transition:transform .48s cubic-bezier(.22,1,.36,1),visibility 0s linear .48s;
}
.mobile-menu-layer.is-open .mobile-menu-drawer{
  transform:translate3d(0,0,0);
  visibility:visible;
  transition:transform .48s cubic-bezier(.22,1,.36,1),visibility 0s;
}
.mobile-menu-drawer:focus{outline:none;}
.mobile-menu-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.35rem .15rem 1rem;
  border-bottom:1px solid rgba(30,50,41,.12);
}
.mobile-menu-identity{
  display:flex;
  align-items:center;
  gap:.75rem;
  min-width:0;
  color:inherit;
  text-decoration:none;
}
.mobile-menu-identity img{
  flex:0 0 52px;
  width:52px;
  height:52px;
  border:2px solid rgba(255,255,255,.78);
  border-radius:18px;
  object-fit:cover;
  box-shadow:0 8px 22px rgba(30,50,41,.13);
}
.mobile-menu-identity span{display:grid;gap:.22rem;min-width:0;}
.mobile-menu-identity strong{
  font:500 1.18rem/1.05 var(--serif,Georgia,serif);
  letter-spacing:.01em;
}
.mobile-menu-identity small{
  color:rgba(30,50,41,.62);
  font:600 .6rem/1.2 var(--mono,"Courier New",monospace);
  letter-spacing:.11em;
  text-transform:uppercase;
}
.mobile-menu-close{
  position:relative;
  flex:0 0 46px;
  width:46px;
  height:46px;
  border:1px solid rgba(30,50,41,.18);
  border-radius:50%;
  background:rgba(255,255,255,.42);
  color:var(--ink,#1E3229);
  cursor:pointer;
  transition:transform .28s ease,background .28s ease,border-color .28s ease;
}
.mobile-menu-close:hover{transform:rotate(5deg);background:#fff;border-color:rgba(169,129,46,.55);}
.mobile-menu-close:active{transform:scale(.94);}
.mobile-menu-close span::before,.mobile-menu-close span::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:18px;
  height:1.5px;
  border-radius:99px;
  background:currentColor;
}
.mobile-menu-close span::before{transform:translate(-50%,-50%) rotate(45deg);}
.mobile-menu-close span::after{transform:translate(-50%,-50%) rotate(-45deg);}
.mobile-menu-intro{padding:1.35rem .2rem 1rem;}
.mobile-menu-intro p{
  margin:0 0 .34rem;
  color:var(--gild,#A9812E);
  font:700 .62rem/1 var(--mono,"Courier New",monospace);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.mobile-menu-intro span{
  display:block;
  max-width:34ch;
  color:rgba(30,50,41,.7);
  font-size:.83rem;
  line-height:1.5;
}
.mobile-menu-nav{display:grid;gap:.42rem;padding:.15rem 0 1.25rem;}
.mobile-menu-nav a{
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 24px;
  align-items:center;
  gap:.72rem;
  min-height:60px;
  padding:.62rem .68rem;
  border:1px solid transparent;
  border-radius:17px;
  color:inherit;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  transition:transform .3s cubic-bezier(.22,1,.36,1),background .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.mobile-menu-nav a::before{
  content:"";
  position:absolute;
  left:0;
  top:15px;
  bottom:15px;
  width:3px;
  border-radius:99px;
  background:var(--gild,#A9812E);
  opacity:0;
  transform:scaleY(.25);
  transition:opacity .25s ease,transform .35s cubic-bezier(.22,1,.36,1);
}
.mobile-menu-nav a:hover,.mobile-menu-nav a:focus-visible{
  transform:translateX(-3px);
  border-color:rgba(169,129,46,.2);
  background:rgba(255,255,255,.58);
  box-shadow:0 10px 26px rgba(30,50,41,.07);
}
.mobile-menu-nav a.is-active{
  border-color:rgba(169,129,46,.26);
  background:rgba(255,255,255,.72);
  box-shadow:0 12px 30px rgba(30,50,41,.08);
}
.mobile-menu-nav a.is-active::before{opacity:1;transform:scaleY(1);}
.mobile-menu-item-mark{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(30,50,41,.13);
  border-radius:11px;
  color:var(--gild,#A9812E);
  background:rgba(255,255,255,.42);
  font:700 .58rem/1 var(--mono,"Courier New",monospace);
  letter-spacing:.06em;
}
.mobile-menu-nav a>span:nth-child(2){display:grid;gap:.18rem;min-width:0;}
.mobile-menu-nav strong{font:500 1rem/1.12 var(--serif,Georgia,serif);}
.mobile-menu-nav small{
  overflow:hidden;
  color:rgba(30,50,41,.58);
  font-size:.7rem;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mobile-menu-nav a>i{
  color:rgba(30,50,41,.48);
  font:400 1rem/1 sans-serif;
  text-align:center;
  transition:transform .28s ease,color .28s ease;
}
.mobile-menu-nav a:hover>i,.mobile-menu-nav a.is-active>i{transform:translateX(3px);color:var(--gild,#A9812E);}
.mobile-menu-actions{
  display:grid;
  gap:.58rem;
  padding:1.05rem 0;
  border-top:1px solid rgba(30,50,41,.12);
  border-bottom:1px solid rgba(30,50,41,.12);
}
.mobile-menu-actions a,.mobile-menu-actions button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  width:100%;
  min-height:52px;
  padding:.8rem 1rem;
  border-radius:999px;
  font:600 .75rem/1.2 var(--mono,"Courier New",monospace);
  letter-spacing:.04em;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform .25s ease,box-shadow .3s ease,background .3s ease,border-color .3s ease;
}
.mobile-menu-actions a:active,.mobile-menu-actions button:active{transform:scale(.98);}
.mobile-menu-primary{
  border:1px solid var(--ink,#1E3229);
  background:var(--ink,#1E3229);
  color:#F8F5EE;
  box-shadow:0 14px 32px rgba(30,50,41,.18);
}
.mobile-menu-primary:hover{background:#263F34;box-shadow:0 17px 38px rgba(30,50,41,.24);}
.mobile-menu-secondary{
  border:1px solid rgba(30,50,41,.2);
  background:rgba(255,255,255,.48);
  color:var(--ink,#1E3229);
}
.mobile-menu-secondary:hover{border-color:rgba(169,129,46,.5);background:rgba(255,255,255,.78);}
.mobile-menu-actions i{font:400 1rem/1 sans-serif;}
.mobile-menu-social{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.55rem;
  padding:1rem 0 .65rem;
}
.mobile-menu-social a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:44px;
  padding:.62rem .75rem;
  border-radius:13px;
  background:rgba(255,255,255,.34);
  color:rgba(30,50,41,.72);
  font-size:.7rem;
  text-decoration:none;
  transition:background .25s ease,color .25s ease;
}
.mobile-menu-social a:hover{background:rgba(255,255,255,.7);color:var(--ink,#1E3229);}
.mobile-menu-foot{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.5rem 1rem;
  margin-top:auto;
  padding:.5rem .1rem .1rem;
  color:rgba(30,50,41,.48);
  font-size:.58rem;
  line-height:1.5;
}
.mobile-menu-foot>span:last-child{display:flex;gap:.75rem;}
.mobile-menu-foot a{color:inherit;text-underline-offset:3px;}

body.mobile-menu-open{
  position:fixed;
  left:0;
  right:0;
  width:100%;
  overflow:hidden;
  touch-action:none;
}

.mobile-menu-trigger:focus-visible,
.mobile-menu-close:focus-visible,
.mobile-menu-actions a:focus-visible,
.mobile-menu-actions button:focus-visible,
.mobile-menu-social a:focus-visible{
  outline:3px solid rgba(169,129,46,.42);
  outline-offset:3px;
}

@media(max-width:1450px){
  .mobile-menu-trigger{display:inline-flex;}
  header nav.wrap{justify-content:flex-start;}
  .nav-cta{margin-left:auto;}
}

@media(max-width:900px){
  .nav-cta{display:none;}
  .mobile-menu-trigger{margin-left:auto;}
}

@media(max-width:520px){
  .mobile-menu-drawer{width:min(94vw,410px);}
  .mobile-menu-intro{padding-top:1.15rem;}
  .mobile-menu-nav a{min-height:57px;padding:.55rem .6rem;}
}

@media(max-width:360px){
  .mobile-menu-trigger{min-width:48px;width:48px;padding:.6rem;}
  .mobile-menu-trigger-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .mobile-menu-drawer{width:100%;border-left:0;}
  .mobile-menu-social{grid-template-columns:1fr;}
}

@media(prefers-reduced-motion:reduce){
  .mobile-menu-trigger,
  .mobile-menu-trigger-icon i,
  .mobile-menu-backdrop,
  .mobile-menu-drawer,
  .mobile-menu-nav a,
  .mobile-menu-nav a::before{transition-duration:.01ms!important;}
}
