/* SONéSENS — main stylesheet */
:root{
  --bg:hsl(40 12% 3%); --fg:hsl(45 30% 92%); --muted:hsl(42 10% 58%); --gold:hsl(43 74% 62%); --secondary:hsl(40 8% 10%);
  --border:hsl(43 25% 18%); --field:hsl(40 8% 10% / .4); --danger:hsl(0 62.8% 55%);
  color-scheme:dark;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --bg:hsl(40 12% 3%); --fg:hsl(45 30% 92%); --muted:hsl(42 10% 58%); } }
:root[data-theme="dark"]{ --bg:hsl(40 12% 3%); --fg:hsl(45 30% 92%); --muted:hsl(42 10% 58%); }
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:"Cormorant Garamond",Garamond,"Times New Roman",serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%}
a{color:inherit;text-decoration:none}
.brand{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}

/* header */
header{position:fixed;inset:0 0 auto 0;z-index:50;background:linear-gradient(to bottom,rgba(0,0,0,.8),rgba(0,0,0,.4) 55%,transparent)}
.wrap{max-width:72rem;margin:0 auto;padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between}
.home{display:flex;align-items:center;gap:.75rem}
.logo{border-radius:50%;background:var(--bg) url(../img/logo-emblem.png) center/80% no-repeat;box-shadow:0 0 0 1px rgba(217,180,92,.4)}
.logo-sm{width:2.5rem;height:2.5rem}
.home .brand{font-size:1rem;letter-spacing:.28em}
nav.top{display:flex;gap:2.5rem;font-size:11px;text-transform:uppercase;letter-spacing:.25em;color:var(--muted)}
nav.top a{transition:color .2s}
nav.top a:hover{color:var(--gold)}
@media (max-width:640px){ nav.top{gap:1.25rem} .home .brand{display:none} }

/* hero */
.hero{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.waves{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.waves svg{position:absolute;left:50%;top:50%;height:70vh;width:180vw;max-width:none}
.waves svg{transform:translate(-50%,-50%)}
.wa{opacity:.5;animation:driftA 16s ease-in-out infinite}
.wb{opacity:.28;animation:driftB 22s ease-in-out infinite}
@keyframes driftA{0%,100%{transform:translate(-52%,-50%) scaleY(1)}50%{transform:translate(-48%,-50%) scaleY(1.08)}}
@keyframes driftB{0%,100%{transform:translate(-48%,-50%) scaleY(1.05)}50%{transform:translate(-52%,-50%) scaleY(.96)}}
.glow{position:absolute;left:50%;top:50%;width:46vh;height:46vh;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,hsl(43 74% 62% / .14),transparent 65%);animation:pulse 7s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:.85}}
.vlabel{position:absolute;top:50%;writing-mode:vertical-rl;font-size:10px;text-transform:uppercase;letter-spacing:.5em;color:rgba(154,147,132,.5);display:none}
.vlabel.l{left:1.25rem;transform:translateY(-50%)}
.vlabel.r{right:1.25rem;transform:translateY(-50%) rotate(180deg);letter-spacing:.35em;text-transform:none}
@media (min-width:1024px){.vlabel{display:block}}
.hero-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 1.5rem}
.logo-lg{width:7rem;height:7rem;box-shadow:0 0 0 1px rgba(217,180,92,.45),0 0 60px rgba(226,190,106,.25)}
@media (min-width:768px){.logo-lg{width:9rem;height:9rem}}
h1{margin-top:2.5rem;font-weight:500;font-size:clamp(2.6rem,9vw,6rem);letter-spacing:.16em;padding-left:.16em;line-height:1.05;
   background:linear-gradient(100deg,#8a6a2f 0%,#d9b45c 30%,#f7e9c4 50%,#d9b45c 70%,#8a6a2f 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hairline{height:1px;background:linear-gradient(90deg,transparent,hsl(43 74% 62% / .6),transparent)}
.hero .hairline{margin-top:2rem;width:12rem}
@media (min-width:768px){.hero .hairline{width:18rem}}
.tagline{margin-top:2rem;font-size:clamp(.75rem,1.6vw,1rem);letter-spacing:.45em;padding-left:.45em;color:rgba(236,230,216,.85)}
.lede{margin-top:1.5rem;max-width:36rem;font-size:clamp(1.125rem,1.8vw,1.3rem);font-style:italic;line-height:1.6;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.75rem 2.5rem;border:1px solid rgba(217,180,92,.5);
     font-family:"Cinzel",Georgia,serif;font-size:11px;text-transform:uppercase;letter-spacing:.35em;color:var(--gold);background:transparent;cursor:pointer;transition:background .3s,color .3s,transform .1s}
.btn:hover{background:var(--gold);color:#000}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.5;pointer-events:none}
.hero .btn{margin-top:3rem}
.scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:rgba(217,180,92,.6)}
.scroll:hover{color:var(--gold)}
.scroll svg{animation:bounce 1.6s infinite}
@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}
.fade{opacity:0;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* sections */
section.block{position:relative;padding:7rem 0}
@media (min-width:768px){section.block{padding:9rem 0}}
.col{margin:0 auto;padding:0 1.5rem}
.eyebrow{text-align:center;font-family:"Cinzel",Georgia,serif;font-size:11px;text-transform:uppercase;letter-spacing:.45em;color:var(--gold)}
h2{margin-top:1.5rem;text-align:center;font-weight:500;font-size:clamp(1.875rem,4.5vw,3rem);letter-spacing:.12em;line-height:1.2}
section.block .hairline{margin:2.5rem auto 0;width:10rem}
.vtag{position:absolute;top:7rem;writing-mode:vertical-rl;font-size:10px;text-transform:uppercase;letter-spacing:.5em;color:rgba(154,147,132,.5);display:none}
.vtag.l{left:1.25rem}
.vtag.r{right:1.25rem;transform:rotate(180deg)}
@media (min-width:1024px){.vtag{display:block}}
.frame{margin-top:3.5rem;border:1px dashed rgba(217,180,92,.4);background:rgba(255,255,255,.02);padding:2rem}
@media (min-width:768px){.frame{padding:3rem}}
.pill{display:inline-block;border:1px solid rgba(217,180,92,.4);border-radius:999px;padding:.25rem .75rem;font-size:10px;text-transform:uppercase;letter-spacing:.3em;color:var(--gold)}
.frame p{margin-top:1.5rem;font-size:clamp(1.125rem,1.8vw,1.25rem);line-height:1.7;color:var(--muted)}
.frame p+p{margin-top:1.25rem;font-style:italic;color:rgba(154,147,132,.8)}
.frame .brand{color:var(--fg);letter-spacing:.12em}
.intro-lede{margin:2.5rem auto 0;max-width:36rem;text-align:center;font-size:clamp(1.125rem,1.8vw,1.25rem);font-style:italic;line-height:1.7;color:var(--muted)}

/* form */
form{margin-top:3.5rem;display:grid;gap:1.75rem}
.field{display:grid;gap:.5rem}
.field>label,.field>.lbl{font-family:"Cinzel",Georgia,serif;font-size:10px;text-transform:uppercase;letter-spacing:.28em;color:var(--muted)}
.req{color:var(--gold)}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;border:1px solid var(--border);background:var(--field);padding:.75rem 1rem;font:inherit;font-size:1.0625rem;color:var(--fg);border-radius:0;outline:none;transition:border-color .2s,box-shadow .2s}
input::placeholder,textarea::placeholder{color:rgba(154,147,132,.6)}
input:focus,select:focus,textarea:focus{border-color:rgba(217,180,92,.6);box-shadow:0 0 0 1px rgba(217,180,92,.3)}
select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background:var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23d9b45c' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right .75rem center/12px}
select option{background:#14120f;color:var(--fg)}
textarea{resize:vertical;min-height:9rem}
.phone{display:flex;flex-direction:column;gap:.75rem}
@media (min-width:640px){.phone{flex-direction:row}.phone select{width:12rem;flex-shrink:0}}
.consent{display:flex;gap:.75rem;align-items:flex-start;font-size:.95rem;line-height:1.6;color:var(--muted);cursor:pointer}
.consent input{margin-top:.3rem;width:1rem;height:1rem;flex-shrink:0;accent-color:var(--gold)}
[aria-invalid="true"]{border-color:var(--danger) !important}
.ferr{font-size:.875rem;color:var(--danger)}
.err{text-align:center;font-size:.875rem;color:var(--danger)}
.spin{width:14px;height:14px;animation:sp 1s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.submit{display:flex;justify-content:center;padding-top:.5rem}
.submit .btn{min-width:12rem}
.status{text-align:center;font-style:italic;font-size:1.1rem;color:var(--muted);min-height:1.5em}
.status.ok{color:var(--gold)}

/* footer */
footer{border-top:1px solid rgba(217,180,92,.15)}
.foot{max-width:72rem;margin:0 auto;padding:3.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:2rem}
.foot-id{display:flex;flex-direction:column;align-items:center;gap:.75rem}
.logo-md{width:3rem;height:3rem;box-shadow:0 0 0 1px rgba(217,180,92,.3)}
.foot-id .brand{font-size:1rem;letter-spacing:.28em}
.foot-id .tag{font-size:10px;letter-spacing:.35em;color:var(--muted)}
.social{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 2.5rem}
.social span.item{display:flex;align-items:center;gap:.5rem;min-height:2.75rem;font-size:11px;color:rgba(154,147,132,.7)}
.social .t{text-transform:uppercase;letter-spacing:.2em}
.social .ph{border:1px solid rgba(217,180,92,.3);border-radius:999px;padding:.125rem .5rem;font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:rgba(217,180,92,.7)}
.copy{font-size:11px;letter-spacing:.2em;color:rgba(154,147,132,.7)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none !important;transition:none !important} .fade{opacity:1} html{scroll-behavior:auto} }

.lockup{width:min(18rem,70vw);height:auto;display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.social a.item{display:flex;align-items:center;gap:.5rem;min-height:2.75rem;font-size:11px;color:var(--muted);transition:color .2s}
.social a.item:hover{color:var(--gold)}

/* confirmation pop-in */
.popup{position:fixed;inset:0;margin:auto;z-index:100;width:min(28rem,calc(100% - 2rem));height:fit-content;border:1px solid hsl(43 74% 62% / .35);background:hsl(40 10% 5%);color:var(--fg);padding:2.5rem 2rem;text-align:center;display:none;flex-direction:column;align-items:center;gap:1rem;box-shadow:0 0 80px hsl(43 74% 62% / .12)}
.popup[open]{display:flex;animation:popIn .45s cubic-bezier(.22,1,.36,1)}
.popup::backdrop{background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
@keyframes popIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.popup .t{font-family:"Cinzel",Georgia,serif;font-size:.875rem;text-transform:uppercase;letter-spacing:.3em;color:var(--gold)}
.popup .m{max-width:24rem;font-size:1.0625rem;line-height:1.7;color:var(--muted)}
.popup form{margin-top:.75rem}
.popup .ico{color:var(--gold)}
.popup .ico.bad,.popup.is-error .ico.ok{display:none}
.popup.is-error .ico.bad{display:block}
.intro-body{margin-top:3.5rem}
.intro-body>p{margin-top:1.5rem;font-size:clamp(1.125rem,1.8vw,1.3rem);line-height:1.8;color:hsl(45 30% 92% / .78);text-wrap:pretty}
.intro-body .brand{color:var(--fg);letter-spacing:.12em}
.intro-body>p.intro-lead{margin-top:0;text-align:center;font-style:italic;font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.3;color:#f7e9c4}
.intro-lead+p{margin-top:2.5rem}
.intro-quote{margin:3.5rem auto 0;max-width:34rem;text-align:center}
.intro-quote p{font-style:italic;font-size:clamp(1.4rem,2.6vw,1.75rem);line-height:1.45;color:var(--gold)}
.intro-body .hairline{margin:3.5rem auto 0;width:6rem}
.intro-body>p.intro-for{margin-top:2rem;text-align:center;font-size:1rem;font-style:italic;color:var(--muted)}
.intro-body>p:first-child{margin-top:0}

/* Event announcement */
.eventbar{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.55rem 1.5rem;background:hsl(40 10% 5% / .92);border-bottom:1px solid hsl(43 74% 62% / .25);font-size:.95rem;color:hsl(45 30% 92% / .85);text-align:center;transition:background .2s}
.eventbar .brand{letter-spacing:.12em;color:var(--fg)}
.eventbar .eb-go{flex-shrink:0;font-family:"Cinzel",Georgia,serif;font-size:10px;text-transform:uppercase;letter-spacing:.3em;color:var(--gold);border-bottom:1px solid hsl(43 74% 62% / .5);padding-bottom:1px}
.eventbar:hover{background:hsl(40 10% 8% / .96)}
.eventbar:hover .eb-go{border-color:var(--gold)}
@media (max-width:720px){.eventbar .eb-long{display:none}.eventbar{font-size:.9rem;gap:.75rem}}
.event{position:relative;padding:5rem 0 0}
.event-card{border:1px solid hsl(43 74% 62% / .3);background:linear-gradient(180deg,hsl(43 74% 62% / .05),transparent 70%);padding:3rem 1.5rem;text-align:center}
@media (min-width:768px){.event-card{padding:3.5rem 3rem}}
.event-card h2{margin-top:1.25rem;font-size:clamp(1.5rem,3.4vw,2.25rem)}
.event-lede{margin:1.5rem auto 0;max-width:34rem;font-size:clamp(1.0625rem,1.7vw,1.2rem);font-style:italic;line-height:1.7;color:var(--muted)}
.event-lede .brand{font-style:normal;letter-spacing:.12em;color:var(--fg)}
.event-facts{margin:2.5rem auto 0;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));max-width:40rem}
.event-facts dt{font-family:"Cinzel",Georgia,serif;font-size:10px;text-transform:uppercase;letter-spacing:.3em;color:var(--gold)}
.event-facts dd{margin-top:.5rem;font-size:1.15rem;line-height:1.5;color:var(--fg)}
.event-facts dd span{font-size:.95rem;color:var(--muted)}
.event-card .btn{margin-top:2.5rem}

/* ---------- Responsive refinements (phones & tablets) ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
section[id]{scroll-margin-top:6rem}
h2,.event-card h2{text-wrap:balance;hyphens:none}
.field>label.consent{font-family:"Cormorant Garamond",Georgia,serif;font-size:1rem;text-transform:none;letter-spacing:normal;color:var(--muted)}
.eventbar .eb-short{display:none}
.eventbar .eb-long{display:inline}
@media (max-width:720px){
  .eventbar .eb-full{display:none}
  .eventbar .eb-short{display:inline}
  .eventbar{padding:.5rem 1rem;font-size:.9rem}
}
@media (max-width:640px){
  .wrap{padding:.75rem 1.25rem}
  nav.top a{display:inline-block;padding:.6rem 0}
  .hero{padding:6.5rem 0 4.5rem}
  .logo-lg{width:6rem;height:6rem}
  h1{margin-top:1.75rem;letter-spacing:.12em;padding-left:.12em}
  .hero .hairline{margin-top:1.5rem}
  .tagline{margin-top:1.5rem;font-size:.68rem;letter-spacing:.26em;padding-left:.26em}
  .lede{margin-top:1.25rem;font-size:1.1rem}
  .hero .btn{margin-top:2.25rem;padding:.75rem 1.75rem;letter-spacing:.28em}
  .scroll{bottom:1rem}
  section.block{padding:4.5rem 0}
  .event{padding-top:3rem}
  .event-card{padding:2.5rem 1.25rem}
  .event-facts{gap:1.25rem;margin-top:2rem}
  .event-card .btn{margin-top:2rem}
  .intro-body{margin-top:2.5rem}
  .intro-quote{margin-top:2.5rem}
  .intro-body .hairline{margin-top:2.5rem}
  form{margin-top:2.5rem;gap:1.5rem}
  .intro-lede{margin-top:2rem}
  .popup{padding:2.25rem 1.5rem}
  .foot{padding:3rem 1.25rem;gap:1.75rem}
  .social{gap:.25rem 1.75rem}
}
@media (max-width:360px){
  nav.top{gap:1rem;letter-spacing:.18em}
  .tagline{letter-spacing:.2em;padding-left:.2em}
  .btn{letter-spacing:.22em;padding-left:1.25rem;padding-right:1.25rem}
}
.hero{padding:7rem 0 5rem}
@media (max-width:640px){ .hero{padding:6.5rem 0 4.5rem} .btn{white-space:nowrap} }
@media (max-width:360px){ .eventbar .eb-go{display:none} }

/* ---------- Venues ("Nous recherchons 5 lieux") ---------- */
.venue-body{margin-top:3rem;text-align:center}
.venue-body>p{margin:1.5rem auto 0;max-width:36rem;font-size:clamp(1.125rem,1.8vw,1.3rem);line-height:1.8;color:hsl(45 30% 92% / .78)}
.venue-body .brand{color:var(--fg);letter-spacing:.12em}
.venue-slots{list-style:none;display:flex;justify-content:center;gap:clamp(.75rem,3vw,1.5rem);margin:3rem auto 0;padding:0}
.venue-slots li{width:clamp(3rem,11vw,4.25rem);aspect-ratio:1;border:1px solid hsl(43 74% 62% / .4);border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 24px hsl(43 74% 62% / .06)}
.venue-slots span{font-family:"Cinzel",Georgia,serif;font-size:clamp(1rem,2.6vw,1.35rem);color:var(--gold)}
.venue-cta{margin-top:3rem}
/* ---------- Invitation sign-up ---------- */
.invite{border-top:1px solid hsl(43 74% 62% / .12)}
.reg-grid{display:grid;gap:1.75rem}
@media (min-width:640px){.reg-grid{grid-template-columns:1fr 1fr;gap:1.75rem 1.25rem}}
.opt{text-transform:none;letter-spacing:.05em;color:hsl(42 10% 58% / .7);font-family:"Cormorant Garamond",Georgia,serif;font-size:.85rem}
@media (max-width:640px){ .venue-body{margin-top:2.25rem} .venue-slots{margin-top:2.25rem} .venue-cta{margin-top:2.25rem} }
@media (max-width:400px){ nav.top{gap:.9rem;font-size:10px;letter-spacing:.16em} }

/* Menu button: Devenir partenaire */
nav.top{align-items:center}
nav.top a.nav-btn{border:1px solid hsl(43 74% 62% / .55);color:var(--gold);padding:.55rem 1rem;transition:background .25s,color .25s}
nav.top a.nav-btn:hover{background:var(--gold);color:#000}
@media (max-width:640px){ nav.top a.nav-btn{padding:.5rem .7rem} }
@media (max-width:400px){ nav.top a.nav-intro{display:none} }

/* Venues — final text layout */
.venue-body>p.venue-lead{margin-top:0;font-style:italic;font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.35;color:#f7e9c4}
.venue-lead .brand{font-style:normal}
.benefits{list-style:none;padding:0;margin:3.5rem 0 0;display:grid;gap:1.25rem;text-align:left}
@media (min-width:800px){.benefits{grid-template-columns:repeat(3,1fr)}}
.benefits li{border-top:1px solid hsl(43 74% 62% / .45);background:linear-gradient(180deg,hsl(43 74% 62% / .05),transparent 80%);padding:1.5rem 1.25rem 1.75rem}
.benefits h3{font-family:"Cinzel",Georgia,serif;font-weight:400;font-size:.8rem;text-transform:uppercase;letter-spacing:.22em;line-height:1.6;color:var(--gold)}
.benefits p{margin-top:.75rem;font-size:1.15rem;line-height:1.65;color:hsl(45 30% 92% / .8)}
.venue-body>p.venue-practical{margin-top:3rem;font-size:1.15rem;color:var(--muted)}
.venue-quote{margin:3rem auto 0;max-width:36rem}
.venue-quote p{font-style:italic;font-size:clamp(1.35rem,2.5vw,1.7rem);line-height:1.45;color:var(--gold)}
@media (max-width:640px){ .benefits{margin-top:2.5rem} .venue-body>p.venue-practical,.venue-quote{margin-top:2.25rem} }

/* Venue counter: filled circles for confirmed partners */
.venue-slots{align-items:flex-start}
.venue-slots li{width:auto;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:.6rem;flex:0 1 5.5rem}
.venue-slots .dot{width:clamp(3rem,11vw,4.25rem);aspect-ratio:1;border:1px solid hsl(43 74% 62% / .4);border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 24px hsl(43 74% 62% / .06);font-family:"Cinzel",Georgia,serif;font-size:clamp(1rem,2.6vw,1.35rem);color:var(--gold)}
.venue-slots .who{font-family:"Cinzel",Georgia,serif;font-size:9px;text-transform:uppercase;letter-spacing:.2em;line-height:1.5;color:hsl(42 10% 58% / .6);text-align:center}
.venue-slots .who em{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;text-transform:none;letter-spacing:0;font-size:.85rem}
.venue-slots li.is-taken .dot{background:linear-gradient(135deg,#8a6a2f,#d9b45c 45%,#f7e9c4 60%,#d9b45c 80%);border-color:#d9b45c;color:#0b0a08;box-shadow:0 0 28px hsl(43 74% 62% / .3)}
.venue-slots li.is-taken .who{color:var(--gold)}
.venue-count{margin-top:1.75rem !important;font-size:1.1rem !important;font-style:italic;color:var(--muted) !important}
.venue-count strong{font-weight:500;font-style:normal;color:var(--fg)}
@media (max-width:400px){ .venue-slots{gap:.5rem} .venue-slots .who{font-size:8px;letter-spacing:.14em} }

/* Invitation block (links to the Google Form) */
.invite-body{margin-top:2.5rem;text-align:center}
.invite-body>p{margin:1.25rem auto 0;max-width:34rem;font-size:clamp(1.125rem,1.8vw,1.3rem);line-height:1.8;color:hsl(45 30% 92% / .78)}
.invite-body>p.invite-lead{margin-top:0;font-style:italic;font-size:clamp(1.4rem,2.6vw,1.8rem);line-height:1.4;color:#f7e9c4}
.invite-body .brand{color:var(--fg);letter-spacing:.12em}
.invite-body .btn{margin-top:2.5rem}

/* Menu: fit on phones */
@media (max-width:640px){ nav.top{gap:1rem;letter-spacing:.16em} }
@media (max-width:520px){ nav.top a.nav-contact{display:none} }

/* Menu: never wrap; shorter labels and fewer links on small screens */
nav.top a{white-space:nowrap}
nav.top .lbl-s{display:none}
@media (max-width:900px){ .home .brand{display:none} nav.top{gap:1.5rem} }
@media (max-width:640px){
  nav.top{gap:1.1rem}
  nav.top a.nav-intro, nav.top a.nav-contact{display:none}
  nav.top .lbl-l{display:none}
  nav.top .lbl-s{display:inline}
}

/* ---------- Hamburger menu (phones) — the partner button stays visible ---------- */
.menu-links{display:flex;align-items:center;gap:inherit}
.burger{display:none}
@media (max-width:640px){
  header{background:linear-gradient(to bottom,rgba(0,0,0,.85),rgba(0,0,0,.5) 70%,transparent)}
  nav.top{gap:.9rem}
  .burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:2.75rem;height:2.75rem;padding:0 .6rem;background:none;border:0;cursor:pointer;color:var(--fg)}
  .burger span{display:block;height:1px;background:currentColor;transition:transform .3s,opacity .2s}
  nav.top.is-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  nav.top.is-open .burger span:nth-child(2){opacity:0}
  nav.top.is-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .menu-links{position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;padding:.5rem 1.5rem 1.25rem;
    background:hsl(40 10% 4% / .97);border-bottom:1px solid hsl(43 74% 62% / .25);
    opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility 0s .25s}
  nav.top.is-open .menu-links{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s}
  nav.top .menu-links a, nav.top .menu-links a.nav-intro, nav.top .menu-links a.nav-contact{display:block;width:100%;text-align:center;padding:1rem 0;font-size:12px;letter-spacing:.3em;color:var(--fg);border-top:1px solid hsl(43 74% 62% / .1)}
  nav.top .menu-links a:first-child{border-top:0}
  nav.top .menu-links .lbl-l{display:inline}
  nav.top .menu-links .lbl-s{display:none}
}
header{position:fixed}
header .wrap{position:relative}

/* ---------- Floating "back to top" button ---------- */
.to-top{position:fixed;z-index:40;right:max(1.25rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom));
  width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;
  color:var(--gold);background:hsl(40 10% 5% / .85);border:1px solid hsl(43 74% 62% / .5);
  box-shadow:0 0 24px hsl(43 74% 62% / .12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s,visibility 0s .3s,background .25s,color .25s}
.to-top.is-visible{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .3s,background .25s,color .25s}
.to-top:hover{background:var(--gold);color:#000}
@media (min-width:1024px){.to-top{right:2rem;bottom:2rem;width:3.25rem;height:3.25rem}}

/* Introduction text centred on phones */
@media (max-width:640px){ .intro-body>p{text-align:center} }

/* ---------- Mobile symmetry: everything centred on phones ---------- */
@media (max-width:640px){
  /* buttons never wider than their box, always centred */
  .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.6;padding-left:1.5rem;padding-right:1.5rem}
  .event-card .btn{letter-spacing:.24em}
  /* partner benefits */
  .benefits{text-align:center}
  .benefits li{padding:1.5rem 1.25rem 1.75rem}
  .submit .btn{min-width:0}
}

.invite-body>p.invite-join{margin-top:1rem;font-size:clamp(1.15rem,1.9vw,1.35rem);color:var(--fg)}

/* Footer credit */
.credit{margin-top:-1.25rem;text-align:center;font-size:11px;letter-spacing:.2em;color:hsl(42 10% 58% / .55)}
.credit a{color:hsl(42 10% 58% / .8);border-bottom:1px solid hsl(43 74% 62% / .25);padding-bottom:1px;transition:color .2s,border-color .2s}
.credit a:hover{color:var(--gold);border-color:var(--gold)}
