/* ==========================================================================
   Barbara & Benjamin — base visual única para o site e para o admin.
   Fontes do save the date, hospedadas aqui mesmo:
     Cormorant SC  -> SAVE / DATE e o monograma
     Crimson Pro   -> todo o resto do texto
     Ephesis       -> o "the" manuscrito
   A fonte original do "the" no convite é a Slight (Up Up Creative), paga.
   Tendo a licença, basta salvar o arquivo como fonts/script-custom.woff2
   e trocar o src do @font-face "Script" abaixo.
   ========================================================================== */

@font-face{font-family:"Cormorant SC";font-style:normal;font-weight:400;font-display:swap;
  src:url(./fonts/cormorant-sc-latin-ext-400-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Cormorant SC";font-style:normal;font-weight:400;font-display:swap;
  src:url(./fonts/cormorant-sc-latin-400-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Crimson Pro";font-style:normal;font-weight:400;font-display:swap;
  src:url(./fonts/crimson-pro-latin-ext-400-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Crimson Pro";font-style:normal;font-weight:400;font-display:swap;
  src:url(./fonts/crimson-pro-latin-400-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Crimson Pro";font-style:normal;font-weight:500;font-display:swap;
  src:url(./fonts/crimson-pro-latin-ext-500-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Crimson Pro";font-style:normal;font-weight:500;font-display:swap;
  src:url(./fonts/crimson-pro-latin-500-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Crimson Pro";font-style:italic;font-weight:400;font-display:swap;
  src:url(./fonts/crimson-pro-latin-ext-400-italic.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Crimson Pro";font-style:italic;font-weight:400;font-display:swap;
  src:url(./fonts/crimson-pro-latin-400-italic.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Script";font-style:normal;font-weight:400;font-display:swap;
  src:url(./fonts/ephesis-latin-ext-400-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Script";font-style:normal;font-weight:400;font-display:swap;
  src:url(./fonts/ephesis-latin-400-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  /* cor — contraste sobre branco: ink 16:1 · body 9,8:1 · soft 5,4:1 */
  --ink:#12150e;
  --body:#3a4034;
  --soft:#5e6650;
  --line:#e0e4d8;
  --line-strong:#b6c0a6;
  --white:#fff;
  --sage:#f3f5ee;
  --sage-deep:#e7ebdd;
  --olive:#434e37;
  --olive-dark:#333d29;
  --danger:#8c3b1e;

  /* tipo */
  --display:"Cormorant SC",Georgia,serif;
  --script:"Script",cursive;
  --ui:"Crimson Pro",Georgia,serif;

  /* espaço — escala única, sem números soltos no CSS */
  --s1:6px; --s2:12px; --s3:18px; --s4:26px; --s5:38px;
  --s6:56px; --s7:80px; --s8:112px;

  --wrap:1120px;
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--white);color:var(--body);
  font-family:var(--ui);font-size:19px;font-weight:400;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
button{font:inherit;color:inherit}
a{color:var(--ink)}
:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

h1,h2,h3,h4{font-family:var(--ui);font-weight:400;color:var(--ink);margin:0;line-height:1.14}

/* monograma B | B — mesma marca nas duas páginas */
.monogram{
  display:inline-flex;align-items:center;gap:.34em;
  font-family:var(--display);font-size:22px;color:var(--ink);line-height:1;letter-spacing:0;
}
.monogram i{
  display:block;width:1px;height:1.15em;background:currentColor;
  font-style:normal;opacity:.9;
}

/* botões */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);
  min-height:46px;padding:11px 24px;border:1.5px solid var(--olive);border-radius:999px;
  background:var(--olive);color:#fff;cursor:pointer;font-size:17px;text-decoration:none;white-space:nowrap;
  transition:background .18s,border-color .18s;
}
/* display: em classe vence o atributo hidden — precisa ser dito explicitamente */
.btn[hidden]{display:none}
.btn:hover{background:var(--olive-dark);border-color:var(--olive-dark)}
.btn:disabled{opacity:.5;cursor:default}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--sage-deep);color:var(--ink)}
.btn.danger{border-color:var(--danger);background:transparent;color:var(--danger)}
.btn.sm{min-height:36px;padding:7px 15px;font-size:16px}

/* campos */
.field{display:grid;gap:var(--s1);margin-bottom:var(--s3)}
.field label{font-size:16px;color:var(--body)}
.field input,.field textarea,.field select{
  width:100%;padding:12px 14px;border:1px solid var(--line-strong);background:var(--white);
  color:var(--ink);font:inherit;border-radius:2px;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--olive);outline:none}
.field textarea{min-height:108px;resize:vertical}
