/* ===================================================================
   BLESSED CALOPSITAS — Sistema visual (Direção A · Editorial Boutique)
   Verde-floresta profundo + rosa do logo + creme. Serifada chique.
   =================================================================== */
:root{
  /* greens */
  --green-900:#0f211a; --green-850:#13291f; --green-800:#173026;
  --green-700:#1e3d2f; --green-600:#2a5240; --green-500:#3a6b53;
  --sage:#7d9885; --sage-dim:#5a7464;
  /* pinks */
  --pink:#f2b6c4; --pink-strong:#e2879c; --pink-deep:#c96a82; --pink-soft:#f9dce2;
  /* neutrals */
  --cream:#f6efe6; --cream-2:#ece0d1; --cream-3:#e2d3c0;
  --ink:#22332b; --ink-soft:#4a5a51;
  /* surfaces on dark */
  --line-d:rgba(246,239,230,.12); --line-d-2:rgba(246,239,230,.22);
  --text-d:rgba(246,239,230,.78); --text-d-dim:rgba(246,239,230,.55);
  /* fonts */
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Mulish",system-ui,-apple-system,sans-serif;
  /* shape */
  --r-sm:10px; --r:16px; --r-lg:22px; --r-xl:28px;
  --shadow:0 18px 44px rgba(8,20,14,.28);
  --shadow-soft:0 12px 30px rgba(30,61,47,.10);
  --maxw:1240px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--green-800);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:.004em;line-height:1.1;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:var(--sans);cursor:pointer;}
::selection{background:var(--pink);color:var(--green-800);}

/* layout */
.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,56px);}
.section{padding:clamp(56px,8vw,104px) 0;}
.eyebrow{font-size:12.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);
  font-weight:700;font-size:14.5px;border:none;cursor:pointer;border-radius:40px;padding:14px 28px;
  transition:transform .18s ease, background .18s ease, color .18s, box-shadow .18s;line-height:1;white-space:nowrap;}
.btn:active{transform:translateY(1px);}
.btn-pink{background:var(--pink);color:var(--green-800);}
.btn-pink:hover{background:#fff;}
.btn-deep{background:var(--pink-deep);color:#fff;}
.btn-deep:hover{background:var(--pink-strong);}
.btn-ghost{background:transparent;border:1.5px solid var(--line-d-2);color:var(--cream);}
.btn-ghost:hover{border-color:var(--pink);color:var(--pink);}
.btn-ghost-d{background:transparent;border:1.5px solid var(--green-600);color:var(--green-700);}
.btn-ghost-d:hover{background:var(--green-700);color:var(--cream);border-color:var(--green-700);}
.btn-sm{padding:9px 16px;font-size:13px;}
.btn-block{width:100%;}

/* pills / badges */
.pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  letter-spacing:.03em;padding:7px 15px;border-radius:40px;white-space:nowrap;}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;padding:5px 11px;border-radius:40px;}
.badge-ok{background:var(--pink);color:var(--green-800);}
.badge-mut{background:rgba(242,182,196,.16);color:var(--pink);}
.badge-soft{background:var(--green-600);color:var(--cream);}
.badge-out{background:transparent;border:1px solid var(--line-d-2);color:var(--text-d-dim);}

/* photo placeholder (até as fotos reais entrarem) */
.ph{position:relative;overflow:hidden;
  background:radial-gradient(120% 120% at 70% 18%, rgba(242,182,196,.42), transparent 58%),
    linear-gradient(160deg,var(--green-600),var(--green-850));}
.ph::after{content:"";position:absolute;inset:0;
  background:url('assets/bird-pink.png') center 62%/auto 74% no-repeat;opacity:.15;mix-blend-mode:screen;}
.ph.alt::after{background-position:center 70%;transform:scaleX(-1);}
.ph.light{background:radial-gradient(120% 120% at 30% 15%, var(--pink-soft), transparent 62%),
    linear-gradient(160deg,#fbeee7,#e7d2c1);}
.ph.light::after{opacity:.3;mix-blend-mode:normal;}
.ph-tag{position:absolute;top:12px;left:12px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;background:rgba(8,20,14,.32);padding:4px 9px;border-radius:30px;backdrop-filter:blur(4px);
  display:flex;align-items:center;gap:5px;}

/* cards */
.card{background:var(--green-700);border-radius:var(--r);overflow:hidden;border:1px solid var(--line-d);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s;}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--line-d-2);}
.card-light{background:#fff;border:1px solid var(--cream-2);}

/* surfaces */
.on-cream{background:var(--cream);color:var(--ink);}
.on-green{background:var(--green-800);color:var(--cream);}
.on-green-900{background:var(--green-900);color:var(--cream);}

/* forms */
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:13px;font-weight:700;letter-spacing:.02em;}
.input,.select,.textarea{font-family:var(--sans);font-size:14.5px;padding:12px 15px;border-radius:var(--r-sm);
  border:1.5px solid var(--cream-2);background:#fff;color:var(--ink);outline:none;transition:border-color .18s, box-shadow .18s;width:100%;}
.input:focus,.select:focus,.textarea:focus{border-color:var(--pink-strong);box-shadow:0 0 0 3px var(--pink-soft);}
.input.dark,.select.dark,.textarea.dark{background:rgba(246,239,230,.05);border-color:var(--line-d-2);color:var(--cream);}
.input.dark::placeholder{color:var(--text-d-dim);}
.input.dark:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(242,182,196,.16);}

/* misc */
.divider{height:1px;background:var(--line-d);border:none;}
.kicker-line{display:flex;align-items:center;gap:12px;}
.kicker-line::before{content:"";width:30px;height:1.5px;background:var(--pink);}
.grid{display:grid;gap:22px;}
.muted{color:var(--text-d-dim);}
.chip-meta{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--cream);
  background:rgba(242,182,196,.10);border:1px solid var(--line-d);padding:5px 11px;border-radius:30px;}
.foot-link{transition:color .18s ease;}
.foot-link:hover{color:var(--pink)!important;}
.foot-soc:hover{border-color:var(--pink)!important;color:var(--pink)!important;transform:translateY(-2px);}
/* setas do carrossel de casais */
.casal-arrow{position:absolute;top:42%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  border:none;background:rgba(246,239,230,.9);display:grid;place-items:center;cursor:pointer;z-index:4;
  box-shadow:0 6px 18px rgba(8,20,14,.28);transition:background .18s, transform .18s;}
.casal-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.08);}

/* ===== efeitos premium ===== */
/* hero: crossfade dos slides */
.hero-slide{position:absolute;inset:0;opacity:0;transform:scale(1.04);
  transition:opacity 1s ease, transform 1.2s ease;pointer-events:none;}
.hero-slide.on{opacity:1;transform:scale(1);pointer-events:auto;}
.hero-slide .ph{animation:kenburns 9s ease-out both;}
@keyframes kenburns{from{transform:scale(1.08);}to{transform:scale(1);}}
.hero-card{animation:cardIn .5s cubic-bezier(.16,.84,.44,1) both;}
@keyframes cardIn{from{transform:translateY(16px);}to{transform:none;}}
.hero-stack{position:relative;}
/* glow suave atrás do hero */
.hero-glow{position:absolute;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle, rgba(242,182,196,.22), transparent 65%);
  filter:blur(20px);z-index:0;pointer-events:none;animation:floatGlow 11s ease-in-out infinite;}
@keyframes floatGlow{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(30px,-26px) scale(1.12);}}
/* zoom de imagem nos cards ao passar o mouse */
.card .ph{transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.card:hover .ph{transform:scale(1.06);}
.card{overflow:hidden;}
/* botões: brilho ao passar */
.btn-pink{position:relative;overflow:hidden;}
.btn-pink::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);transition:left .6s ease;}
.btn-pink:hover::after{left:140%;}
/* eyebrow line cresce no hover do heading */
.kicker-line::before{transition:width .3s ease;}
.ph.has-img::after{display:none;}
/* microinterações premium */
.btn,.card,.pill,.chip-meta{will-change:transform;}
.card:hover h3{color:var(--pink);}
.ph::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,20,14,.32));opacity:0;transition:opacity .3s;z-index:1;}
.card:hover .ph::before{opacity:1;}
.scrollbar-thin::-webkit-scrollbar{height:6px;width:6px;}
.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--line-d-2);border-radius:6px;}

/* toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--green-900);color:var(--cream);border:1px solid var(--line-d-2);
  padding:14px 22px;border-radius:40px;font-size:14px;font-weight:600;box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transition:.3s;z-index:200;display:flex;align-items:center;gap:10px;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* reveal on scroll — base SEMPRE visível; animação é flourish aditivo.
   .in só é adicionado via rAF/scroll (rodam no navegador real; congelam no preview,
   então o conteúdo nunca some). */
.reveal{opacity:1;}
.reveal.in{animation:bc-rise .75s cubic-bezier(.16,.84,.44,1) both;}
@keyframes bc-rise{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
.reveal-d1.in{animation-delay:.08s;}
.reveal-d2.in{animation-delay:.16s;}
.reveal-d3.in{animation-delay:.24s;}

/* ---------- product modal ---------- */
.pm-overlay{position:fixed;inset:0;background:rgba(8,20,14,.7);backdrop-filter:blur(5px);z-index:300;
  display:flex;align-items:flex-start;justify-content:center;padding:clamp(16px,5vh,60px) 18px;overflow:auto;}
.pm-modal{position:relative;background:var(--green-800);border:1px solid var(--line-d-2);border-radius:var(--r-xl);
  width:100%;max-width:920px;box-shadow:0 36px 90px rgba(8,20,14,.55);margin:auto;}
.pm-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,38px);padding:clamp(22px,3vw,34px);}
.pm-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:none;
  background:rgba(246,239,230,.1);display:grid;place-items:center;cursor:pointer;z-index:4;}
.pm-close:hover{background:rgba(246,239,230,.2);}
@media(max-width:760px){ .pm-grid{grid-template-columns:1fr;} }

/* ---------- botão flutuante WhatsApp ---------- */
.wa-fab{position:fixed;z-index:300;width:60px;height:60px;border-radius:50%;border:none;cursor:grab;
  background:#25D366;display:grid;place-items:center;box-shadow:0 10px 26px rgba(8,20,14,.4);
  transition:transform .18s ease, box-shadow .18s ease;touch-action:none;}
.wa-fab:hover{transform:scale(1.07);box-shadow:0 14px 32px rgba(8,20,14,.5);}
.wa-fab:active{cursor:grabbing;transform:scale(1.02);}
.wa-fab::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #25D366;
  opacity:.5;animation:wa-pulse 2.2s ease-out infinite;}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.5;}70%{transform:scale(1.35);opacity:0;}100%{opacity:0;}}

/* ---------- botão flutuante "Minhas reservas" ---------- */
.reserva-fab{position:fixed;left:24px;bottom:24px;z-index:300;display:flex;align-items:center;gap:9px;
  background:var(--pink);color:var(--green-800);border:none;cursor:pointer;border-radius:40px;
  padding:13px 20px 13px 17px;font-family:var(--sans);font-weight:800;font-size:14.5px;
  box-shadow:0 12px 30px rgba(8,20,14,.4);transition:transform .18s ease, background .18s ease;}
.reserva-fab:hover{transform:translateY(-2px);background:#fff;}
.reserva-fab-badge{position:absolute;top:-7px;right:-6px;background:var(--green-800);color:var(--pink);
  min-width:22px;height:22px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800;padding:0 5px;}

/* ---------- drawer de reservas ---------- */
.rd-overlay{position:fixed;inset:0;background:rgba(8,20,14,.55);backdrop-filter:blur(3px);z-index:340;
  opacity:0;pointer-events:none;transition:opacity .3s ease;}
.rd-overlay.show{opacity:1;pointer-events:auto;}
.rd-panel{position:fixed;top:0;right:0;height:100%;width:min(440px,100vw);z-index:341;
  background:var(--green-850);border-left:1px solid var(--line-d-2);box-shadow:-20px 0 60px rgba(8,20,14,.5);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .36s cubic-bezier(.4,0,.2,1);}
.rd-panel.show{transform:translateX(0);}
.rd-head{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 24px 18px;border-bottom:1px solid var(--line-d);}
.rd-x{width:40px;height:40px;border-radius:50%;border:none;background:rgba(246,239,230,.08);display:grid;place-items:center;cursor:pointer;flex-shrink:0;}
.rd-x:hover{background:rgba(246,239,230,.16);}
.rd-body{flex:1;overflow-y:auto;padding:8px 24px;}
.rd-item{display:flex;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line-d);}
.rd-thumb{width:58px;height:58px;border-radius:12px;flex-shrink:0;background:
  radial-gradient(120% 120% at 70% 20%, rgba(242,182,196,.5), transparent 60%),linear-gradient(160deg,var(--green-600),var(--green-850));}
.rd-thumb.ave{background:radial-gradient(120% 120% at 40% 20%, rgba(242,182,196,.5), transparent 60%),linear-gradient(160deg,var(--green-500),var(--green-800));}
.rd-name{font-family:var(--serif);font-size:19px;color:var(--cream);line-height:1.1;}
.rd-sub{font-size:12.5px;color:var(--text-d-dim);margin-top:2px;}
.rd-price{font-size:15px;font-weight:800;color:var(--pink);margin-top:6px;}
.rd-qty{display:flex;align-items:center;gap:4px;}
.rd-qty button{width:30px;height:30px;border-radius:8px;border:1px solid var(--line-d-2);background:transparent;
  color:var(--cream);font-size:17px;cursor:pointer;display:grid;place-items:center;transition:.15s;}
.rd-qty button:hover{border-color:var(--pink);color:var(--pink);}
.rd-qty span{min-width:24px;text-align:center;color:var(--cream);font-weight:700;font-size:14px;}
.rd-del{margin-left:4px;color:var(--text-d-dim)!important;}
.rd-del:hover{border-color:var(--pink-deep)!important;color:var(--pink-deep)!important;}
.rd-form{padding:18px 0;display:flex;flex-direction:column;gap:16px;}
.rd-foot{padding:18px 24px 24px;border-top:1px solid var(--line-d);background:var(--green-900);}
.rd-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;color:var(--text-d);font-size:14px;}
.rd-total strong{font-family:var(--serif);font-size:28px;color:var(--pink);font-weight:600;}
@media(max-width:600px){ .reserva-fab span:not(.reserva-fab-badge){display:none;} .reserva-fab{padding:15px;} }

/* ---------- responsivo ---------- */
.bc-mob,.bc-mob-menu{display:none;}
@media(max-width:1100px){
  .grid{grid-template-columns:repeat(2,1fr)!important;}
}
@media(max-width:900px){
  .bc-desk{display:none!important;}
  .bc-mob{display:flex!important;}
  .bc-mob-menu{display:block!important;}
  .bc-2col{grid-template-columns:1fr!important;gap:36px!important;}
  .bc-hero-art{order:-1;}
  .bc-foot-grid{grid-template-columns:1fr 1fr!important;gap:32px!important;}
}
@media(max-width:720px){
  .section{padding:54px 0;}
  .grid{grid-template-columns:1fr!important;}
  .bc-split{grid-template-columns:1fr!important;}
  .bc-trust-grid{grid-template-columns:repeat(2,1fr)!important;}
  .bc-foot-grid{grid-template-columns:1fr!important;}
  .bc-2col-keep{grid-template-columns:1fr!important;}
}
