/* ═══════════════════════════════════════════
   SOLVANA CREATIVE — main.css
   Palette officielle :
     Vert Nuit    #0B2D20  fond hero/nav/footer
     Vert Forêt   #1A5C3A  survol, liens actifs
     Vert Menthe  #5BC4A2  tags, icônes légères
     Or Solvana   #BFA06A  CTA, accents, badges
     Crème        #F4EFE6  fond général
     Brun Encre   #3A3530  texte sur crème
     Sable Doux   #E2DDD4  bordures, séparateurs
═══════════════════════════════════════════ */

/* ── Polices locales ── */
@font-face {
  font-family: 'Agency';
  src: url('../assets/fonts/Agency.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Avalon';
  src: url('../assets/fonts/Avalon.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ── Tokens & Reset ── */
:root {
  --ink:        #0B2D20;
  --forest:     #1A5C3A;
  --forest-md:  #1A5C3A;
  --forest-lt:  #5BC4A2;
  --gold:       #BFA06A;
  --gold-lt:    #d4b87a;
  --cream:      #F4EFE6;
  --cream-lt:   #F4EFE6;
  --brun:       #3A3530;
  --sable:      #E2DDD4;
  --agency:     'Agency', sans-serif;
  --avalon:     'Avalon', Georgia, serif;
  --serif:      'Playfair Display', Georgia, serif;
  --serif-disp: 'DM Serif Display', Georgia, serif;
  --sans:       'DM Sans', system-ui, sans-serif;
  --ease-out:   cubic-bezier(.16,1,.3,1);
  --ease-in:    cubic-bezier(.7,0,.84,0);
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth; font-size:16px }
body {
  font-family:var(--sans);
  background:var(--ink);
  color:var(--cream);
  overflow-x:hidden;
  cursor:none;
}
img { display:block; max-width:100% }
a { text-decoration:none; color:inherit }
ul,ol { list-style:none }
button { cursor:none; border:none; background:none; font:inherit }

/* ── Cursor ── */
#cur-dot,#cur-ring {
  position:fixed; top:0; left:0;
  pointer-events:none; z-index:9999;
  border-radius:50%;
  transform:translate(-50%,-50%);
  will-change:transform;
}
#cur-dot {
  width:8px; height:8px;
  background:var(--gold);
  transition:width .2s,height .2s,background .2s;
}
#cur-ring {
  width:40px; height:40px;
  border:1px solid rgba(191,160,106,.4);
  transition:width .25s var(--ease-out),height .25s var(--ease-out),border-color .25s,opacity .25s;
}
body.hovered #cur-dot  { width:14px; height:14px; background:var(--gold-lt) }
body.hovered #cur-ring { width:60px; height:60px; opacity:.3 }
body.clicking #cur-dot { width:6px; height:6px }

/* ── Navigation ── */
#nav {
  position:fixed; top:0; left:0; right:0;
  z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:2rem 4rem;
  transition:background .5s,padding .5s,backdrop-filter .5s;
}
#nav.solid {
  background:rgba(11,45,32,.92);
  backdrop-filter:blur(18px);
  padding:1.2rem 4rem;
  border-bottom:1px solid rgba(191,160,106,.15);
}
.nav-logo {
  display:flex; align-items:baseline; gap:.35em;
  text-decoration:none;
}
.nav-logo .logo-solvana {
  font-family:var(--agency);
  font-size:1.25rem;
  letter-spacing:.12em;
  color:var(--cream);
  font-weight:normal;
}
.nav-logo .logo-creative {
  font-family:var(--avalon);
  font-size:1.1rem;
  font-style:normal;
  color:var(--gold);
  font-weight:normal;
  letter-spacing:.04em;
}
.nav-logo img {
  height:36px; width:auto; display:block;
  filter:brightness(0) invert(1);
  transition:opacity .3s;
}
.nav-logo img:hover { opacity:.8 }
.nav-menu { display:flex; align-items:center; gap:2.8rem }
.nav-menu a {
  font-size:.78rem; font-weight:400;
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(244,239,230,.6);
  position:relative;
  transition:color .3s;
}
.nav-menu a::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:1px; background:var(--gold);
  transition:width .35s var(--ease-out);
}
.nav-menu a:hover { color:var(--cream) }
.nav-menu a:hover::after { width:100% }
.nav-cta-pill {
  display:inline-flex; align-items:center; gap:.6rem;
  background:transparent;
  border:1px solid rgba(191,160,106,.5);
  color:var(--gold) !important;
  padding:.6rem 1.4rem;
  font-size:.72rem !important;
  letter-spacing:.14em !important;
  border-radius:2px;
  transition:background .3s,border-color .3s,color .3s !important;
}
.nav-cta-pill::after { display:none !important }
.nav-cta-pill:hover {
  background:var(--gold) !important;
  border-color:var(--gold) !important;
  color:var(--ink) !important;
}
.burger {
  display:none; flex-direction:column; gap:6px; padding:4px;
}
.burger span {
  display:block; width:22px; height:1.5px;
  background:var(--cream);
  transform-origin:center;
  transition:.35s var(--ease-out);
}

/* ── Mobile overlay ── */
#mob-overlay {
  position:fixed; inset:0; z-index:490;
  background:var(--ink);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:2.5rem;
  opacity:0; pointer-events:none;
  transition:opacity .4s var(--ease-out);
}
#mob-overlay.open { opacity:1; pointer-events:all }
#mob-overlay a {
  font-family:var(--serif);
  font-size:clamp(2rem,6vw,3.5rem);
  font-style:italic;
  color:var(--cream);
  transition:color .3s;
}
#mob-overlay a:hover { color:var(--gold) }
#mob-overlay .mob-loc {
  font-family:var(--sans);
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(244,239,230,.3);
  margin-top:1rem;
}

/* ── Hero ── */
#hero {
  min-height:100svh;
  display:grid;
  grid-template-rows:1fr auto;
  position:relative;
  overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 55% 65% at 68% 35%,rgba(26,92,58,.5) 0%,transparent 68%),
    radial-gradient(ellipse 40% 55% at 15% 75%,rgba(191,160,106,.07) 0%,transparent 60%),
    var(--ink);
}
.hero-grain {
  position:absolute; inset:0; opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='f'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  pointer-events:none;
}
.hero-line {
  position:absolute; top:0; right:22%;
  width:1px; height:100%;
  background:linear-gradient(to bottom,transparent,rgba(191,160,106,.18) 40%,rgba(191,160,106,.08) 70%,transparent);
  pointer-events:none;
}
.hero-line2 {
  position:absolute; top:0; right:38%;
  width:1px; height:100%;
  background:linear-gradient(to bottom,transparent,rgba(244,239,230,.04) 50%,transparent);
  pointer-events:none;
}
.hero-content {
  position:relative; z-index:2;
  align-self:end;
  padding:0 4rem 5.5rem;
  max-width:1000px;
}
.hero-pre {
  display:flex; align-items:center; gap:1rem;
  margin-bottom:2rem;
  opacity:0; animation:fadeUp .8s var(--ease-out) .2s forwards;
}
.hero-pre-line { width:32px; height:1px; background:var(--gold); opacity:.6 }
.hero-pre span {
  font-size:.68rem; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); opacity:.8;
}
.hero-h1 {
  font-family:var(--serif);
  font-size:clamp(3.2rem,7.5vw,7rem);
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.01em;
  color:var(--cream);
  margin-bottom:2.2rem;
  opacity:0; animation:fadeUp 1.1s var(--ease-out) .45s forwards;
}
.hero-h1 em { font-style:italic; color:var(--gold-lt) }
.hero-sub {
  font-size:clamp(.95rem,1.5vw,1.2rem);
  font-weight:300;
  color:rgba(244,239,230,.5);
  line-height:1.6;
  max-width:420px;
  margin-bottom:3rem;
  opacity:0; animation:fadeUp .9s var(--ease-out) .75s forwards;
}
.hero-actions {
  display:flex; align-items:center; gap:2rem;
  opacity:0; animation:fadeUp .9s var(--ease-out) 1s forwards;
}
.btn-primary {
  display:inline-flex; align-items:center; gap:.75rem;
  background:var(--gold);
  color:var(--ink);
  font-size:.75rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.95rem 2.2rem;
  border-radius:2px;
  position:relative; overflow:hidden;
  transition:background .35s,color .35s;
}
.btn-primary::before {
  content:''; position:absolute; inset:0;
  background:var(--gold-lt);
  transform:translateX(-101%);
  transition:transform .4s var(--ease-out);
}
.btn-primary:hover::before { transform:translateX(0) }
.btn-primary:hover { color:var(--ink) }
.btn-primary span { position:relative }
.btn-ghost {
  font-size:.72rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase;
  color:rgba(244,239,230,.45);
  display:flex; align-items:center; gap:.6rem;
  transition:color .3s;
}
.btn-ghost svg { opacity:.5; transition:transform .35s var(--ease-out),opacity .35s }
.btn-ghost:hover { color:rgba(244,239,230,.85) }
.btn-ghost:hover svg { transform:translateX(4px); opacity:.85 }
.hero-scroll-ind {
  position:absolute; bottom:3rem; right:4rem;
  display:flex; align-items:center; gap:1rem;
  writing-mode:vertical-rl;
  font-size:.6rem; letter-spacing:.25em; text-transform:uppercase;
  color:rgba(244,239,230,.22);
  opacity:0; animation:fadeIn 1.2s var(--ease-out) 1.6s forwards;
}
.hero-scroll-ind::before {
  content:''; width:1px; height:0;
  background:linear-gradient(to bottom,transparent,rgba(191,160,106,.4));
  animation:growLine 1s var(--ease-out) 2s forwards;
}
.hero-ticker {
  position:relative; z-index:2;
  padding:1.1rem 0;
  overflow:hidden;
  border-top:1px solid rgba(244,239,230,.06);
}
.ticker-track {
  display:flex; gap:3.5rem;
  width:max-content;
  animation:ticker 24s linear infinite;
}
.ticker-track span {
  font-size:.68rem; font-weight:400;
  letter-spacing:.18em; text-transform:uppercase;
  color:rgba(244,239,230,.28);
  white-space:nowrap;
}
.ticker-sep { color:var(--gold) !important; opacity:.4 !important }

/* ── Section scaffold & Reveal ── */
.sec { padding:8rem 4rem }
.sec-label {
  display:flex; align-items:center; gap:1rem;
  font-size:.65rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.2rem;
}
.sec-label::before { content:''; width:24px; height:1px; background:var(--gold); opacity:.6 }
.sec-title {
  font-family:var(--serif);
  font-size:clamp(2.4rem,4.5vw,4rem);
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.01em;
  color:var(--cream);
  margin-bottom:1.5rem;
}
.sec-title em { font-style:italic; color:var(--gold-lt) }
.sec-body {
  font-size:1rem; font-weight:300;
  line-height:1.85;
  color:rgba(244,239,230,.55);
}
.r {
  opacity:0; transform:translateY(38px);
  transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);
}
.r.on { opacity:1; transform:none }
.r.d1 { transition-delay:.1s } .r.d2 { transition-delay:.2s }
.r.d3 { transition-delay:.3s } .r.d4 { transition-delay:.4s }

/* ── Vision ── */
#vision { background:var(--cream); color:var(--brun) }
#vision .sec-label { color:var(--forest) }
#vision .sec-label::before { background:var(--forest) }
#vision .sec-title { color:var(--brun) }
#vision .sec-title em { color:var(--forest) }
#vision .sec-body { color:rgba(58,53,48,.6) }
.vision-wrap { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:start }
.vision-pull {
  margin-top:2.5rem;
  padding:1.8rem 2rem;
  border-left:2px solid var(--gold);
  background:rgba(191,160,106,.07);
  border-radius:0 2px 2px 0;
}
.vision-pull p {
  font-family:var(--serif);
  font-style:italic;
  font-size:1.22rem;
  line-height:1.6;
  color:var(--forest);
  font-weight:400;
}
.vision-right { display:flex; flex-direction:column; gap:1px; margin-top:.5rem }
.stat-row {
  display:grid; grid-template-columns:auto 1fr;
  gap:2rem; align-items:start;
  padding:2rem 2.2rem;
  background:white;
  border-bottom:1px solid var(--sable);
  position:relative;
  transition:background .3s;
  overflow:hidden;
}
.stat-row::before {
  content:''; position:absolute; left:0; top:0; bottom:0;
  width:0; background:var(--forest);
  transition:width .45s var(--ease-out);
}
.stat-row:hover { background:rgba(26,92,58,.03) }
.stat-row:hover::before { width:3px }
.stat-num {
  font-family:var(--serif);
  font-size:2.6rem; font-weight:400;
  line-height:1;
  color:var(--forest);
  min-width:5ch; text-align:right;
}
.stat-desc {
  font-size:.83rem; font-weight:300;
  line-height:1.65;
  color:rgba(58,53,48,.6);
  padding-top:.4rem;
}
.stat-desc strong { color:var(--brun); font-weight:500 }

/* ── Valeurs ── */
#valeurs { background:var(--forest); position:relative; overflow:hidden }
.val-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 50% 70% at 80% 20%,rgba(191,160,106,.08) 0%,transparent 60%),
    radial-gradient(ellipse 40% 50% at 10% 90%,rgba(244,239,230,.04) 0%,transparent 60%);
  pointer-events:none;
}
#valeurs .sec-label::before { background:var(--gold) }
.val-intro { max-width:640px; margin-bottom:5rem }
#valeurs .sec-body { color:rgba(244,239,230,.5) }
.val-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(244,239,230,.1);
}
.val-item {
  padding:3rem 2.2rem;
  border-right:1px solid rgba(244,239,230,.1);
  position:relative; overflow:hidden;
  transition:background .4s;
}
.val-item:last-child { border-right:none }
.val-item::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:0; background:rgba(191,160,106,.08);
  transition:height .45s var(--ease-out);
}
.val-item:hover { background:rgba(244,239,230,.03) }
.val-item:hover::after { height:100% }
.val-n {
  font-family:var(--serif);
  font-size:4.5rem; font-weight:400; line-height:1;
  color:rgba(191,160,106,.12);
  margin-bottom:2rem;
  transition:color .4s;
}
.val-item:hover .val-n { color:rgba(191,160,106,.28) }
.val-title {
  font-family:var(--serif); font-style:italic;
  font-size:1.3rem; color:var(--cream);
  margin-bottom:.9rem; font-weight:400;
}
.val-text {
  font-size:.84rem; font-weight:300;
  line-height:1.75;
  color:rgba(244,239,230,.45);
}

/* ── Services — modèle sur-mesure ── */
#services { background:var(--cream) }
#services .sec-label { color:var(--forest) }
#services .sec-label::before { background:var(--forest) }
#services .sec-title { color:var(--brun) }
#services .sec-title em { color:var(--forest) }
.svc-intro { max-width:680px; margin-bottom:6rem }
.svc-lead {
  font-size:1.05rem; font-weight:300; line-height:1.85;
  color:rgba(58,53,48,.65);
  margin-bottom:2.5rem;
}
.svc-pillars {
  display:flex; flex-direction:column; gap:1px;
  background:var(--sable);
  margin-bottom:6rem;
}
.pillar { background:var(--cream); overflow:hidden }
.pillar-head {
  display:flex; align-items:flex-start; gap:2rem;
  padding:2.2rem 3rem;
  position:relative;
}
.pillar-num {
  font-family:var(--serif);
  font-size:3rem; font-weight:400; line-height:1;
  color:rgba(244,239,230,.2);
  flex-shrink:0; min-width:2.5ch;
}
.pillar-title {
  font-family:var(--serif);
  font-size:1.35rem; font-weight:400;
  color:var(--cream);
  margin-bottom:.4rem; line-height:1.3;
}
.pillar-sub {
  font-size:.75rem; font-weight:400;
  letter-spacing:.06em;
  color:var(--forest-lt);
}
.pillar-body {
  padding:2.5rem 3rem 3rem calc(3rem + 2.5ch + 2rem);
  background:white;
}
.svc-list {
  display:flex; flex-wrap:wrap; gap:.6rem;
  list-style:none;
}
.svc-list li {
  font-size:.82rem; font-weight:400;
  color:var(--brun);
  background:var(--cream);
  border:1px solid var(--sable);
  padding:.45rem 1rem;
  border-radius:2px;
  line-height:1.4;
  transition:border-color .3s, background .3s;
}
.svc-list li:hover {
  border-color:var(--gold);
  background:rgba(191,160,106,.05);
}
.svc-cta-final {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:2rem;
  padding:3rem 3.5rem;
  background:var(--ink);
  border-radius:2px;
}
.svc-cta-text {
  font-family:var(--serif);
  font-style:italic;
  font-size:1.4rem; font-weight:400;
  color:var(--cream);
  line-height:1.4;
}


/* ── Artistes ── */
#artistes { background:var(--ink); text-align:center; padding:8rem 4rem }
#artistes .sec-label { justify-content:center }
#artistes .sec-label::before { display:none }
#artistes .sec-label::after { content:''; width:24px; height:1px; background:var(--gold); opacity:.6 }
#artistes .sec-title { text-align:center }
.art-caption {
  font-family:var(--serif); font-style:italic;
  font-size:1.15rem;
  color:rgba(244,239,230,.35);
  max-width:480px; margin:0 auto 4rem; line-height:1.65;
}
.art-roster {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(244,239,230,.06);
  margin-bottom:4rem;
}
.art-slot {
  aspect-ratio:2/3;
  background:var(--ink);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1.2rem;
  border:1px dashed rgba(244,239,230,.07);
  transition:background .4s,border-color .4s;
  overflow:hidden;
}
.art-slot:hover { background:rgba(244,239,230,.03); border-color:rgba(191,160,106,.2) }
.art-slot img {
  width:100%; height:100%; object-fit:cover;
  position:absolute; inset:0;
}
.art-slot-inner { position:relative; display:flex; flex-direction:column; align-items:center; gap:1.2rem }
.art-icon {
  width:52px; height:52px; border-radius:50%;
  border:1px solid rgba(191,160,106,.25);
  display:flex; align-items:center; justify-content:center;
}
.art-icon svg { width:22px; height:22px; stroke:var(--gold); fill:none; stroke-width:1.4 }
.art-label {
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(244,239,230,.2);
}
.art-cta-wrap { display:flex; justify-content:center }
.btn-art {
  display:inline-flex; align-items:center; gap:.8rem;
  border:1px solid rgba(191,160,106,.4);
  color:var(--gold);
  font-size:.72rem; font-weight:500;
  letter-spacing:.15em; text-transform:uppercase;
  padding:1rem 2.5rem; border-radius:2px;
  position:relative; overflow:hidden;
  transition:color .35s,border-color .35s;
}
.btn-art::before {
  content:''; position:absolute; inset:0;
  background:var(--gold);
  transform:translateX(-101%);
  transition:transform .4s var(--ease-out);
}
.btn-art span { position:relative; z-index:1 }
.btn-art:hover { color:var(--ink); border-color:var(--gold) }
.btn-art:hover::before { transform:translateX(0) }

/* ── Contact ── */
#contact { background:var(--cream); color:var(--brun) }
#contact .sec-label { color:var(--forest) }
#contact .sec-label::before { background:var(--forest) }
#contact .sec-title { color:var(--brun) }
#contact .sec-title em { color:var(--forest) }
#contact .sec-body { color:rgba(58,53,48,.6) }
.cta-wrap { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:start }
.cta-details { display:flex; flex-direction:column; gap:1rem; margin-top:2.5rem }
.cta-det {
  display:flex; align-items:center; gap:1rem;
  font-size:.83rem; font-weight:300;
  color:rgba(58,53,48,.55);
}
.cta-det svg { width:15px; height:15px; stroke:var(--forest); fill:none; stroke-width:1.5; flex-shrink:0 }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-bottom:1.2rem }
.form-g { margin-bottom:1.2rem }
label {
  display:block;
  font-size:.62rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--forest); margin-bottom:.55rem;
}
input,select,textarea {
  width:100%; background:white;
  border:1px solid var(--sable);
  padding:.85rem 1rem;
  font-family:var(--sans); font-size:.88rem; font-weight:300;
  color:var(--brun);
  outline:none; appearance:none;
  transition:border-color .3s;
  border-radius:2px;
}
input::placeholder,textarea::placeholder { color:rgba(58,53,48,.3) }
input:focus,select:focus,textarea:focus { border-color:var(--forest) }
textarea { resize:vertical; min-height:120px }
.form-submit-wrap { margin-top:1.8rem }
.btn-submit {
  width:100%;
  background:var(--forest);
  color:var(--cream);
  font-family:var(--sans);
  font-size:.72rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  padding:1.1rem; border-radius:2px;
  position:relative; overflow:hidden;
  transition:background .35s;
}
.btn-submit::before {
  content:''; position:absolute; inset:0;
  background:#1f6b43;
  transform:translateY(101%);
  transition:transform .4s var(--ease-out);
}
.btn-submit:hover::before { transform:translateY(0) }
.btn-submit span { position:relative }
.form-disclaimer {
  font-size:.68rem; font-weight:300; line-height:1.7;
  color:rgba(58,53,48,.35); margin-top:1rem;
}
.form-success {
  display:none; padding:2rem;
  background:rgba(26,92,58,.06);
  border-left:2px solid var(--forest);
  margin-top:1.5rem; border-radius:0 2px 2px 0;
}
.form-success.show { display:block }
.form-success p {
  font-family:var(--serif); font-style:italic;
  font-size:1.1rem; color:var(--forest); line-height:1.6;
}
.form-error {
  border-left-color:var(--gold);
  background:rgba(191,160,106,.06);
}
.form-error p { color:var(--brun) }

/* ── Footer ── */
footer {
  background:var(--ink);
  border-top:1px solid rgba(244,239,230,.06);
  padding:3rem 4rem;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1.5rem;
}
.ft-logo {
  display:flex; align-items:baseline; gap:.3em;
  text-decoration:none;
}
.ft-logo .logo-solvana {
  font-family:var(--agency);
  font-size:1.1rem;
  letter-spacing:.12em;
  color:var(--cream);
  font-weight:normal;
}
.ft-logo .logo-creative {
  font-family:var(--avalon);
  font-size:1rem;
  font-style:normal;
  color:var(--gold);
  font-weight:normal;
  letter-spacing:.04em;
}
.ft-logo img {
  height:28px; width:auto; display:block;
  filter:brightness(0) invert(1);
  transition:opacity .3s;
}
.ft-logo img:hover { opacity:.8 }
.ft-links { display:flex; gap:2.5rem; flex-wrap:wrap }
.ft-links a {
  font-size:.68rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase;
  color:rgba(244,239,230,.3);
  transition:color .3s;
}
.ft-links a:hover { color:var(--gold) }
.ft-copy { font-size:.68rem; font-weight:300; color:rgba(244,239,230,.2); letter-spacing:.04em }

/* ── Keyframes ── */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(28px) }
  to   { opacity:1; transform:none }
}
@keyframes fadeIn { to { opacity:1 } }
@keyframes growLine { from { height:0 } to { height:60px } }
@keyframes ticker {
  from { transform:translateX(0) }
  to   { transform:translateX(-50%) }
}

/* ── Responsive ── */
@media(max-width:1100px) {
  .val-grid { grid-template-columns:repeat(2,1fr) }
  .val-item { border-bottom:1px solid rgba(244,239,230,.1) }
  .vision-wrap,.cta-wrap { grid-template-columns:1fr; gap:3.5rem }
}
@media(max-width:900px) {
  .pkg-grid { grid-template-columns:1fr }
  .art-roster { grid-template-columns:repeat(2,1fr) }
  .art-slot:last-child { display:none }
}
@media(max-width:700px) {
  #nav { padding:1.5rem 1.5rem }
  #nav.solid { padding:1rem 1.5rem }
  .nav-menu { display:none }
  .burger { display:flex }
  .sec { padding:5.5rem 1.5rem }
  #artistes { padding:5.5rem 1.5rem }
  .hero-content { padding:0 1.5rem 4.5rem }
  .hero-scroll-ind { display:none }
  .form-row { grid-template-columns:1fr }
  .val-grid { grid-template-columns:1fr }
  .art-roster { grid-template-columns:repeat(2,1fr) }
  footer { padding:2.5rem 1.5rem; flex-direction:column; align-items:flex-start }
  body { cursor:auto }
  #cur-dot,#cur-ring { display:none }
  .pillar-head { padding:1.8rem 1.5rem; gap:1.2rem }
  .pillar-num { font-size:2rem }
  .pillar-body { padding:2rem 1.5rem }
  .svc-cta-final { flex-direction:column; align-items:flex-start; padding:2rem 1.5rem }
  .svc-cta-text { font-size:1.15rem }
}