/* Festa Photo : couleurs du logo (bleu nuit, doré, corail). */
:root { --nuit:#0b2347; --nuit2:#14315f; --or:#e8c27a; --or2:#c8952f; --corail:#f07a5f; --creme:#fbf8f2;
        --doux:#b9c4d8; --carte:rgba(255,255,255,.06); --bord:rgba(232,194,122,.35); }
* { box-sizing:border-box; }
html { background:var(--nuit); }
body { margin:0; min-height:100vh; color:var(--creme); font-family:Nunito, system-ui, sans-serif; line-height:1.5;
       background:radial-gradient(120% 60% at 50% 0%, var(--nuit2), var(--nuit) 70%); }
a { color:var(--or); }
.page { max-width:960px; margin:0 auto; padding:24px 16px 48px; }
.etroit { max-width:520px; }
header.marque { display:flex; align-items:center; gap:12px; margin-bottom:28px; }
header.marque img { width:44px; height:44px; }
header.marque .nom { font-family:'Playfair Display', Georgia, serif; font-size:24px; }
h1, h2 { font-family:'Playfair Display', Georgia, serif; font-weight:700; line-height:1.15; }
h1 { font-size:clamp(30px, 6vw, 46px); margin:8px 0 12px; }
h2 { font-size:24px; margin:28px 0 12px; }
.doux { color:var(--doux); }
.carte { background:var(--carte); border:1px solid var(--bord); border-radius:18px; padding:18px; }
.grille { display:grid; gap:12px; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
.choix { cursor:pointer; text-align:center; border:2px solid transparent; transition:border-color .15s, transform .15s; }
.choix:hover { transform:translateY(-2px); }
.choix.pris { border-color:var(--or); background:rgba(232,194,122,.12); }
.choix .em { font-size:34px; display:block; }
.prix { font-size:28px; font-weight:800; color:var(--or); }
label { display:block; font-weight:700; margin:14px 0 6px; }
input, select { width:100%; font:inherit; padding:12px 14px; border-radius:12px; border:1px solid var(--bord);
                background:rgba(0,0,0,.25); color:var(--creme); }
button, .bouton { display:inline-block; font:inherit; font-weight:800; border:0; border-radius:14px; padding:13px 20px;
                  cursor:pointer; text-decoration:none; color:var(--nuit);
                  background:linear-gradient(180deg, #f0d27a, var(--or2)); }
button.second, .bouton.second { background:transparent; color:var(--creme); border:1px solid var(--bord); }
button:disabled { opacity:.5; cursor:default; }
.message { margin-top:14px; padding:12px 14px; border-radius:12px; background:rgba(240,122,95,.15); }
.message.ok { background:rgba(232,194,122,.15); }
footer.legal { margin-top:48px; font-size:13px; color:var(--doux); text-align:center; }
footer.legal a { color:var(--doux); margin:0 8px; }
[hidden] { display:none !important; }
