/* =================================================================
   COVER7 DEVIS — Shared Styles
   Préfixe c7- pour éviter conflits WordPress/DIVI
   ================================================================= */

/* ── FONTS ── */
@font-face {
    font-family: 'Champagne & Limousines';
    src: url('../fonts/champagne-limousines.woff2') format('woff2'),
         url('../fonts/champagne-limousines.woff') format('woff');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Champagne & Limousines';
    src: url('../fonts/champagne-limousines-bold.woff2') format('woff2'),
         url('../fonts/champagne-limousines-bold.woff') format('woff');
    font-weight: 700; font-style: normal; font-display: swap;
}

/* ── VARIABLES ── */
:root {
    --c7-font-title: 'Bebas Neue', 'Arial Narrow', sans-serif;
    --c7-font-body: 'Champagne & Limousines', 'Champagne', 'Segoe UI', Helvetica, Arial, sans-serif;
    --c7-red: #e03500;
    --c7-red-light: #ff4a1a;
    --c7-red-glow: rgba(224, 53, 0, 0.35);
    --c7-gold: #d4a843;
    --c7-gold-light: #e8c36a;
    --c7-bg: #050505;
    --c7-surface: #111111;
    --c7-surface-2: #1a1a1a;
    --c7-surface-3: #222222;
    --c7-border: #2a2a2a;
    --c7-border-hover: #3a3a3a;
    --c7-text: #f5e6d0;
    --c7-text-dim: #9a8e80;
    --c7-text-muted: #666;
    --c7-radius: 12px;
    --c7-radius-lg: 16px;
    --c7-green: #22c55e;
}

/* ── RESET ── */
.c7-page * { margin: 0; padding: 0; box-sizing: border-box; }
.c7-page { font-family: var(--c7-font-body); background: var(--c7-bg); color: var(--c7-text); min-height: 100vh; overflow-x: hidden; font-size: 16px; line-height: 1.5; }
.c7-page a { color: var(--c7-red); text-decoration: none; }
.c7-page::before { content:''; position:fixed; inset:0; background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(224,53,0,0.07) 0%, transparent 60%), radial-gradient(ellipse 60% 40% at 80% 100%, rgba(224,53,0,0.03) 0%, transparent 50%); pointer-events:none; z-index:0; }

/* ── CONTAINER ── */
.c7-wrap { position:relative; z-index:1; max-width:860px; margin:0 auto; padding:2rem 1.25rem 4rem; }

/* ── HEADER ── */
.c7-header { text-align:center; margin-bottom:2.5rem; padding-top:1rem; }
.c7-logo { font-family:var(--c7-font-title); font-size:4.5rem; color:var(--c7-red); text-shadow:0 0 60px var(--c7-red-glow); line-height:1; margin-bottom:0.3rem; letter-spacing:6px; }
.c7-tagline { font-family:var(--c7-font-body); font-size:1rem; color:var(--c7-text-dim); letter-spacing:3px; text-transform:uppercase; }
.c7-badge { display:inline-block; background:rgba(224,53,0,0.15); color:var(--c7-red-light); padding:0.3rem 1rem; border-radius:20px; font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-top:0.5rem; }

/* ── ASSISTANT ── */
.c7-assistant { position:sticky; top:0.75rem; z-index:100; background:linear-gradient(135deg, rgba(224,53,0,0.12) 0%, rgba(17,17,17,0.95) 100%); border:1px solid rgba(224,53,0,0.4); border-radius:var(--c7-radius-lg); padding:1.1rem 1.25rem; margin-bottom:2rem; backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 8px 40px rgba(0,0,0,0.5), 0 0 30px rgba(224,53,0,0.08); transition: all 0.3s ease; }
.c7-assistant-inner { display:flex; gap:0.85rem; align-items:center; }
.c7-assistant-dot { width:40px; height:40px; background:linear-gradient(135deg, var(--c7-red), var(--c7-red-light)); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.15rem; flex-shrink:0; box-shadow:0 2px 15px var(--c7-red-glow); animation:c7breathe 3s ease-in-out infinite; }
@keyframes c7breathe { 0%,100%{box-shadow:0 2px 15px var(--c7-red-glow)} 50%{box-shadow:0 2px 25px rgba(224,53,0,0.5)} }
.c7-assistant-text { font-size:0.95rem; line-height:1.55; color:var(--c7-text); }
.c7-assistant-text strong { color:var(--c7-red-light); }

/* ── SECTIONS ── */
.c7-section { background:var(--c7-surface); border:1px solid var(--c7-border); border-radius:var(--c7-radius-lg); padding:1.75rem; margin-bottom:1.25rem; transition:border-color 0.3s; }
.c7-section:hover { border-color:var(--c7-border-hover); }
.c7-section-head { display:flex; align-items:center; gap:0.75rem; margin-bottom:1.5rem; }
.c7-step-num { width:30px; height:30px; background:var(--c7-red); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--c7-font-title); font-size:1rem; flex-shrink:0; color:#fff; }
.c7-step-label { font-family:var(--c7-font-title); font-size:1.6rem; color:var(--c7-text); letter-spacing:1.5px; }
.c7-sub-label { font-family:var(--c7-font-title); font-size:1.2rem; color:var(--c7-red-light); letter-spacing:1px; margin:1.25rem 0 0.75rem; }

/* ── FORM FIELDS ── */
.c7-fields { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:1rem; }
.c7-field { display:flex; flex-direction:column; gap:0.35rem; }
.c7-field.full { grid-column:1 / -1; }
.c7-field label { font-size:0.82rem; color:var(--c7-text-dim); font-weight:700; text-transform:uppercase; letter-spacing:0.5px; }
.c7-field label .req { color:var(--c7-red); }
.c7-field label .opt { font-weight:400; text-transform:none; letter-spacing:0; color:var(--c7-text-muted); font-size:0.82rem; }
.c7-input, .c7-textarea, .c7-select { width:100%; padding:0.7rem 0.85rem; background:var(--c7-surface-2); border:1px solid var(--c7-border); border-radius:8px; color:var(--c7-text); font-family:var(--c7-font-body); font-size:1rem; transition:all 0.2s; outline:none; }
.c7-input::placeholder, .c7-textarea::placeholder { color:var(--c7-text-muted); }
.c7-input:focus, .c7-textarea:focus, .c7-select:focus { border-color:var(--c7-red); box-shadow:0 0 0 3px rgba(224,53,0,0.12); }
.c7-textarea { resize:vertical; min-height:100px; }
.c7-select { cursor:pointer; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239a8e80' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 0.8rem center; padding-right:2rem; }
.c7-select option { background:var(--c7-surface-2); color:var(--c7-text); }
.c7-hint { font-size:0.82rem; color:var(--c7-text-muted); margin-top:0.25rem; font-style:italic; }

/* ── CONTACT PREF ── */
.c7-contact-pref { margin-top:1rem; padding:0.85rem 1rem; background:rgba(224,53,0,0.06); border:1px solid rgba(224,53,0,0.15); border-radius:10px; }
.c7-contact-pref-title { font-size:0.82rem; color:var(--c7-red-light); font-weight:700; margin-bottom:0.6rem; text-transform:uppercase; letter-spacing:0.5px; }
.c7-radio-group { display:flex; flex-wrap:wrap; gap:0.65rem; }
.c7-radio-pill { display:flex; align-items:center; gap:0.4rem; cursor:pointer; padding:0.4rem 0.75rem; border-radius:20px; border:1px solid var(--c7-border); background:var(--c7-surface-2); transition:all 0.2s; font-size:0.88rem; color:var(--c7-text); }
.c7-radio-pill:has(input:checked) { border-color:var(--c7-red); background:rgba(224,53,0,0.1); color:var(--c7-red-light); }
.c7-radio-pill input[type="radio"], .c7-radio-pill input[type="checkbox"] { display:none; }
.c7-rdv-fields { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; margin-top:0.75rem; padding-top:0.75rem; border-top:1px solid rgba(224,53,0,0.1); }
.c7-rdv-fields .c7-hint { grid-column:1/-1; margin-top:0; }

/* ── MOMENT TOGGLES ── */
.c7-moment-grid { display:flex; flex-wrap:wrap; gap:0.65rem; margin-bottom:1rem; }
.c7-moment-btn { padding:0.65rem 1.15rem; background:var(--c7-surface-2); border:2px solid var(--c7-border); border-radius:10px; color:var(--c7-text); font-family:var(--c7-font-title); font-size:1.1rem; letter-spacing:1px; cursor:pointer; transition:all 0.25s; display:flex; align-items:center; gap:0.5rem; }
.c7-moment-btn:hover { border-color:var(--c7-red); transform:translateY(-1px); }
.c7-moment-btn.active { background:linear-gradient(135deg, var(--c7-red), var(--c7-red-light)); border-color:transparent; color:#fff; box-shadow:0 4px 20px var(--c7-red-glow); }
.c7-moment-btn .c7-moment-icon { font-size:1.2rem; }
.c7-add-moment-btn { padding:0.65rem 1.15rem; background:transparent; border:2px dashed var(--c7-border); border-radius:10px; color:var(--c7-text-dim); font-family:var(--c7-font-body); font-size:0.9rem; cursor:pointer; transition:all 0.2s; }
.c7-add-moment-btn:hover { border-color:var(--c7-red); color:var(--c7-text); }

/* ── MOMENT SECTION (expanded) ── */
.c7-moment-section { background:var(--c7-surface-2); border:1px solid var(--c7-border); border-radius:var(--c7-radius); padding:1.25rem; margin-bottom:0.85rem; animation:c7slideDown 0.3s ease-out; }
@keyframes c7slideDown { from{opacity:0;max-height:0;padding:0 1.25rem} to{opacity:1;max-height:2000px} }
.c7-moment-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.c7-moment-section-title { font-family:var(--c7-font-title); font-size:1.25rem; color:var(--c7-text); letter-spacing:1px; display:flex; align-items:center; gap:0.5rem; }
.c7-mode-tabs { display:flex; gap:0.4rem; }
.c7-mode-tab { padding:0.35rem 0.75rem; background:var(--c7-surface-3); border:1px solid var(--c7-border); border-radius:6px; color:var(--c7-text-dim); font-size:0.8rem; cursor:pointer; transition:all 0.2s; }
.c7-mode-tab.active { background:rgba(224,53,0,0.15); border-color:var(--c7-red); color:var(--c7-red-light); }
.c7-moment-body { margin-top:0.75rem; }
.c7-moment-footer { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--c7-border); }
.c7-moment-footer .full { grid-column:1/-1; }

/* ── SERVICE CARDS ── */
.c7-svc-list { display:grid; gap:0.55rem; }
.c7-svc-card { background:var(--c7-surface-3); border:2px solid var(--c7-border); border-radius:10px; padding:0.85rem 1rem; cursor:pointer; transition:all 0.25s; display:flex; align-items:center; gap:0.75rem; }
.c7-svc-card:hover { border-color:var(--c7-red); }
.c7-svc-card.selected { border-color:var(--c7-red); background:rgba(224,53,0,0.08); }
.c7-svc-check { width:20px; height:20px; border:2px solid var(--c7-border-hover); border-radius:5px; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all 0.2s; font-size:0; }
.c7-svc-card.selected .c7-svc-check { background:var(--c7-red); border-color:var(--c7-red); font-size:0.65rem; color:#fff; }
.c7-svc-icon { font-size:1.4rem; flex-shrink:0; }
.c7-svc-info { flex:1; min-width:0; }
.c7-svc-name { font-weight:700; font-size:0.95rem; margin-bottom:0.1rem; }
.c7-svc-desc { font-size:0.82rem; color:var(--c7-text-dim); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ── PACK CARDS ── */
.c7-pack-card { background:var(--c7-surface-2); border:2px solid var(--c7-border); border-radius:var(--c7-radius); margin-bottom:0.75rem; transition:all 0.25s; overflow:hidden; }
.c7-pack-card:hover { border-color:var(--c7-red); }
.c7-pack-card.selected { border-color:var(--c7-red); background:rgba(224,53,0,0.06); box-shadow:0 0 25px rgba(224,53,0,0.1); }
.c7-pack-header { padding:1rem 1.25rem; cursor:pointer; display:flex; align-items:center; gap:0.85rem; }
.c7-pack-check { width:22px; height:22px; border:2px solid var(--c7-border-hover); border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all 0.2s; }
.c7-pack-card.selected .c7-pack-check { background:var(--c7-red); border-color:var(--c7-red); }
.c7-pack-card.selected .c7-pack-check::after { content:'✓'; font-size:0.7rem; color:#fff; }
.c7-pack-info { flex:1; }
.c7-pack-name { font-family:var(--c7-font-title); font-size:1.35rem; color:var(--c7-text); letter-spacing:1px; }
.c7-pack-short { font-size:0.88rem; color:var(--c7-text-dim); margin-top:0.15rem; }
.c7-pack-badge { display:inline-block; background:rgba(212,168,67,0.15); color:var(--c7-gold-light); padding:0.15rem 0.6rem; border-radius:20px; font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; }
.c7-pack-toggle { width:28px; height:28px; background:var(--c7-surface-3); border:1px solid var(--c7-border); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.7rem; color:var(--c7-text-dim); transition:all 0.3s; flex-shrink:0; }
.c7-pack-card.open .c7-pack-toggle { transform:rotate(180deg); }
.c7-pack-detail { max-height:0; overflow:hidden; transition:max-height 0.35s ease, padding 0.35s ease; padding:0 1.25rem; }
.c7-pack-card.open .c7-pack-detail { max-height:600px; padding:0 1.25rem 1.25rem; }
.c7-pack-detail-inner { padding-top:1rem; border-top:1px solid var(--c7-border); }
.c7-pack-desc { font-size:0.9rem; color:var(--c7-text-dim); line-height:1.6; white-space:pre-line; margin-bottom:0.75rem; }
.c7-pack-svc-list { display:flex; flex-wrap:wrap; gap:0.4rem; }
.c7-pack-svc-tag { display:inline-flex; align-items:center; gap:0.3rem; background:var(--c7-surface-3); border:1px solid var(--c7-border); color:var(--c7-text-dim); padding:0.25rem 0.6rem; border-radius:6px; font-size:0.78rem; }
.c7-pack-svc-tag::before { content:'✓'; color:var(--c7-green); font-size:0.65rem; }

/* ── TECHNIQUE (Quantity selectors) ── */
.c7-tech-grid { display:grid; gap:0.65rem; }
.c7-tech-item { background:var(--c7-surface-2); border:1px solid var(--c7-border); border-radius:10px; padding:0.85rem 1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; transition:border-color 0.2s; }
.c7-tech-item.has-qty { border-color:var(--c7-red); background:rgba(224,53,0,0.05); }
.c7-tech-name { font-weight:700; font-size:0.95rem; }
.c7-tech-hint { font-size:0.78rem; color:var(--c7-text-muted); }
.c7-qty { display:flex; align-items:center; gap:0; border:1px solid var(--c7-border); border-radius:8px; overflow:hidden; flex-shrink:0; }
.c7-qty-btn { width:34px; height:34px; background:var(--c7-surface-3); border:none; color:var(--c7-text); font-size:1.1rem; cursor:pointer; transition:all 0.15s; display:flex; align-items:center; justify-content:center; font-family:var(--c7-font-body); }
.c7-qty-btn:hover { background:var(--c7-red); color:#fff; }
.c7-qty-val { width:38px; height:34px; background:var(--c7-surface-2); border:none; border-left:1px solid var(--c7-border); border-right:1px solid var(--c7-border); color:var(--c7-text); font-family:var(--c7-font-title); font-size:1.1rem; text-align:center; }

/* ── INFO BOX ── */
.c7-info { background:rgba(212,168,67,0.08); border:1px solid rgba(212,168,67,0.25); border-radius:10px; padding:0.85rem 1rem; margin-bottom:1rem; font-size:0.9rem; color:var(--c7-gold-light); display:flex; align-items:flex-start; gap:0.6rem; }
.c7-info-icon { font-size:1.1rem; flex-shrink:0; margin-top:0.05rem; }

/* ── SUBMIT ── */
.c7-submit-area { text-align:center; margin-top:1.5rem; }
.c7-submit-btn { display:inline-flex; align-items:center; gap:0.5rem; padding:1rem 2.5rem; background:linear-gradient(135deg, var(--c7-red), var(--c7-red-light)); border:none; border-radius:10px; color:#fff; font-family:var(--c7-font-title); font-size:1.5rem; letter-spacing:2px; cursor:pointer; transition:all 0.3s; box-shadow:0 4px 25px var(--c7-red-glow); }
.c7-submit-btn:hover { transform:translateY(-2px); box-shadow:0 6px 35px rgba(224,53,0,0.5); }
.c7-submit-btn:disabled { opacity:0.5; cursor:not-allowed; transform:none; }
.c7-submit-note { margin-top:0.6rem; font-size:0.82rem; color:var(--c7-text-muted); }

/* ── MESSAGES ── */
.c7-error { background:rgba(239,68,68,0.12); border:1px solid rgba(239,68,68,0.4); color:#fca5a5; padding:0.85rem 1rem; border-radius:10px; margin-bottom:1rem; font-size:0.95rem; text-align:center; }
.c7-success-overlay { position:fixed; inset:0; background:rgba(5,5,5,0.92); backdrop-filter:blur(10px); display:none; align-items:center; justify-content:center; z-index:9999; animation:c7fadeIn 0.3s; }
.c7-success-overlay.show { display:flex; }
.c7-success-card { background:var(--c7-surface); border:1px solid rgba(34,197,94,0.3); border-radius:var(--c7-radius-lg); padding:2.5rem; text-align:center; max-width:440px; margin:1rem; box-shadow:0 20px 60px rgba(0,0,0,0.5); animation:c7slideUp 0.4s ease-out; }
.c7-success-icon { width:64px; height:64px; background:rgba(34,197,94,0.15); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:2rem; margin:0 auto 1rem; }
.c7-success-card h2 { font-family:var(--c7-font-title); font-size:2rem; letter-spacing:2px; margin-bottom:0.5rem; color:var(--c7-text); }
.c7-success-card p { color:var(--c7-text-dim); line-height:1.65; font-size:0.95rem; }
@keyframes c7fadeIn { from{opacity:0} to{opacity:1} }
@keyframes c7slideUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* ── LOADER ── */
.c7-loader { text-align:center; padding:3rem 1rem; color:var(--c7-text-dim); }
.c7-loader-spinner { width:32px; height:32px; border:3px solid var(--c7-border); border-top-color:var(--c7-red); border-radius:50%; animation:c7spin 0.8s linear infinite; margin:0 auto 0.75rem; }
@keyframes c7spin { to{transform:rotate(360deg)} }

/* ── LANDING PAGE ── */
.c7-landing-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:1rem; max-width:560px; margin:2.5rem auto 0; }
.c7-landing-card { background:var(--c7-surface); border:2px solid var(--c7-border); border-radius:var(--c7-radius-lg); padding:2rem 1.25rem; text-align:center; cursor:pointer; transition:all 0.3s; text-decoration:none; display:block; }
.c7-landing-card:hover { border-color:var(--c7-red); transform:translateY(-3px); box-shadow:0 10px 40px rgba(224,53,0,0.15); }
.c7-landing-icon { font-size:2.8rem; margin-bottom:0.5rem; display:block; }
.c7-landing-title { font-family:var(--c7-font-title); font-size:1.6rem; letter-spacing:2px; color:var(--c7-text); }
.c7-landing-desc { font-size:0.85rem; color:var(--c7-text-dim); margin-top:0.25rem; }

/* ── FOOTER ── */
.c7-footer { text-align:center; margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--c7-border); color:var(--c7-text-muted); font-size:0.82rem; line-height:1.8; }

/* ── RESPONSIVE ── */
@media (max-width:600px) {
    .c7-wrap { padding:1rem 0.75rem 3rem; }
    .c7-logo { font-size:3.2rem; letter-spacing:4px; }
    .c7-section { padding:1.25rem; }
    .c7-fields { grid-template-columns:1fr; }
    .c7-step-label { font-size:1.3rem; }
    .c7-landing-grid { grid-template-columns:1fr; max-width:300px; }
    .c7-moment-grid { flex-direction:column; }
    .c7-moment-btn { justify-content:center; }
    .c7-rdv-fields { grid-template-columns:1fr; }
    .c7-moment-footer { grid-template-columns:1fr; }
    .c7-moment-section-head { flex-direction:column; align-items:flex-start; gap:0.5rem; }
    .c7-pack-header { flex-wrap:wrap; }
}
