/* ============================================================
   Beni Falcão · componentes (S1)
   ============================================================ */

/* ---- transição suave entre páginas (cross-document, nativo, sem lib) ---- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:beni-fade-out .22s var(--ease) both}
::view-transition-new(root){animation:beni-fade-in .28s var(--ease) both}
@keyframes beni-fade-out{to{opacity:0}}
@keyframes beni-fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* ---- botões ---- */
.btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--navy)}
.btn-ghost:hover{border-color:var(--navy);transform:translateY(-2px)}
.btn-lg{padding:17px 34px;font-size:16px}
.btn[disabled],.btn.is-loading{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.btn .spin{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- form ---- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field>label{font-size:13px;font-weight:600;color:var(--navy-deep)}
.field .req{color:var(--amber);margin-left:2px}
.input,.textarea,.select{width:100%;font-size:16px;font-family:var(--sans);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--serene);box-shadow:0 0 0 3px rgba(157,187,214,.28)}
.input::placeholder{color:#AEB8C2}
.textarea{resize:vertical;min-height:110px;line-height:1.5}
.field.has-error .input,.field.has-error .textarea,.field.has-error .select{border-color:#C6584F;box-shadow:0 0 0 3px rgba(198,88,79,.14)}
.field .error{font-size:12.5px;color:#C6584F;min-height:1.1em;transition:opacity .2s}
.field .hint{font-size:12.5px;color:var(--ink-soft)}

/* ---- card ---- */
.card{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;position:relative;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card__media{aspect-ratio:4/5;overflow:hidden;background:var(--cream-2)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.card:hover .card__media img{transform:scale(1.05)}
.card__body{padding:16px 18px 20px}

/* ---- skeleton ---- */
.skeleton{background:linear-gradient(100deg,var(--cream-2) 30%,#EFE9DF 50%,var(--cream-2) 70%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:12px}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---- modal / drawer ---- */
.modal{position:fixed;inset:0;z-index:200;display:none}
.modal.is-open{display:block}
.modal__backdrop{position:absolute;inset:0;background:rgba(35,66,90,.42);backdrop-filter:blur(3px);animation:beniFade .3s var(--ease)}
.modal__panel{position:absolute;background:var(--paper);box-shadow:var(--shadow)}
.modal--center .modal__panel{left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,92vw);max-height:88vh;overflow:auto;border-radius:var(--r-lg);padding:34px;animation:beniPop .4s var(--ease)}
.modal--drawer .modal__panel{top:0;right:0;height:100%;width:min(440px,94vw);border-radius:24px 0 0 24px;padding:28px;overflow:auto;animation:beniSlide .45s var(--ease)}
.modal--video .modal__panel{left:50%;top:50%;transform:translate(-50%,-50%);width:min(940px,94vw);background:#0d1720;border-radius:16px;overflow:hidden;animation:beniPop .4s var(--ease)}
.modal--video .video-frame{position:relative;width:100%;aspect-ratio:16/9}
.modal--video .video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.modal--video .modal__close{top:12px;right:12px;background:rgba(255,255,255,.94)}
.modal--video .modal__close:hover{background:#fff}
.modal__close{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;background:var(--cream);display:grid;place-items:center;font-size:18px;color:var(--navy);z-index:2}
.modal__close:hover{background:var(--serene-soft)}
@keyframes beniFade{from{opacity:0}}
@keyframes beniPop{from{opacity:0;transform:translate(-50%,-46%) scale(.97)}}
@keyframes beniSlide{from{transform:translateX(100%)}}

/* ---- toasts ---- */
.toasts{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}
.toast{background:var(--navy-deep);color:var(--cream);padding:13px 20px;border-radius:14px;font-size:14px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);transition:opacity .35s var(--ease),transform .35s var(--ease);max-width:90vw}
.toast.show{opacity:1;transform:translateY(0)}
.toast--success{background:#3B6D11}
.toast--error{background:#A32D2D}

/* ---- faixa de confiança global ---- */
.beni-trustband{border-top:1px solid var(--line-soft);background:var(--cream-2)}
.beni-trustband+.site-footer{margin-top:0}
.beni-trustband__row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:28px 24px}
.beni-trustband__item{display:flex;align-items:center;gap:13px}
.beni-trustband__item svg{width:26px;height:26px;color:var(--navy);flex:none}
.beni-trustband__item strong{display:block;font-size:13.5px;color:var(--navy-deep);font-weight:600;line-height:1.25}
.beni-trustband__item span{font-size:12px;color:var(--ink-soft)}
@media(max-width:820px){.beni-trustband__row{grid-template-columns:repeat(2,1fr);gap:22px 18px}}

/* ---- bolha de vídeo flutuante ---- */
.beni-video-bubble{position:fixed;right:22px;bottom:22px;z-index:120;display:inline-flex;align-items:center;background:transparent;border:0;cursor:pointer;padding:0}
.beni-video-bubble__label{background:var(--navy-deep);color:var(--cream);font-size:13px;font-weight:600;padding:9px 26px 9px 18px;border-radius:999px;margin-right:-18px;box-shadow:var(--shadow);white-space:nowrap;opacity:0;transform:translateX(12px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.beni-video-bubble:hover .beni-video-bubble__label,.beni-video-bubble:focus-visible .beni-video-bubble__label{opacity:1;transform:none}
.beni-video-bubble__thumb{position:relative;width:66px;height:66px;border-radius:50%;overflow:hidden;box-shadow:var(--shadow);border:2px solid var(--cream);flex:none}
.beni-video-bubble__thumb img{width:100%;height:100%;object-fit:cover}
.beni-video-bubble__thumb::after{content:"";position:absolute;inset:0;border-radius:50%;animation:beni-bub 2.6s var(--ease) infinite}
.beni-video-bubble__play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(35,66,90,.3);color:#fff}
.beni-video-bubble__play svg{width:24px;height:24px;margin-left:2px}
@keyframes beni-bub{0%{box-shadow:0 0 0 0 rgba(35,66,90,.45)}70%{box-shadow:0 0 0 13px rgba(35,66,90,0)}100%{box-shadow:0 0 0 0 rgba(35,66,90,0)}}
@media(max-width:640px){.beni-video-bubble{right:14px;bottom:14px}.beni-video-bubble__thumb{width:58px;height:58px}}
@media(prefers-reduced-motion:reduce){.beni-video-bubble__thumb::after{animation:none}}

/* ---- reveal (estado inicial some via GSAP autoAlpha) ---- */
[data-reveal],[data-reveal-group]>*{will-change:transform,opacity}

@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
