/* Solutions Financières Global — shared styles for the homepage blocks (front and editor) */

@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(fonts/archivo-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(fonts/archivo-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.sfg-block {
  --sfg-ink: #000000;
  --sfg-muted: #4d4b46;
  --sfg-line: #dcd8cf;
  --sfg-accent: #86754d;   /* doré foncé : surtitres, accents sur fond clair */
  --sfg-gold: #9c895e;     /* doré sur fond foncé */
  --sfg-blue: #00558c;
  --sfg-navy: #0e1a2e;
  --sfg-surface: #efeeea;
  --sfg-font: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --sfg-ease: cubic-bezier(.2, .7, .2, 1);
  position: relative;
  box-sizing: border-box;
  font-family: var(--sfg-font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--sfg-ink);
}
.sfg-block *,
.sfg-block *::before,
.sfg-block *::after { box-sizing: border-box; }
.sfg-block :focus-visible { outline: 2px solid var(--sfg-accent); outline-offset: 3px; }
/* That frame is for keyboard users. Some browsers still draw it after a mouse click, so once the mouse
   or a finger is used it waits for the next Tab (class sfg-pointer on <html>, lib/blocks.php). */
.sfg-pointer .sfg-block :focus { outline: none; }

/* :where() keeps these defaults weaker than each block's own rules, whatever the stylesheet order
   (still stronger than the theme's bare h1/h2/p rules). */
.sfg-block :where(h1, h2, h3) {
  margin: 0;
  font-family: var(--sfg-font);
  font-weight: 400;
  letter-spacing: -.005em;
  line-height: 1.1;
  text-wrap: balance;
  color: var(--sfg-navy);
}
.sfg-block :where(h2) { font-size: clamp(36px, 3.6vw, 52px); }
.sfg-block :where(p) { margin: 0; }
/* The theme sets Montserrat 300 on every p, li and button */
.sfg-block :where(p, li, button) { font-family: var(--sfg-font); font-weight: 400; }

.sfg-eyebrow {
  display: block;
  font-family: var(--sfg-font);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--sfg-accent);
}

/* Buttons */
.sfg-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--sfg-font);
  font-size: 12.5px;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: none;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}
.sfg-btn:hover,
.sfg-btn:focus { text-decoration: none; }
.sfg-btn__arr { display: inline-block; transition: transform .3s var(--sfg-ease); }
.sfg-btn:hover .sfg-btn__arr { transform: translateX(5px); }

.sfg-btn--line {
  padding: 8px 0 9px;
  color: #ffffff;
  border-bottom: 1px solid var(--sfg-gold);
  transition: color .3s, border-color .3s;
}
.sfg-btn--line:hover,
.sfg-btn--line:focus { color: var(--sfg-gold); border-color: var(--sfg-gold); }
.sfg-btn--dark { color: #000000; border-bottom-color: var(--sfg-accent); }
.sfg-btn--dark:hover,
.sfg-btn--dark:focus { color: var(--sfg-accent); border-color: var(--sfg-accent); }

.sfg-btn--box {
  padding: 14px 22px;
  color: var(--sfg-navy);
  border: 1px solid var(--sfg-navy);
  transition: background-color .3s, color .3s;
}
.sfg-btn--box:hover,
.sfg-btn--box:focus { background: var(--sfg-navy); color: #ffffff; }

/* Title lines that rise into view */
.sfg-line { display: block; overflow: hidden; padding-bottom: .06em; }
.sfg-line > span { display: block; }

/* Thin vertical gold line with a drop running down it */
.sfg-drip {
  position: relative;
  display: block;
  width: 1px;
  height: 70px;
  overflow: hidden;
  background: rgba(134, 117, 77, .2);
  transform: scaleX(.5);
}
.sfg-drip::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 100%;
  background: var(--sfg-accent);
  animation: sfg-drip-line 2.4s cubic-bezier(.6, 0, .3, 1) infinite;
}
@keyframes sfg-drip-line { 0% { transform: translateY(-100%); } 55%, 100% { transform: translateY(0); } }

@keyframes sfg-fade { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes sfg-rise { from { transform: translateY(105%); } to { transform: none; } }

/* Editor: blocks are static (no entrance animations, no pinning) */
.editor-styles-wrapper .sfg-block,
.editor-styles-wrapper .sfg-block * { animation: none !important; }

@media (prefers-reduced-motion: reduce) {
  .sfg-block,
  .sfg-block *,
  .sfg-block *::before,
  .sfg-block *::after { animation: none !important; transition: none !important; }
}
