/* ==========================================================================
   ALEXANDRE — ATELIÊ DIGITAL
   rb-core.css — Design System global
   Prefixo exclusivo do projeto: .rb-
   ==========================================================================
   01. Tokens
   02. Reset e base
   03. Fundo (profundidade de grafite)
   04. Tipografia
   05. Layout e containers
   06. Botões
   07. Formulários
   08. Cards
   09. Header
   10. Footer
   11. Galeria e lightbox
   12. Accordion
   13. Estados (loading, vazio, erro, sucesso)
   14. Animações e reveal
   15. Utilitários
   16. Acessibilidade e reduced motion
   ========================================================================== */

/* ============================ 01. TOKENS ================================= */
:root{
  /* — Cor: base escura — */
  --rb-obsidian:#090A0C;
  --rb-graphite:#121417;
  --rb-charcoal:#1A1D21;
  --rb-charcoal-2:#22262B;

  /* — Cor: base clara — */
  --rb-ivory:#F4F1EA;
  --rb-paper:#E9E2D6;
  --rb-paper-deep:#DED5C5;

  /* — Cor: texto — */
  --rb-silver:#9CA1A8;
  --rb-silver-dim:#828891;   /* AA 4.5:1 sobre obsidian, grafite e carvão */

  /* — Cor: acento (uso restrito 2–5%) — */
  --rb-gold:#C6A46C;
  --rb-gold-light:#E1CAA1;
  --rb-gold-deep:#9C7F4E;

  /* — Cor: semântica — */
  --rb-success:#7FA97F;
  --rb-error:#C97C6B;

  /* — Cor: superfícies e linhas — */
  --rb-surface:var(--rb-graphite);
  --rb-surface-2:var(--rb-charcoal);
  --rb-line:rgba(244,241,234,.08);
  --rb-line-strong:rgba(244,241,234,.14);
  --rb-line-gold:rgba(198,164,108,.22);
  --rb-glass:rgba(18,20,23,.62);

  /* — Tipografia — */
  --rb-font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --rb-font-ui:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;

  --rb-fs-micro:.6875rem;   /* 11px */
  --rb-fs-meta:.75rem;      /* 12px */
  --rb-fs-sm:.875rem;       /* 14px */
  --rb-fs-body:1.0625rem;   /* 17px */
  --rb-fs-lead:1.1875rem;   /* 19px */
  --rb-fs-h4:clamp(1.15rem,1rem + .6vw,1.5rem);
  --rb-fs-h3:clamp(1.5rem,1.2rem + 1.1vw,2.25rem);
  --rb-fs-h2:clamp(2rem,1.4rem + 2.4vw,3.75rem);
  --rb-fs-h1:clamp(2.6rem,1.6rem + 4.2vw,6rem);
  --rb-fs-display:clamp(3rem,1.6rem + 6vw,8.5rem);

  --rb-lh-tight:1.04;
  --rb-lh-title:1.12;
  --rb-lh-body:1.72;
  --rb-ls-eyebrow:.32em;
  --rb-ls-btn:.16em;

  /* — Espaçamento — */
  --rb-sp-1:.25rem;
  --rb-sp-2:.5rem;
  --rb-sp-3:.75rem;
  --rb-sp-4:1rem;
  --rb-sp-5:1.5rem;
  --rb-sp-6:2rem;
  --rb-sp-7:3rem;
  --rb-sp-8:4rem;
  --rb-sp-9:6rem;
  --rb-sp-10:8rem;
  --rb-section-y:clamp(4.5rem,3rem + 8vw,10rem);
  --rb-section-y-sm:clamp(3rem,2rem + 5vw,6rem);

  /* — Containers — */
  --rb-w-wide:1440px;
  --rb-w:1240px;
  --rb-w-text:760px;
  --rb-w-narrow:600px;
  --rb-gutter:clamp(1.25rem,4vw,3.5rem);

  /* — Bordas — */
  --rb-r-xs:2px;
  --rb-r-sm:3px;
  --rb-r:6px;
  --rb-r-lg:10px;
  --rb-r-pill:999px;

  /* — Sombras (extremamente suaves) — */
  --rb-shadow-1:0 1px 2px rgba(0,0,0,.28);
  --rb-shadow-2:0 10px 30px -12px rgba(0,0,0,.55);
  --rb-shadow-3:0 28px 70px -28px rgba(0,0,0,.75);
  --rb-shadow-4:0 50px 120px -40px rgba(0,0,0,.85);
  --rb-shadow-gold:0 0 0 1px rgba(198,164,108,.18),0 18px 50px -26px rgba(198,164,108,.28);

  /* — Movimento — */
  --rb-ease:cubic-bezier(.22,.61,.36,1);
  --rb-ease-out:cubic-bezier(.16,1,.3,1);
  --rb-t-fast:180ms;
  --rb-t:340ms;
  --rb-t-slow:640ms;
  --rb-t-reveal:1100ms;

  /* — Camadas — */
  --rb-z-bg:0;
  --rb-z-base:1;
  --rb-z-raised:10;
  --rb-z-header:800;
  --rb-z-menu:900;
  --rb-z-modal:1000;

  --rb-header-h:82px;
}

/* Tema claro localizado (Blog, Presente) */
.rb-theme-paper{
  --rb-surface:var(--rb-paper);
  --rb-surface-2:#F2ECE1;
  --rb-line:rgba(9,10,12,.10);
  --rb-line-strong:rgba(9,10,12,.18);
  --rb-glass:rgba(233,226,214,.72);
}

/* ========================= 02. RESET E BASE ============================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--rb-header-h) + 1.5rem)}
body{
  margin:0;
  background-color:var(--rb-obsidian);
  color:var(--rb-silver);
  font-family:var(--rb-font-ui);
  font-size:var(--rb-fs-body);
  line-height:var(--rb-lh-body);
  font-weight:300;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.rb-lock{overflow:hidden}
img,svg,video,canvas{display:block;max-width:100%;height:auto}
img{border-style:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
figure,blockquote{margin:0}
hr{border:0;border-top:1px solid var(--rb-line);margin:var(--rb-sp-7) 0}
::selection{background:rgba(198,164,108,.24);color:var(--rb-ivory)}

/* Scrollbar discreta */
@supports (scrollbar-width:thin){
  html{scrollbar-width:thin;scrollbar-color:rgba(198,164,108,.28) transparent}
}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:var(--rb-obsidian)}
::-webkit-scrollbar-thumb{background:rgba(198,164,108,.22);border-radius:var(--rb-r-pill)}
::-webkit-scrollbar-thumb:hover{background:rgba(198,164,108,.4)}

/* ============= 03. FUNDO — profundidade de carvão e grafite ============== */
.rb-bg{
  position:fixed;
  inset:0;
  z-index:var(--rb-z-bg);
  pointer-events:none;
  background-color:var(--rb-obsidian);
}
/* Iluminação localizada quase imperceptível */
.rb-bg::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(120% 80% at 78% -8%,rgba(198,164,108,.062) 0%,rgba(198,164,108,0) 58%),
    radial-gradient(90% 70% at 4% 12%,rgba(244,241,234,.030) 0%,rgba(244,241,234,0) 55%),
    radial-gradient(140% 100% at 50% 118%,rgba(198,164,108,.038) 0%,rgba(198,164,108,0) 62%);
}
/* Grão artístico — textura de papel/carvão */
.rb-bg::after{
  content:"";
  position:absolute;
  inset:-120%;
  opacity:.34;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
/* Malha de pontos extremamente discreta */
.rb-bg__dots{
  position:absolute;
  inset:0;
  opacity:.5;
  background-image:radial-gradient(rgba(244,241,234,.045) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(75% 60% at 50% 30%,#000 0%,transparent 78%);
  mask-image:radial-gradient(75% 60% at 50% 30%,#000 0%,transparent 78%);
}

/* ========================== 04. TIPOGRAFIA =============================== */
h1,h2,h3,h4,h5,h6,.rb-display{
  font-family:var(--rb-font-display);
  color:var(--rb-ivory);
  font-weight:400;
  line-height:var(--rb-lh-title);
  letter-spacing:-.012em;
  margin:0;
  text-wrap:balance;
}
h1,.rb-h1{font-size:var(--rb-fs-h1);line-height:var(--rb-lh-tight);letter-spacing:-.022em;font-weight:300}
h2,.rb-h2{font-size:var(--rb-fs-h2);letter-spacing:-.018em;font-weight:300}
h3,.rb-h3{font-size:var(--rb-fs-h3)}
h4,.rb-h4{font-size:var(--rb-fs-h4)}
.rb-display{font-size:var(--rb-fs-display);line-height:.94;letter-spacing:-.03em;font-weight:300}

p{margin:0 0 var(--rb-sp-5)}
p:last-child{margin-bottom:0}

.rb-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.75em;
  font-family:var(--rb-font-ui);
  font-size:var(--rb-fs-micro);
  font-weight:500;
  letter-spacing:var(--rb-ls-eyebrow);
  text-transform:uppercase;
  color:var(--rb-gold);
  margin:0 0 var(--rb-sp-5);
}
.rb-eyebrow::before{
  content:"";
  width:clamp(24px,4vw,48px);
  height:1px;
  background:linear-gradient(90deg,rgba(198,164,108,0),var(--rb-gold));
  flex:none;
}
.rb-eyebrow--center{justify-content:center}
.rb-eyebrow--plain::before{display:none}

.rb-lead{
  font-size:var(--rb-fs-lead);
  line-height:1.68;
  color:var(--rb-silver);
  font-weight:300;
}
.rb-text{max-width:var(--rb-w-text)}
.rb-text p{color:var(--rb-silver)}
.rb-text strong{color:var(--rb-ivory);font-weight:500}
.rb-text em{color:var(--rb-gold-light);font-style:italic}

/* Linhas curtas em bloco poético (frases soltas do conteúdo) */
.rb-verse p{margin-bottom:var(--rb-sp-3)}
.rb-verse p:last-child{margin-bottom:0}

.rb-meta{
  font-size:var(--rb-fs-meta);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rb-silver-dim);
  font-weight:400;
}
.rb-micro{font-size:var(--rb-fs-micro);letter-spacing:.06em;color:var(--rb-silver-dim)}
.rb-gold{color:var(--rb-gold)}
.rb-ivory{color:var(--rb-ivory)}

/* Numeral de método/etapa */
.rb-numeral{
  font-family:var(--rb-font-display);
  font-size:clamp(2.2rem,1.4rem + 3vw,4.25rem);
  line-height:1;
  font-weight:300;
  color:var(--rb-gold);
  font-variant-numeric:lining-nums tabular-nums;
  letter-spacing:-.02em;
}

/* Filete decorativo */
.rb-rule{height:1px;background:var(--rb-line);border:0;width:100%}
.rb-rule--gold{background:linear-gradient(90deg,var(--rb-gold),rgba(198,164,108,0))}

/* ====================== 05. LAYOUT E CONTAINERS ========================== */
.rb-site{position:relative;z-index:var(--rb-z-base)}
.rb-main{display:block}
.rb-container{width:100%;max-width:var(--rb-w);margin-inline:auto;padding-inline:var(--rb-gutter)}
.rb-container--wide{max-width:var(--rb-w-wide)}
.rb-container--text{max-width:calc(var(--rb-w-text) + var(--rb-gutter) * 2)}
.rb-container--narrow{max-width:calc(var(--rb-w-narrow) + var(--rb-gutter) * 2)}
.rb-container--flush{padding-inline:0}

.rb-section{position:relative;padding-block:var(--rb-section-y)}
.rb-section--sm{padding-block:var(--rb-section-y-sm)}
.rb-section--flush-top{padding-top:0}
.rb-section--flush-bottom{padding-bottom:0}
.rb-section--surface{background:linear-gradient(180deg,rgba(18,20,23,0),rgba(18,20,23,.72) 18%,rgba(18,20,23,.72) 82%,rgba(18,20,23,0))}
.rb-section--line{border-top:1px solid var(--rb-line)}

.rb-section__head{margin-bottom:clamp(2.5rem,1.5rem + 3.5vw,5rem)}
.rb-section__head--center{text-align:center;max-width:var(--rb-w-text);margin-inline:auto}
.rb-section__head--center .rb-eyebrow{justify-content:center}
.rb-section__sub{margin-top:var(--rb-sp-4);color:var(--rb-silver);font-size:var(--rb-fs-lead);font-weight:300}

.rb-grid{display:grid;gap:clamp(1.25rem,1rem + 1.4vw,2.5rem)}
/* Itens de grid têm min-width:auto por padrão e podem estourar o container.
   Esta regra impede o estouro horizontal em qualquer grade do projeto. */
.rb-grid > *,.rb-split > *{min-width:0}
.rb-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rb-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.rb-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.rb-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.rb-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,1rem + 4vw,6rem);align-items:center}
.rb-split--55{grid-template-columns:1.15fr 1fr}
.rb-split--45{grid-template-columns:1fr 1.15fr}
.rb-stack{display:flex;flex-direction:column}
.rb-stack--4{gap:var(--rb-sp-4)}
.rb-stack--5{gap:var(--rb-sp-5)}
.rb-stack--6{gap:var(--rb-sp-6)}
.rb-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rb-sp-4)}

/* =========================== 06. BOTÕES ================================== */
.rb-btn{
  --_bg:transparent;
  --_fg:var(--rb-ivory);
  --_bd:var(--rb-line-strong);
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7em;
  min-height:52px;
  padding:0 clamp(1.4rem,1rem + 1.2vw,2.25rem);
  font-family:var(--rb-font-ui);
  font-size:var(--rb-fs-meta);
  font-weight:500;
  letter-spacing:var(--rb-ls-btn);
  text-transform:uppercase;
  color:var(--_fg);
  background:var(--_bg);
  border:1px solid var(--_bd);
  border-radius:var(--rb-r-xs);
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  transition:
    transform var(--rb-t) var(--rb-ease),
    background-color var(--rb-t) var(--rb-ease),
    border-color var(--rb-t) var(--rb-ease),
    color var(--rb-t) var(--rb-ease),
    box-shadow var(--rb-t) var(--rb-ease);
}
.rb-btn__label{position:relative;z-index:2;white-space:nowrap}
.rb-btn__icon{position:relative;z-index:2;width:14px;height:14px;flex:none;transition:transform var(--rb-t) var(--rb-ease)}
.rb-btn:hover .rb-btn__icon{transform:translateX(3px)}

/* CTA principal — Champagne Gold */
.rb-btn--gold{
  --_bg:var(--rb-gold);
  --_fg:#0B0C0E;
  --_bd:var(--rb-gold);
  font-weight:600;
}
.rb-btn--gold::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(105deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 62%);
  transform:translateX(-120%);
  transition:transform 900ms var(--rb-ease-out);
}
.rb-btn--gold:hover{
  background:var(--rb-gold-light);
  border-color:var(--rb-gold-light);
  transform:translateY(-2px);
  box-shadow:0 14px 34px -18px rgba(198,164,108,.7);
}
.rb-btn--gold:hover::before{transform:translateX(120%)}

/* CTA secundário — traço fino */
.rb-btn--ghost{--_bd:rgba(244,241,234,.20)}
.rb-btn--ghost:hover{
  --_bd:var(--rb-line-gold);
  color:var(--rb-gold-light);
  background:rgba(198,164,108,.05);
  transform:translateY(-2px);
}

/* Terciário — apenas texto com filete */
.rb-btn--text{
  min-height:auto;
  padding:0;
  border:0;
  color:var(--rb-gold);
  letter-spacing:.14em;
}
.rb-btn--text .rb-btn__label{
  padding-bottom:4px;
  background-image:linear-gradient(var(--rb-gold),var(--rb-gold));
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:100% 1px;
  transition:background-size var(--rb-t) var(--rb-ease),color var(--rb-t) var(--rb-ease);
}
.rb-btn--text:hover{transform:none;color:var(--rb-gold-light)}
.rb-btn--text:hover .rb-btn__label{background-size:0% 1px;background-position:100% 100%}

.rb-btn--sm{min-height:42px;font-size:var(--rb-fs-micro);padding-inline:1.25rem}
.rb-btn--block{display:flex;width:100%}
.rb-btn[disabled],.rb-btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.rb-btn.is-loading{pointer-events:none;color:transparent}
.rb-btn.is-loading::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  margin:auto;
  width:17px;height:17px;
  border:1.5px solid currentColor;
  border-top-color:transparent;
  border-radius:50%;
  color:var(--rb-ivory);
  animation:rb-spin 720ms linear infinite;
}
.rb-btn--gold.is-loading::after{color:#0B0C0E}

.rb-actions{display:flex;flex-wrap:wrap;gap:var(--rb-sp-4);align-items:center}
.rb-actions--center{justify-content:center}

/* ========================= 07. FORMULÁRIOS =============================== */
.rb-form{display:flex;flex-direction:column;gap:var(--rb-sp-5)}
.rb-field{position:relative;display:flex;flex-direction:column;gap:.55rem}
.rb-field__label{
  font-size:var(--rb-fs-micro);
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--rb-silver-dim);
  font-weight:500;
}
.rb-field__label .rb-req{color:var(--rb-gold);margin-left:.25em}
.rb-input,.rb-textarea,.rb-select{
  width:100%;
  min-height:54px;
  padding:.95rem 1.1rem;
  background:rgba(244,241,234,.032);
  border:1px solid var(--rb-line);
  border-radius:var(--rb-r-xs);
  color:var(--rb-ivory);
  font-size:var(--rb-fs-sm);
  font-weight:300;
  letter-spacing:.01em;
  transition:border-color var(--rb-t) var(--rb-ease),background-color var(--rb-t) var(--rb-ease),box-shadow var(--rb-t) var(--rb-ease);
  -webkit-appearance:none;appearance:none;
}
.rb-textarea{min-height:150px;resize:vertical;line-height:1.65}
.rb-select{
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%239CA1A8' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1.1rem center;
  padding-right:2.75rem;
  cursor:pointer;
}
.rb-select option{background:var(--rb-graphite);color:var(--rb-ivory)}
.rb-input::placeholder,.rb-textarea::placeholder{color:var(--rb-silver-dim);opacity:.75}
.rb-input:hover,.rb-textarea:hover,.rb-select:hover{border-color:var(--rb-line-strong)}
.rb-input:focus,.rb-textarea:focus,.rb-select:focus{
  outline:none;
  border-color:var(--rb-line-gold);
  background:rgba(198,164,108,.05);
  box-shadow:0 0 0 3px rgba(198,164,108,.10);
}
.rb-field.is-invalid .rb-input,
.rb-field.is-invalid .rb-textarea,
.rb-field.is-invalid .rb-select{border-color:rgba(201,124,107,.6);background:rgba(201,124,107,.06)}
.rb-field__error{
  display:none;
  font-size:var(--rb-fs-micro);
  color:var(--rb-error);
  letter-spacing:.04em;
}
.rb-field.is-invalid .rb-field__error{display:block}
.rb-form__note{font-size:var(--rb-fs-micro);color:var(--rb-silver-dim);letter-spacing:.03em}
.rb-form__note a{color:var(--rb-gold);border-bottom:1px solid var(--rb-line-gold)}

/* Honeypot anti-spam */
.rb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Mensagens de retorno */
.rb-msg{
  display:none;
  align-items:flex-start;
  gap:.75rem;
  padding:1rem 1.15rem;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-r-xs);
  font-size:var(--rb-fs-sm);
  line-height:1.6;
}
.rb-msg.is-visible{display:flex;animation:rb-fade-up 420ms var(--rb-ease-out) both}
.rb-msg--success{border-color:rgba(127,169,127,.4);background:rgba(127,169,127,.08);color:#C9DCC9}
.rb-msg--error{border-color:rgba(201,124,107,.4);background:rgba(201,124,107,.08);color:#E8C4B9}
.rb-msg__icon{flex:none;width:18px;height:18px;margin-top:2px}

/* Checkbox de consentimento */
.rb-check{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}
.rb-check input{
  flex:none;
  width:18px;height:18px;
  margin-top:3px;
  -webkit-appearance:none;appearance:none;
  border:1px solid var(--rb-line-strong);
  border-radius:var(--rb-r-xs);
  background:rgba(244,241,234,.03);
  cursor:pointer;
  transition:all var(--rb-t) var(--rb-ease);
}
.rb-check input:checked{background:var(--rb-gold);border-color:var(--rb-gold)}
.rb-check input:checked::after{
  content:"";
  display:block;
  width:5px;height:9px;
  margin:2px auto 0;
  border:solid #0B0C0E;
  border-width:0 1.6px 1.6px 0;
  transform:rotate(45deg);
}
.rb-check input:focus-visible{outline:2px solid var(--rb-gold);outline-offset:2px}
.rb-check span{font-size:var(--rb-fs-sm);color:var(--rb-silver);line-height:1.55}

/* ============================ 08. CARDS ================================== */
.rb-card{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:clamp(1.6rem,1.2rem + 1.2vw,2.5rem);
  background:linear-gradient(160deg,rgba(26,29,33,.92),rgba(18,20,23,.92));
  border:1px solid var(--rb-line);
  border-radius:var(--rb-r);
  overflow:hidden;
  isolation:isolate;
  transition:transform var(--rb-t-slow) var(--rb-ease-out),border-color var(--rb-t) var(--rb-ease),box-shadow var(--rb-t-slow) var(--rb-ease-out);
}
/* Iluminação superior quase invisível */
.rb-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(120% 90% at 12% -10%,rgba(244,241,234,.05),transparent 60%);
  opacity:.9;
}
/* Brilho percorrendo a borda no hover */
.rb-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(140deg,rgba(198,164,108,.5),rgba(198,164,108,0) 42%,rgba(198,164,108,0) 62%,rgba(198,164,108,.28));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  opacity:0;
  transition:opacity var(--rb-t-slow) var(--rb-ease);
}
.rb-card:hover,.rb-card:focus-within{
  transform:translateY(-4px);
  border-color:transparent;
  box-shadow:var(--rb-shadow-3);
}
.rb-card:hover::after,.rb-card:focus-within::after{opacity:1}

.rb-card__num{margin-bottom:var(--rb-sp-4)}
.rb-card__title{font-size:var(--rb-fs-h4);margin-bottom:var(--rb-sp-3)}
.rb-card__text{font-size:var(--rb-fs-sm);color:var(--rb-silver);line-height:1.7;margin:0}
.rb-card__foot{margin-top:auto;padding-top:var(--rb-sp-5)}
.rb-card__media{position:relative;overflow:hidden;border-radius:var(--rb-r-sm);margin:calc(-1 * clamp(1.6rem,1.2rem + 1.2vw,2.5rem)) calc(-1 * clamp(1.6rem,1.2rem + 1.2vw,2.5rem)) var(--rb-sp-5)}
.rb-card__media img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 900ms var(--rb-ease-out),filter var(--rb-t-slow) var(--rb-ease)}
.rb-card:hover .rb-card__media img{transform:scale(1.035)}
.rb-card--flat{background:transparent;border-color:transparent;padding:0}
.rb-card--flat:hover{transform:none;box-shadow:none}
.rb-card--flat::after{display:none}

/* Card com filete lateral dourado */
.rb-card--edge{border-left:1px solid var(--rb-line-gold)}

/* ============================ 09. HEADER ================================= */
.rb-skip{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:calc(var(--rb-z-modal) + 10);
  padding:1rem 1.5rem;
  background:var(--rb-gold);
  color:#0B0C0E;
  font-size:var(--rb-fs-meta);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.rb-skip:focus{left:1rem;top:1rem}

.rb-header{
  position:fixed;
  inset:0 0 auto;
  z-index:var(--rb-z-header);
  height:var(--rb-header-h);
  display:flex;
  align-items:center;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:height var(--rb-t) var(--rb-ease),background-color var(--rb-t) var(--rb-ease),border-color var(--rb-t) var(--rb-ease),backdrop-filter var(--rb-t) var(--rb-ease),transform var(--rb-t-slow) var(--rb-ease);
}
.rb-header.is-scrolled{
  height:70px;
  background:rgba(9,10,12,.72);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:rgba(244,241,234,.06);
}
.rb-header.is-hidden{transform:translateY(-100%)}
.rb-header__inner{
  width:100%;
  max-width:var(--rb-w-wide);
  margin-inline:auto;
  padding-inline:var(--rb-gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--rb-sp-6);
}

.rb-brand{display:inline-flex;align-items:baseline;gap:.55rem;flex:none}
.rb-brand__name{
  font-family:var(--rb-font-display);
  font-size:1.3rem;
  font-weight:400;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--rb-ivory);
  line-height:1;
  transition:color var(--rb-t) var(--rb-ease);
}
.rb-brand__dot{width:4px;height:4px;border-radius:50%;background:var(--rb-gold);flex:none;transform:translateY(-2px)}
.rb-brand:hover .rb-brand__name{color:var(--rb-gold-light)}
.rb-brand__logo{max-height:38px;width:auto}

.rb-nav{display:flex;align-items:center;gap:clamp(1rem,.4rem + 1.4vw,2.25rem)}
/* Os itens do menu são <li> sem <ul> pai: o marcador precisa ser removido aqui. */
.rb-nav__item{list-style:none;margin:0}
.rb-nav__link{
  position:relative;
  display:inline-block;
  padding:.4rem 0;
  font-size:var(--rb-fs-meta);
  font-weight:400;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rb-silver);
  transition:color var(--rb-t) var(--rb-ease);
}
.rb-nav__link::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:100%;height:1px;
  background:var(--rb-gold);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform var(--rb-t-slow) var(--rb-ease-out);
}
.rb-nav__link:hover,.rb-nav__link:focus-visible{color:var(--rb-ivory)}
.rb-nav__link:hover::after,.rb-nav__link:focus-visible::after{transform:scaleX(1);transform-origin:left}
.rb-nav__item.current-menu-item .rb-nav__link,
.rb-nav__item.current_page_item .rb-nav__link,
.rb-nav__item.current-menu-ancestor .rb-nav__link{color:var(--rb-ivory)}
.rb-nav__item.current-menu-item .rb-nav__link::after,
.rb-nav__item.current_page_item .rb-nav__link::after{transform:scaleX(1);background:var(--rb-gold);opacity:.55}

.rb-header__cta{display:flex;align-items:center;gap:var(--rb-sp-4);flex:none}

/* Hambúrguer */
.rb-burger{
  display:none;
  position:relative;
  width:44px;height:44px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-r-xs);
  transition:border-color var(--rb-t) var(--rb-ease),background-color var(--rb-t) var(--rb-ease);
}
.rb-burger:hover{border-color:var(--rb-line-gold)}
.rb-burger__bars{position:relative;width:20px;height:12px}
.rb-burger__bars span{
  position:absolute;
  left:0;
  width:100%;height:1px;
  background:var(--rb-ivory);
  transition:transform var(--rb-t) var(--rb-ease),opacity var(--rb-t-fast) var(--rb-ease),width var(--rb-t) var(--rb-ease);
}
.rb-burger__bars span:nth-child(1){top:0}
.rb-burger__bars span:nth-child(2){top:50%;transform:translateY(-50%);width:70%}
.rb-burger__bars span:nth-child(3){bottom:0}
.rb-burger[aria-expanded="true"] .rb-burger__bars span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.rb-burger[aria-expanded="true"] .rb-burger__bars span:nth-child(2){opacity:0;width:0}
.rb-burger[aria-expanded="true"] .rb-burger__bars span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* Painel mobile */
.rb-menu{
  position:fixed;
  inset:0;
  z-index:var(--rb-z-menu);
  display:flex;
  flex-direction:column;
  padding:calc(var(--rb-header-h) + 1.5rem) var(--rb-gutter) 2.5rem;
  background:rgba(9,10,12,.97);
  -webkit-backdrop-filter:blur(22px);
  backdrop-filter:blur(22px);
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:opacity var(--rb-t) var(--rb-ease),transform var(--rb-t) var(--rb-ease),visibility 0s linear var(--rb-t);
  overflow-y:auto;
  overscroll-behavior:contain;
}
.rb-menu.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.rb-menu__list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:auto}
.rb-menu__item{border-bottom:1px solid var(--rb-line);opacity:0;transform:translateY(14px)}
.rb-menu.is-open .rb-menu__item{animation:rb-fade-up 520ms var(--rb-ease-out) forwards}
.rb-menu.is-open .rb-menu__item:nth-child(1){animation-delay:60ms}
.rb-menu.is-open .rb-menu__item:nth-child(2){animation-delay:105ms}
.rb-menu.is-open .rb-menu__item:nth-child(3){animation-delay:150ms}
.rb-menu.is-open .rb-menu__item:nth-child(4){animation-delay:195ms}
.rb-menu.is-open .rb-menu__item:nth-child(5){animation-delay:240ms}
.rb-menu.is-open .rb-menu__item:nth-child(6){animation-delay:285ms}
.rb-menu.is-open .rb-menu__item:nth-child(7){animation-delay:330ms}
.rb-menu__link{
  display:flex;
  align-items:baseline;
  gap:1rem;
  padding:1.15rem .25rem;
  font-family:var(--rb-font-display);
  font-size:clamp(1.75rem,1.2rem + 3vw,2.5rem);
  font-weight:300;
  color:var(--rb-ivory);
  letter-spacing:-.01em;
  transition:color var(--rb-t) var(--rb-ease),padding-left var(--rb-t) var(--rb-ease);
}
.rb-menu__link:hover{color:var(--rb-gold-light);padding-left:.75rem}
.rb-menu__idx{font-family:var(--rb-font-ui);font-size:var(--rb-fs-micro);letter-spacing:.2em;color:var(--rb-gold);flex:none}
.rb-menu__foot{padding-top:2.5rem;display:flex;flex-direction:column;gap:1.5rem}
.rb-menu__social{display:flex;gap:1.25rem}

/* ============================ 10. FOOTER ================================= */
.rb-footer{
  position:relative;
  margin-top:var(--rb-section-y);
  padding-top:clamp(3.5rem,2rem + 5vw,6.5rem);
  border-top:1px solid var(--rb-line);
  background:linear-gradient(180deg,rgba(9,10,12,0),rgba(9,10,12,.9));
}
.rb-footer__top{
  display:grid;
  grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(0,1fr));
  gap:clamp(2rem,1rem + 3vw,4rem);
  padding-bottom:clamp(3rem,2rem + 3vw,5rem);
}
.rb-footer__brand .rb-brand{margin-bottom:var(--rb-sp-5)}
.rb-footer__desc{
  font-size:var(--rb-fs-sm);
  color:var(--rb-silver);
  line-height:1.75;
  max-width:34ch;
  font-weight:300;
}
.rb-footer__col h3{
  font-family:var(--rb-font-ui);
  font-size:var(--rb-fs-micro);
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--rb-gold);
  margin-bottom:var(--rb-sp-5);
}
.rb-footer__list{display:flex;flex-direction:column;gap:.85rem}
.rb-footer__list a{
  font-size:var(--rb-fs-sm);
  color:var(--rb-silver);
  font-weight:300;
  transition:color var(--rb-t) var(--rb-ease),transform var(--rb-t) var(--rb-ease);
  display:inline-block;
}
.rb-footer__list a:hover{color:var(--rb-ivory);transform:translateX(3px)}

.rb-social{display:flex;gap:.65rem;margin-top:var(--rb-sp-6)}
.rb-social__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;height:42px;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-r-xs);
  color:var(--rb-silver);
  transition:all var(--rb-t) var(--rb-ease);
}
.rb-social__link svg{width:16px;height:16px}
.rb-social__link:hover{color:var(--rb-gold);border-color:var(--rb-line-gold);transform:translateY(-2px)}

.rb-footer__bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:var(--rb-sp-4);
  padding-block:1.75rem;
  border-top:1px solid var(--rb-line);
}
.rb-footer__copy{font-size:var(--rb-fs-micro);color:var(--rb-silver-dim);letter-spacing:.05em}
.rb-footer__sign{
  font-family:var(--rb-font-display);
  font-size:1.05rem;
  font-style:italic;
  font-weight:300;
  color:var(--rb-silver);
  letter-spacing:.01em;
}
.rb-footer__sign em{color:var(--rb-gold-light);font-style:italic}

/* ====================== 11. GALERIA E LIGHTBOX =========================== */
.rb-gallery{display:grid;gap:clamp(.75rem,.5rem + 1vw,1.5rem)}
.rb-gallery--mosaic{grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(0,auto)}
.rb-work{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--rb-r-sm);
  background:var(--rb-graphite);
  cursor:pointer;
  isolation:isolate;
}
.rb-work__img{
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:4/5;
  transition:transform 1200ms var(--rb-ease-out),filter 700ms var(--rb-ease);
  filter:saturate(.92) contrast(1.02);
}
.rb-work--wide .rb-work__img{aspect-ratio:16/10}
.rb-work--tall .rb-work__img{aspect-ratio:3/4}
.rb-work--square .rb-work__img{aspect-ratio:1/1}
.rb-work::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(9,10,12,0) 38%,rgba(9,10,12,.55) 72%,rgba(9,10,12,.92) 100%);
  opacity:0;
  transition:opacity var(--rb-t-slow) var(--rb-ease);
}
.rb-work:hover .rb-work__img,.rb-work:focus-visible .rb-work__img{transform:scale(1.045);filter:saturate(1) contrast(1.04)}
.rb-work:hover::after,.rb-work:focus-visible::after{opacity:1}
.rb-work__info{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  padding:clamp(1.25rem,1rem + 1vw,2rem);
  transform:translateY(12px);
  opacity:0;
  transition:opacity var(--rb-t-slow) var(--rb-ease),transform var(--rb-t-slow) var(--rb-ease-out);
}
.rb-work:hover .rb-work__info,.rb-work:focus-visible .rb-work__info{opacity:1;transform:none}
.rb-work__cat{
  font-size:var(--rb-fs-micro);
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--rb-gold);
  display:block;
  margin-bottom:.5rem;
}
.rb-work__title{font-size:var(--rb-fs-h4);color:var(--rb-ivory);margin-bottom:.35rem}
.rb-work__tech{font-size:var(--rb-fs-meta);color:var(--rb-silver);display:block;margin-bottom:.9rem}
.rb-work__more{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:var(--rb-fs-micro);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--rb-ivory);
  border-bottom:1px solid var(--rb-line-gold);
  padding-bottom:3px;
}
/* Moldura interna sutil — trata o desenho como obra */
.rb-work__frame{
  position:absolute;
  inset:10px;
  z-index:1;
  border:1px solid rgba(244,241,234,.14);
  pointer-events:none;
  opacity:0;
  transform:scale(1.01);
  transition:opacity var(--rb-t-slow) var(--rb-ease),transform var(--rb-t-slow) var(--rb-ease-out);
}
.rb-work:hover .rb-work__frame,.rb-work:focus-visible .rb-work__frame{opacity:1;transform:none}

/* Lightbox */
.rb-lightbox{
  position:fixed;
  inset:0;
  z-index:var(--rb-z-modal);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(1rem,4vw,4rem);
  background:rgba(6,7,8,.96);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  transition:opacity var(--rb-t) var(--rb-ease),visibility 0s linear var(--rb-t);
}
.rb-lightbox.is-open{opacity:1;visibility:visible;transition-delay:0s}
.rb-lightbox__stage{
  position:relative;
  max-width:min(1200px,100%);
  max-height:100%;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  transform:scale(.985);
  transition:transform var(--rb-t-slow) var(--rb-ease-out);
}
.rb-lightbox.is-open .rb-lightbox__stage{transform:none}
.rb-lightbox__img{
  max-height:min(74vh,900px);
  width:auto;
  margin-inline:auto;
  object-fit:contain;
  border:1px solid var(--rb-line);
  box-shadow:var(--rb-shadow-4);
}
.rb-lightbox__cap{text-align:center}
.rb-lightbox__cap h3{font-size:var(--rb-fs-h4);margin-bottom:.3rem}
.rb-lightbox__close,.rb-lightbox__nav{
  position:absolute;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;height:48px;
  border:1px solid var(--rb-line);
  border-radius:var(--rb-r-xs);
  color:var(--rb-ivory);
  background:rgba(9,10,12,.6);
  transition:all var(--rb-t) var(--rb-ease);
}
.rb-lightbox__close{top:-64px;right:0}
.rb-lightbox__nav--prev{left:-68px;top:50%;transform:translateY(-50%)}
.rb-lightbox__nav--next{right:-68px;top:50%;transform:translateY(-50%)}
.rb-lightbox__close:hover,.rb-lightbox__nav:hover{border-color:var(--rb-line-gold);color:var(--rb-gold)}
.rb-lightbox__close svg,.rb-lightbox__nav svg{width:16px;height:16px}

/* Cursor personalizado da galeria (somente ponteiro fino) */
.rb-cursor{
  position:fixed;
  top:0;left:0;
  z-index:var(--rb-z-modal);
  width:78px;height:78px;
  margin:-39px 0 0 -39px;
  border:1px solid var(--rb-line-gold);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:var(--rb-fs-micro);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--rb-gold-light);
  background:rgba(9,10,12,.42);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:scale(.6);
  transition:opacity 260ms var(--rb-ease),transform 260ms var(--rb-ease-out),visibility 0s linear 260ms;
  will-change:transform;
}
.rb-cursor.is-active{opacity:1;visibility:visible;transform:scale(1);transition-delay:0s}

/* =========================== 12. ACCORDION =============================== */
.rb-acc{border-top:1px solid var(--rb-line)}
.rb-acc__item{border-bottom:1px solid var(--rb-line)}
.rb-acc__btn{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  width:100%;
  padding:1.6rem .25rem;
  text-align:left;
  font-family:var(--rb-font-display);
  font-size:var(--rb-fs-h4);
  font-weight:400;
  color:var(--rb-ivory);
  transition:color var(--rb-t) var(--rb-ease);
}
.rb-acc__btn:hover{color:var(--rb-gold-light)}
.rb-acc__sign{position:relative;flex:none;width:16px;height:16px;margin-top:.55em}
.rb-acc__sign::before,.rb-acc__sign::after{
  content:"";
  position:absolute;
  inset:50% 0 auto;
  height:1px;
  background:var(--rb-gold);
  transition:transform var(--rb-t-slow) var(--rb-ease-out),opacity var(--rb-t) var(--rb-ease);
}
.rb-acc__sign::after{transform:rotate(90deg)}
.rb-acc__item.is-open .rb-acc__sign::after{transform:rotate(0deg);opacity:0}
.rb-acc__panel{
  overflow:hidden;
  height:0;
  transition:height var(--rb-t-slow) var(--rb-ease-out);
}
.rb-acc__inner{padding:0 3rem 1.9rem .25rem;font-size:var(--rb-fs-sm);line-height:1.78;color:var(--rb-silver);max-width:72ch}
.rb-acc__inner p{margin-bottom:1rem}

/* ============ 13. ESTADOS (loading, vazio, erro, sucesso) ================ */
.rb-skeleton{
  position:relative;
  overflow:hidden;
  background:rgba(244,241,234,.04);
  border-radius:var(--rb-r-sm);
}
.rb-skeleton::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(244,241,234,.06),transparent);
  animation:rb-shimmer 1600ms infinite;
}
.rb-empty{
  padding:clamp(3rem,2rem + 4vw,5rem) var(--rb-gutter);
  text-align:center;
  border:1px dashed var(--rb-line);
  border-radius:var(--rb-r);
}
.rb-empty__icon{width:40px;height:40px;margin:0 auto var(--rb-sp-5);color:var(--rb-gold);opacity:.6}
.rb-empty__title{font-size:var(--rb-fs-h4);margin-bottom:.6rem}
.rb-empty__text{font-size:var(--rb-fs-sm);color:var(--rb-silver-dim);max-width:44ch;margin-inline:auto}

/* Marcador de conteúdo pendente */
.rb-ph{
  display:inline-block;
  padding:.2em .6em;
  font-family:var(--rb-font-ui);
  font-size:.8em;
  letter-spacing:.08em;
  color:var(--rb-gold);
  background:rgba(198,164,108,.08);
  border:1px dashed var(--rb-line-gold);
  border-radius:var(--rb-r-xs);
}
.rb-ph--media{
  display:grid;
  place-items:center;
  width:100%;
  aspect-ratio:4/5;
  padding:1rem;
  text-align:center;
  color:var(--rb-silver-dim);
  background:
    linear-gradient(135deg,rgba(244,241,234,.02) 25%,transparent 25%,transparent 50%,rgba(244,241,234,.02) 50%,rgba(244,241,234,.02) 75%,transparent 75%) 0 0/16px 16px,
    var(--rb-charcoal);
  border:1px dashed var(--rb-line);
  font-size:var(--rb-fs-micro);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.rb-ph--wide{aspect-ratio:16/10}
.rb-ph--square{aspect-ratio:1/1}

/* ===================== 14. ANIMAÇÕES E REVEAL ============================ */
@keyframes rb-spin{to{transform:rotate(360deg)}}
@keyframes rb-shimmer{100%{transform:translateX(100%)}}
@keyframes rb-fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes rb-draw{to{stroke-dashoffset:0}}
@keyframes rb-scroll-hint{
  0%{transform:translateY(0);opacity:0}
  22%{opacity:1}
  78%{opacity:1}
  100%{transform:translateY(16px);opacity:0}
}

/* Revelação por observador.
   REGRA DE OURO: o conteúdo só pode ser escondido se o JavaScript estiver
   realmente no comando. Sem a classe .rb-js no <html>, nada é ocultado —
   assim uma falha, um bloqueio ou um atraso no script nunca deixa a página
   em branco. A classe é aplicada por um script inline no <head>. */
.rb-js [data-rb-reveal]{
  opacity:0;
  transform:translateY(26px);
  transition:opacity var(--rb-t-reveal) var(--rb-ease-out),transform var(--rb-t-reveal) var(--rb-ease-out);
  will-change:opacity,transform;
}
.rb-js [data-rb-reveal="fade"]{transform:none}
.rb-js [data-rb-reveal="left"]{transform:translateX(-28px)}
.rb-js [data-rb-reveal="right"]{transform:translateX(28px)}
.rb-js [data-rb-reveal="scale"]{transform:scale(.975)}
.rb-js [data-rb-reveal].is-in{opacity:1;transform:none}

/* Rede de segurança: se o script principal não assumir a tempo,
   tudo aparece assim mesmo. Melhor sem animação do que invisível. */
.rb-reveal-all [data-rb-reveal]{opacity:1!important;transform:none!important}
.rb-reveal-all .rb-mask::after{transform:scaleX(0)!important}
.rb-reveal-all .rb-mask__img{transform:none!important}
.rb-reveal-all .rb-line-draw{transform:scaleX(1)!important}
.rb-reveal-all .rb-story__track{transform:scaleY(1)!important}

/* Revelação de imagem por máscara */
.rb-mask{position:relative;overflow:hidden}
.rb-js .rb-mask__img{
  transform:scale(1.10);
  transition:transform 1600ms var(--rb-ease-out);
  will-change:transform;
}
.rb-js .rb-mask::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--rb-obsidian);
  transform-origin:right;
  transition:transform 1200ms var(--rb-ease-out);
  z-index:2;
}
.rb-mask.is-in::after{transform:scaleX(0)}
.rb-mask.is-in .rb-mask__img{transform:none}

/* Linha que se desenha */
.rb-js .rb-line-draw{
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 1400ms var(--rb-ease-out);
}
.rb-line-draw.is-in{transform:scaleX(1)}
.rb-svg-draw path,.rb-svg-draw line,.rb-svg-draw circle{
  stroke-dasharray:var(--rb-len,1200);
  stroke-dashoffset:var(--rb-len,1200);
}
.rb-svg-draw.is-in path,.rb-svg-draw.is-in line,.rb-svg-draw.is-in circle{
  animation:rb-draw 2000ms var(--rb-ease-out) forwards;
}

/* Elevação por perspectiva do mouse */
.rb-tilt{transform-style:preserve-3d;will-change:transform}
.rb-tilt__inner{transform:translateZ(0);transition:transform var(--rb-t-slow) var(--rb-ease-out)}

/* Parallax discreto */
[data-rb-parallax]{will-change:transform}

/* Indicador de scroll */
.rb-scroll-hint{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.85rem;
  font-size:var(--rb-fs-micro);
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--rb-silver-dim);
}
.rb-scroll-hint__track{position:relative;width:1px;height:52px;background:var(--rb-line);overflow:hidden}
.rb-scroll-hint__track::after{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:18px;
  background:var(--rb-gold);
  animation:rb-scroll-hint 2400ms var(--rb-ease) infinite;
}

/* ========================== 15. UTILITÁRIOS ============================== */
.rb-vh{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;border:0;
}
.rb-center{text-align:center}
.rb-relative{position:relative}
.rb-mt-0{margin-top:0}
.rb-mt-4{margin-top:var(--rb-sp-4)}
.rb-mt-5{margin-top:var(--rb-sp-5)}
.rb-mt-6{margin-top:var(--rb-sp-6)}
.rb-mt-7{margin-top:var(--rb-sp-7)}
.rb-mt-8{margin-top:var(--rb-sp-8)}
.rb-full{width:100%}
.rb-no-wrap{white-space:nowrap}

/* Breadcrumbs */
.rb-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;font-size:var(--rb-fs-micro);letter-spacing:.1em;color:var(--rb-silver-dim);margin-bottom:var(--rb-sp-6)}
.rb-crumbs a{color:var(--rb-silver-dim);transition:color var(--rb-t) var(--rb-ease)}
.rb-crumbs a:hover{color:var(--rb-gold)}
.rb-crumbs__sep{opacity:.5}
.rb-crumbs [aria-current]{color:var(--rb-silver)}

/* Paginação */
.rb-pager{display:flex;justify-content:center;gap:.5rem;margin-top:var(--rb-sp-8)}
.rb-pager .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:44px;padding:0 .75rem;
  border:1px solid var(--rb-line);border-radius:var(--rb-r-xs);
  font-size:var(--rb-fs-meta);letter-spacing:.08em;color:var(--rb-silver);
  transition:all var(--rb-t) var(--rb-ease);
}
.rb-pager .page-numbers:hover{border-color:var(--rb-line-gold);color:var(--rb-gold)}
.rb-pager .page-numbers.current{background:var(--rb-gold);border-color:var(--rb-gold);color:#0B0C0E;font-weight:600}

/* ================ 16. ACESSIBILIDADE E REDUCED MOTION ==================== */
:focus-visible{outline:2px solid var(--rb-gold);outline-offset:3px;border-radius:var(--rb-r-xs)}
.rb-btn:focus-visible{outline-offset:4px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .rb-js [data-rb-reveal],[data-rb-reveal]{opacity:1!important;transform:none!important}
  .rb-js .rb-mask::after,.rb-mask::after{transform:scaleX(0)!important}
  .rb-js .rb-mask__img,.rb-mask__img{transform:none!important}
  .rb-js .rb-line-draw,.rb-line-draw{transform:scaleX(1)!important}
  .rb-story__track{transform:none!important}
  .rb-bg::after{display:none}
  .rb-cursor{display:none}
}
@media (prefers-contrast:more){
  :root{--rb-silver:#B8BDC4;--rb-line:rgba(244,241,234,.2);--rb-line-strong:rgba(244,241,234,.32)}
}


/* ==========================================================================
   HEADER SOBRE SUPERFÍCIE CLARA
   As páginas Presente e Journal usam fundo marfim. O header é fixo e
   transparente, então precisa inverter o contraste nessas páginas —
   senão o menu simplesmente desaparece.
   ========================================================================== */
.rb-light .rb-brand__name{color:#15171A}
.rb-light .rb-brand:hover .rb-brand__name{color:#7E6431}
.rb-light .rb-brand__dot{background:#7E6431}

.rb-light .rb-nav__link{color:#4E535A}
.rb-light .rb-nav__link:hover,
.rb-light .rb-nav__link:focus-visible,
.rb-light .rb-nav__link:hover,
.rb-light .rb-nav__link:focus-visible{color:#15171A}
.rb-light .rb-nav__item.current-menu-item .rb-nav__link,
.rb-light .rb-nav__item.current_page_item .rb-nav__link,
.rb-light .rb-nav__item.current-menu-item .rb-nav__link,
.rb-light .rb-nav__item.current_page_item .rb-nav__link{color:#15171A}
.rb-light .rb-nav__link::after{background:#7E6431}

.rb-light .rb-btn--gold{--_bg:#7E6431;--_fg:#F7F3EA;--_bd:#7E6431}
.rb-light .rb-btn--gold:hover{background:#6B5427;border-color:#6B5427}

.rb-light .rb-burger{border-color:rgba(21,23,26,.16)}
.rb-light .rb-burger:hover{border-color:rgba(150,119,63,.45)}
.rb-light .rb-burger__bars span{background:#15171A}
/* Quando o painel mobile está aberto o fundo volta a ser escuro */
.rb-light .rb-burger[aria-expanded="true"] .rb-burger__bars span{background:var(--rb-ivory)}

/* Barra sólida ao rolar: marfim translúcido, não preto */
.rb-light .rb-header.is-scrolled{
  background:rgba(240,235,225,.86);
  border-bottom-color:rgba(21,23,26,.10);
}

/* O botão "pular para o conteúdo" também precisa contrastar */
.rb-light .rb-skip{background:#15171A;color:#F7F3EA}


/* ==========================================================================
   BARRA DE ADMINISTRAÇÃO DO WORDPRESS
   Quando você está logado, o WordPress insere uma barra fixa de 32px no topo.
   O header do site também é fixo — sem este ajuste, um cobre o outro.
   Visitantes não veem a barra e não são afetados.
   ========================================================================== */
body.admin-bar .rb-header{top:32px}
body.admin-bar .rb-menu{top:32px}
body.admin-bar{--rb-adminbar:32px}
body.admin-bar .rb-hero,
body.admin-bar .rb-wait{scroll-margin-top:32px}

@media screen and (max-width:782px){
  body.admin-bar .rb-header{top:46px}
  body.admin-bar .rb-menu{top:46px}
}
/* Abaixo de 600px a barra do WordPress deixa de ser fixa e rola com a página */
@media screen and (max-width:600px){
  body.admin-bar .rb-header{top:0}
  body.admin-bar .rb-menu{top:0}
}


/* ==========================================================================
   ATMOSFERA DE GRAFITE
   Marcas de construção de desenho espalhadas pela página: círculo de
   proporção, hachura, eixos, gesto de mão. Opacidade entre 0,02 e 0,08.
   Não são ilustração colada no fundo — são resíduo de processo.
   ========================================================================== */
.rb-atmos{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  color:var(--rb-ivory);
}
.rb-atmos__svg{position:absolute;display:block}

/* Círculo de proporção — o primeiro gesto de qualquer estudo. */
.rb-atmos__circulo{
  top:-18%;right:-14%;
  width:min(66vw,820px);
  aspect-ratio:1;
  color:var(--rb-gold);
  opacity:.055;
}
/* Hachura — a sombra sendo construída. */
.rb-atmos__hachura{
  left:-5%;bottom:8%;
  width:min(32vw,440px);
  height:min(26vw,330px);
  opacity:.042;
}
/* Gesto — um movimento de mão atravessando a seção. */
.rb-atmos__gesto{
  left:-8%;bottom:-6%;
  width:118%;
  height:clamp(140px,22vw,300px);
  opacity:.06;
  color:var(--rb-gold);
}
.rb-atmos__eixo{
  left:0;top:38%;
  width:100%;height:1px;
  opacity:.05;
}
.rb-atmos__grade{
  right:2%;top:8%;
  width:min(34vw,460px);
  height:min(52vw,620px);
  opacity:.032;
}
.rb-atmos__final{
  left:0;top:32%;
  width:100%;
  height:clamp(120px,18vw,220px);
  opacity:.05;
  color:var(--rb-gold);
}

/* Marcas que realmente se desenham durante o scroll. */
.rb-js .rb-atmos__traco{stroke-dashoffset:1;transition:stroke-dashoffset 2800ms var(--rb-ease-out)}
.rb-atmos.is-in .rb-atmos__traco{stroke-dashoffset:0}
.rb-reveal-all .rb-atmos__traco{stroke-dashoffset:0!important}

/* As demais marcas apenas surgem, sem chamar atenção. */
.rb-js .rb-atmos__circulo,
.rb-js .rb-atmos__hachura,
.rb-js .rb-atmos__grade,
.rb-js .rb-atmos__eixo{opacity:0;transition:opacity 2200ms var(--rb-ease)}
.rb-atmos.is-in .rb-atmos__circulo{opacity:.055}
.rb-atmos.is-in .rb-atmos__hachura{opacity:.042}
.rb-atmos.is-in .rb-atmos__grade{opacity:.032}
.rb-atmos.is-in .rb-atmos__eixo{opacity:.05}
.rb-reveal-all .rb-atmos__circulo{opacity:.055!important}
.rb-reveal-all .rb-atmos__hachura{opacity:.042!important}
.rb-reveal-all .rb-atmos__grade{opacity:.032!important}
.rb-reveal-all .rb-atmos__eixo{opacity:.05!important}


/* ==========================================================================
   PARTÍCULAS DE GRAFITE
   Poucas, lentas, cinzas. Resíduo suspenso no ar de um ateliê —
   não estrelas, não tecnologia. Só existem no desktop.
   ========================================================================== */
.rb-poeira{
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0;
  transition:opacity 3000ms var(--rb-ease);
}
.rb-poeira.is-on{opacity:1}


/* ==========================================================================
   PROFUNDIDADE PELO MOUSE
   Deslocamento físico de poucos pixels. Nunca rotação exagerada.
   ========================================================================== */
[data-rb-depth]{will-change:transform}


/* ==========================================================================
   RODAPÉ — o fim memorável
   ========================================================================== */
.rb-footer{position:relative;overflow:hidden;isolation:isolate}
/* A palavra fica meio afundada na base: vê-se o topo das letras, não a palavra. */
.rb-footer__word{
  position:absolute;
  left:50%;bottom:clamp(-3.5rem,-4vw,-1.5rem);
  transform:translateX(-50%);
  z-index:0;
  font-family:var(--rb-font-display);
  font-size:clamp(4rem,12vw,14rem);
  font-weight:300;
  letter-spacing:.14em;
  line-height:.85;
  color:var(--rb-ivory);
  opacity:.026;
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}
.rb-footer > *:not(.rb-footer__word){position:relative;z-index:1}


/* ==========================================================================
   MOVIMENTO REDUZIDO — versão estática, ainda elegante
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  .rb-poeira{display:none}
  .rb-atmos__traco{stroke-dashoffset:0!important}
  .rb-js .rb-atmos__circulo{opacity:.055!important}
  .rb-js .rb-atmos__hachura{opacity:.042!important}
  .rb-js .rb-atmos__grade{opacity:.032!important}
  .rb-js .rb-atmos__eixo{opacity:.05!important}
  [data-rb-depth]{transform:none!important}
}
