/* Gravure Events - modale des délais. Charte : mauve #8a4a82 sur fond blanc. */
.gd-root {
  --gd-prim: #8a4a82; --gd-prim-dark: #6c3666; --gd-text: #2f222d; --gd-muted: #7a6675;
  --gd-soft: #f7eef4; --gd-line: #e6d3df; --gd-line2: #f0e4ec;
  font-family: inherit; color: var(--gd-text);
}
html.gd-lock { overflow: hidden; }
.gd-overlay { position: fixed; inset: 0; background: rgba(47, 34, 45, .5); z-index: 2000; }
.gd-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2001;
  width: min(640px, 94vw); max-height: 96vh; max-height: 96dvh; display: flex; flex-direction: column;
  background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 60px rgba(138, 74, 130, .3);
}
.gd-header { display: flex; align-items: flex-start; gap: .75rem; padding: 1.05rem 1.3rem; background: linear-gradient(135deg, var(--gd-prim), var(--gd-prim-dark)); flex-shrink: 0; }
.gd-title { flex: 1; margin: 0; color: #fff; font-size: 1.12rem; font-weight: 600; line-height: 1.4; }
.gd-close { display: inline-flex; align-items: center; gap: .35rem; flex-shrink: 0; padding: .35rem .75rem; border: 0; border-radius: 6px; background: rgba(255, 255, 255, .18); color: #fff; font: inherit; font-size: .92rem; font-weight: 500; cursor: pointer; }
.gd-close:hover, .gd-close:focus-visible { background: rgba(255, 255, 255, .32); }
.gd-ico { display: inline-flex; line-height: 0; }
.gd-body { padding: 1rem 1.3rem 1.3rem; overflow-y: auto; flex: 1; }

/* calendrier */
.gd-cal-scroll { max-height: min(480px, 60vh); overflow-y: auto; padding: 2px 2px 4px; -webkit-overflow-scrolling: touch; }
.gd-cal-scroll::-webkit-scrollbar { width: 8px; }
.gd-cal-scroll::-webkit-scrollbar-thumb { background: var(--gd-line); border-radius: 4px; }
.gd-month-title { padding: 1rem 2px .6rem; color: var(--gd-prim); font-size: 1.1rem; font-weight: 700; }
.gd-month:first-child .gd-month-title { padding-top: 2px; }
.gd-cal-head, .gd-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 2px; }
.gd-cal-head div { padding: 6px 0; background: var(--gd-soft); border-radius: 4px; color: var(--gd-prim); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
.gd-day {
  position: relative; display: flex; align-items: center; justify-content: center; height: 46px; padding: 0; overflow: hidden;
  border: 2px solid var(--gd-line2); border-radius: 6px; background: #fff; color: var(--gd-text);
  font: inherit; font-size: 1.05rem; font-weight: 600; cursor: pointer; transition: background .12s, border-color .12s;
}
.gd-day:hover:not(:disabled), .gd-day:focus-visible:not(:disabled) { background: var(--gd-soft); border-color: var(--gd-prim); }
.gd-day:disabled { background: #faf7f9; border-color: #f3edf1; color: #bbb; cursor: default; }
.gd-day.gd-past::after { content: ""; position: absolute; inset: -1px; background: linear-gradient(to top right, transparent calc(50% - 1px), #ccc calc(50% - 1px), #ccc calc(50% + 1px), transparent calc(50% + 1px)); }
.gd-day.gd-today { border: 3px solid var(--gd-prim); background: var(--gd-soft); }
.gd-day.gd-blocked { background: #fff3e0; border-color: #ffb74d; color: #e65100; }
.gd-day.gd-weekend { color: #999; }
.gd-endnote { padding: 14px 0 6px; color: #aaa; font-size: .85rem; text-align: center; }
.gd-hint { margin: .7rem 0 0; color: var(--gd-prim); font-size: .95rem; font-weight: 500; text-align: center; }

/* résultats */
.gd-date-bar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .7rem; padding: .55rem .8rem; background: var(--gd-soft); border: 1px solid var(--gd-line); border-radius: 8px; }
.gd-date-label { color: var(--gd-prim); font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.gd-date-value { margin-top: 1px; color: var(--gd-prim-dark); font-size: 1rem; font-weight: 700; }
.gd-modify { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .75rem; border: 1px solid var(--gd-line); border-radius: 6px; background: #fff; color: var(--gd-prim); font: inherit; font-size: .9rem; font-weight: 500; cursor: pointer; }
.gd-modify:hover, .gd-modify:focus-visible { background: var(--gd-soft); border-color: var(--gd-prim); }
.gd-alert { margin-bottom: .7rem; padding: .65rem .9rem; border: 1px solid; border-left-width: 4px; border-radius: 6px; }
.gd-alert p { margin: 0; }
.gd-alert-title { font-size: 1.02rem; font-weight: 700; }
.gd-alert-text { margin-top: .3rem !important; font-size: .93rem; line-height: 1.55; }
.gd-pre { white-space: pre-wrap; }
.gd-alert--ok { background: #f1f8e9; border-color: #c5e1a5; border-left-color: #2e7d32; }
.gd-alert--ko { background: #fff5f5; border-color: #fed7d7; border-left-color: #c62828; }
.gd-alert--blocked { background: #fff3e0; border-color: #ffb74d; border-left-color: #e65100; }
.gd-green { color: #2e7d32; } .gd-green-text { color: #33691e; } .gd-red { color: #b71c1c; }
.gd-alert--ko .gd-alert-text { color: #c62828; }
.gd-orange { display: flex; align-items: center; gap: .4rem; color: #e65100; }
.gd-alert--blocked .gd-alert-text { color: #bf360c; }
.gd-link { color: #c62828; font-weight: 700; text-decoration: underline; }
.gd-banner { margin-bottom: .7rem; padding: .65rem .9rem; background: #fff8e1; border: 1px solid #ffd54f; border-left: 4px solid #f9a825; border-radius: 6px; }
.gd-banner p { margin: 0; color: #e65100; font-size: .95rem; font-weight: 600; line-height: 1.5; }

.gd-carrier { position: relative; margin-bottom: 6px; padding: .7rem .85rem; border: 2px solid; border-radius: 8px; overflow: hidden; cursor: pointer; user-select: none; transition: background .15s, border-color .15s; }
.gd-carrier.gd-ok { background: #fff; border-color: #c5e1a5; }
.gd-carrier.gd-ok:hover, .gd-carrier.gd-ok:focus-visible { background: #f1f8e9; border-color: #2e7d32; }
.gd-carrier.gd-ko { background: #fafafa; border-color: #ebebeb; opacity: .6; }
.gd-carrier-inner { display: flex; align-items: center; gap: .65rem; transition: filter .3s, opacity .3s; }
.gd-carrier.gd-clicked .gd-carrier-inner { opacity: .25; }
.gd-carrier.gd-ok.gd-clicked .gd-carrier-inner { filter: blur(3px); }
.gd-carrier img { width: 48px; height: 48px; flex-shrink: 0; padding: 2px; object-fit: contain; background: #fff; border: 1px solid #eee; border-radius: 6px; }
.gd-carrier-info { flex: 1; min-width: 0; }
.gd-carrier-row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: 2px; }
.gd-carrier-name { font-size: .98rem; font-weight: 700; }
.gd-carrier-desc { color: #888; font-size: .85rem; }
.gd-badge { display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 20px; font-size: .8rem; font-weight: 600; }
.gd-badge--ok { background: #e8f5e9; color: #2e7d32; }
.gd-badge--ko { background: #ffebee; color: #c62828; }
.gd-carrier-msg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: .5rem .9rem; font-size: .92rem; font-weight: 600; line-height: 1.4; text-align: center; opacity: 0; pointer-events: none; transition: opacity .3s; }
.gd-carrier.gd-ok .gd-carrier-msg { color: var(--gd-prim-dark); }
.gd-carrier.gd-ko .gd-carrier-msg { color: #c62828; }
.gd-carrier.gd-clicked .gd-carrier-msg { opacity: 1; }
.gd-note { margin-top: .6rem; padding: .55rem .8rem; background: var(--gd-soft); border: 1px solid var(--gd-line); border-radius: 6px; font-size: .86rem; line-height: 1.5; }
.gd-blink { color: #c62828; font-weight: 800; text-transform: uppercase; animation: gdBlink 1.2s ease-in-out infinite; }
@keyframes gdBlink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .gd-blink { animation: none; } .gd-day, .gd-carrier, .gd-carrier-inner, .gd-carrier-msg { transition: none; } }

/* lien sous "Ajouter au panier" (pages produit) */
.gedelais-product { margin-top: .9rem; }
.gedelais-product__btn { display: flex; align-items: center; gap: .8rem; width: 100%; padding: .7rem .9rem; border: 1px solid #e6d3df; border-radius: 10px; background: #f7eef4; color: #8a4a82; font: inherit; text-align: left; cursor: pointer; transition: background .15s, border-color .15s; }
.gedelais-product__btn:hover, .gedelais-product__btn:focus-visible { background: #f0e4ec; border-color: #8a4a82; }
.gedelais-product__btn svg { flex: none; }
.gedelais-product__btn span { display: flex; flex-direction: column; line-height: 1.3; }
.gedelais-product__btn strong { font-size: .95rem; font-weight: 600; }
.gedelais-product__btn small { color: #7a6675; font-size: .8rem; }

/* lien "Nos délais" de la barre supérieure */
.ge-reassure .ge-delais-link { display: inline-flex; align-items: center; gap: .35rem; margin-left: 1rem; padding: 0 0 0 1rem; border: 0; border-left: 1px solid rgba(138, 74, 130, .35); background: none; color: inherit; font: inherit; font-weight: 600; cursor: pointer; }
.ge-reassure .ge-delais-link:hover, .ge-reassure .ge-delais-link:focus-visible { color: #8a4a82; }
