:root{
  --bg:#FBF1E0; --surface:#FFFFFF; --ink:#2E2013; --sub:#8A7660;
  --line:#EEE0C6; --amber:#E2932F; --amber2:#F2B45C;
  --navy:#0F2744; --navy2:#1A3D6B; --cyan:#38BDF8; --good:#3F7D45;
  --danger:#B3432E;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Nunito Sans',system-ui,-apple-system,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Fraunces',serif;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s cubic-bezier(.22,.61,.36,1), transform .65s cubic-bezier(.22,.61,.36,1);}
.reveal.in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{transition:none !important;opacity:1 !important;transform:none !important;}
}

/* ---------- Header ---------- */
header.site-hd{position:sticky;top:0;left:0;right:0;z-index:100;background:rgba(251,241,224,0.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
header.site-hd .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;}
.logo{display:flex;align-items:center;text-decoration:none;}
.logo img{height:48px;display:block;}
nav.links{display:flex;align-items:center;gap:30px;}
nav.links a{color:var(--sub);text-decoration:none;font-size:14px;font-weight:700;}
nav.links a:hover{color:var(--ink);}
.navToggle{display:none;background:none;border:none;color:var(--ink);font-size:24px;cursor:pointer;}

/* ---------- Buttons ---------- */
.btn-warm{background:var(--amber);color:#3A2200 !important;padding:13px 24px;border-radius:999px;font-weight:800;font-size:14px;text-decoration:none;display:inline-block;border:none;cursor:pointer;transition:background .15s, transform .15s;font-family:inherit;}
.btn-warm:hover{background:var(--amber2);transform:translateY(-1px);}
.btn-outline{border:1.5px solid var(--ink);color:var(--ink) !important;padding:11.5px 22px;border-radius:999px;font-weight:800;font-size:14px;text-decoration:none;display:inline-block;background:transparent;cursor:pointer;transition:background .15s;font-family:inherit;}
.btn-outline:hover{background:rgba(46,32,19,0.06);}
.btn-outline.on-navy{border-color:rgba(255,255,255,0.55);color:#fff !important;}
.btn-outline.on-navy:hover{background:rgba(255,255,255,0.1);}

/* ---------- Sections / headings ---------- */
section{padding:90px 0;}
.section-head{max-width:640px;margin:0 auto 50px auto;text-align:center;}
.section-head .eyebrow{color:var(--amber);}
.section-head h2{font-size:32px;font-weight:600;color:var(--ink);margin:0 0 12px 0;text-wrap:balance;}
.section-head p{color:var(--sub);font-size:15.5px;line-height:1.6;margin:0;}
.eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;margin-bottom:14px;}

/* ---------- Cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px 24px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;position:relative;}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(46,32,19,0.12);border-color:var(--amber);}
.card h3{font-size:17px;font-weight:600;margin:0 0 8px 0;}
.card p{color:var(--sub);font-size:14px;line-height:1.6;margin:0;}
.egg-accent{position:absolute;top:-14px;right:18px;width:32px;height:40px;border-radius:48% 48% 46% 46% / 58% 58% 42% 42%;background:linear-gradient(160deg,var(--amber2),var(--amber));box-shadow:0 6px 14px rgba(226,147,47,0.4);}

/* ---------- Bold navy band ---------- */
.band{background:var(--navy);color:#fff;border-radius:24px;padding:56px 48px;}
.band .eyebrow{color:var(--cyan);}
.band h2,.band h3{color:#fff;font-weight:600;}
.band p{color:rgba(255,255,255,0.75);}

/* ---------- Marquee ---------- */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);overflow:hidden;}
.marquee-track{display:flex;gap:48px;white-space:nowrap;padding:14px 0;animation:scroll 26s linear infinite;width:max-content;}
.marquee-track span{font-size:13.5px;font-weight:700;color:var(--sub);display:inline-flex;align-items:center;gap:8px;}
.marquee-track span b{color:var(--ink);}
.marquee-track .dot-sep{width:4px;height:4px;border-radius:50%;background:var(--amber);flex:none;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

/* ---------- Live tag ---------- */
.tag-live{font-size:12px;font-weight:800;letter-spacing:0.04em;color:var(--amber);text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--good);position:relative;flex:none;}
.live-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--good);animation:ping 1.8s ease-out infinite;}
@keyframes ping{0%{transform:scale(0.6);opacity:0.8;}100%{transform:scale(1.8);opacity:0;}}
@media (prefers-reduced-motion: reduce){ .live-dot::after{animation:none;} }

/* ---------- Note / quote boxes ---------- */
.note-box{background:#FFF6E6;border-left:3px solid var(--amber);border-radius:8px;padding:14px 18px;font-size:13px;color:#7a5219;}
.quote-box{padding:28px 30px;background:linear-gradient(135deg, var(--amber2), var(--amber));border-radius:20px;color:#3A2200;}
.quote-box p{font-family:'Fraunces',serif;font-size:19px;font-weight:600;line-height:1.4;margin:0 0 10px 0;text-wrap:balance;}
.quote-box span{font-size:12.5px;font-weight:700;opacity:0.75;}

/* ---------- Footer ---------- */
footer.site-ft{background:var(--navy);color:rgba(255,255,255,0.6);padding:36px 0;font-size:13px;}
footer.site-ft .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
footer.site-ft a{color:rgba(255,255,255,0.78);text-decoration:none;}
footer.site-ft a:hover{color:#fff;}

/* ---------- Simple content pages (contact/tarifs/legales) ---------- */
.page-hd{padding:22px 0;border-bottom:1px solid var(--line);}
.page-hd .wrap{display:flex;align-items:center;justify-content:space-between;}
.page-hd .back{color:var(--sub);font-size:13.5px;font-weight:700;text-decoration:none;}
.page-hd .back:hover{color:var(--ink);}
main.page{padding:52px 0 90px;}
.page-narrow{max-width:760px;margin:0 auto;padding:0 24px;}
.page-narrow h1{color:var(--ink);font-size:30px;font-weight:600;margin:0 0 10px 0;}
.page-narrow h2{color:var(--ink);font-size:17px;font-weight:600;margin:32px 0 10px 0;}
.page-narrow p,.page-narrow li{color:var(--sub);font-size:14.5px;line-height:1.7;}
.page-narrow .lead{font-size:15.5px;margin:0 0 36px 0;}
.page-narrow table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px;}
.page-narrow th,.page-narrow td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--sub);}
.page-narrow th{color:var(--ink);font-weight:700;}

/* ---------- Form ---------- */
fieldset{border:1px solid var(--line);border-radius:16px;padding:24px 26px;margin:0 0 22px 0;background:var(--surface);}
legend{font-weight:800;color:var(--ink);font-size:15px;padding:0 6px;font-family:'Fraunces',serif;}
label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin:16px 0 6px 0;}
label:first-of-type{margin-top:4px;}
.hint{font-weight:400;color:var(--sub);font-size:12px;}
input[type=text],input[type=email],input[type=tel],input[type=number],textarea{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-size:14px;
  font-family:inherit;color:var(--ink);background:#FFFDF8;
}
input:focus,textarea:focus{outline:2px solid var(--amber);outline-offset:1px;}
textarea{resize:vertical;min-height:120px;}
.radio-row{display:flex;flex-direction:column;gap:10px;}
.radio-opt{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--ink);font-weight:500;cursor:pointer;}
.radio-opt input{margin-top:3px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.conditional{border-left:3px solid var(--amber);padding-left:16px;margin-top:16px;display:none;}
.conditional.show{display:block;}

/* ---------- Pricing cards ---------- */
.price-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px 30px;margin-bottom:24px;display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap;}
.price-num{flex:0 0 auto;width:52px;height:52px;border-radius:14px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;font-family:'Fraunces',serif;}
.price-card .body{flex:1 1 260px;}
.price-card h2{margin:0 0 4px 0;font-size:13px;letter-spacing:0.5px;text-transform:uppercase;color:var(--ink);font-weight:800;font-family:'Nunito Sans',sans-serif;}
.price-card p{margin:8px 0 0 0;color:var(--sub);font-size:14px;line-height:1.6;}
.price-box{flex:0 0 auto;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px 26px;text-align:center;min-width:160px;}
.price-box .tag{color:var(--sub);font-size:11px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;}
.price-box .amount{color:var(--amber);font-size:24px;font-weight:800;margin-top:4px;font-family:'Fraunces',serif;}
.price-box .note{color:var(--sub);font-size:11px;margin-top:2px;}
.price-table th{background:var(--navy);color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:0.4px;}
.price-table th:first-child{border-radius:8px 0 0 0;}
.price-table th:last-child{border-radius:0 8px 0 0;}
.price-table td.amount{color:var(--ink);font-weight:800;}

@media (max-width:860px){
  nav.links{position:fixed;top:76px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:20px 24px;gap:18px;display:none;}
  nav.links.open{display:flex;}
  .navToggle{display:block;}
  section{padding:60px 0;}
  .band{padding:40px 26px;}
  .grid2{grid-template-columns:1fr;}
}
