.gw-public {
  --gw-primary: #073f34;
  --gw-accent: #c4a35a;
  --gw-text: #1f2b28;
  --gw-muted: #69736f;
  --gw-border: #e9e7e1;
  --gw-bg: #f7f5ef;
  width: 100%;
  padding: clamp(48px, 8vw, 96px) 18px;
  background:
    radial-gradient(circle at 20% 10%, rgba(196,163,90,.13), transparent 26%),
    linear-gradient(180deg, #fbfaf7 0%, #f4f1e9 100%);
  color: var(--gw-text);
  box-sizing: border-box;
}
.gw-public *, .gw-public *::before, .gw-public *::after { box-sizing: border-box; }
.gw-public-shell { max-width: 980px; margin: 0 auto; text-align: center; }
.gw-brand-mark { display:inline-flex; align-items:center; justify-content:center; min-width: 160px; min-height: 48px; padding: 9px 24px; border: 1px solid color-mix(in srgb, var(--gw-accent) 70%, #fff); color: var(--gw-accent); background: var(--gw-primary); letter-spacing: .22em; font-size: 18px; font-weight: 600; margin-bottom: 28px; }
.gw-eyebrow { display: block; font-size: 11px; letter-spacing: .24em; color: var(--gw-accent); font-weight: 700; margin-bottom: 12px; }
.gw-public h1 { margin: 0 0 16px; font-size: clamp(34px, 5vw, 56px); line-height: 1.05; letter-spacing: -.025em; font-weight: 500; color: var(--gw-primary); }
.gw-intro { max-width: 700px; margin: 0 auto 34px; font-size: clamp(15px, 2vw, 18px); line-height: 1.75; color: var(--gw-muted); }
.gw-verify-card { max-width: 780px; margin: 0 auto; padding: clamp(22px, 4vw, 42px); background: rgba(255,255,255,.92); border: 1px solid rgba(7,63,52,.08); border-radius: 24px; box-shadow: 0 24px 70px rgba(7,63,52,.10); text-align: left; }
.gw-secure-line { display:flex; align-items:center; justify-content:center; gap:9px; margin-bottom:28px; color: var(--gw-primary); font-size: 13px; font-weight: 600; }
.gw-shield { display:inline-flex; width:24px; height:24px; border-radius:50%; align-items:center; justify-content:center; background: color-mix(in srgb, var(--gw-primary) 10%, #fff); color: var(--gw-primary); }
.gw-warranty-form { display:grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.gw-field { display:flex; flex-direction:column; gap:8px; }
.gw-field label { font-size: 13px; color: var(--gw-primary); font-weight: 700; letter-spacing: .01em; }
.gw-field input { width:100%; min-height: 54px; padding: 0 16px; border:1px solid var(--gw-border); border-radius:12px; background:#fff; color:#1e2825; outline:none; font-size:16px; transition:.2s ease; }
.gw-field input:focus { border-color: var(--gw-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--gw-accent) 15%, transparent); }
.gw-field small { color:#828b87; font-size:12px; line-height:1.45; }
.gw-submit { grid-column: 1 / -1; width:100%; min-height:56px; margin-top:4px; border:0; border-radius:12px; background: var(--gw-primary); color:#fff; font-size:15px; font-weight:700; letter-spacing:.03em; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:10px; transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease; }
.gw-submit:hover { transform: translateY(-1px); box-shadow: 0 12px 30px rgba(7,63,52,.18); }
.gw-submit:disabled { opacity:.72; cursor:wait; transform:none; }
.gw-loader { display:none; width:18px; height:18px; border-radius:50%; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; animation:gw-spin .8s linear infinite; }
.gw-submit.is-loading .gw-loader { display:inline-block; }
@keyframes gw-spin { to { transform:rotate(360deg); } }
.gw-result { display:none; margin-top:22px; border-radius:16px; padding:20px; gap:14px; align-items:flex-start; }
.gw-result.is-visible { display:flex; }
.gw-result-icon { flex:0 0 38px; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; }
.gw-result-copy { flex:1; min-width:0; }
.gw-result h3 { margin:0 0 5px; font-size:19px; color:inherit; }
.gw-result p { margin:0; line-height:1.6; }
.gw-result.is-active { background:#eff8f3; color:#185b3e; border:1px solid #cce9d8; }
.gw-result.is-active .gw-result-icon { background:#d5efdf; color:#185b3e; }
.gw-result.is-expired { background:#fff7e8; color:#825d18; border:1px solid #f1ddb5; }
.gw-result.is-expired .gw-result-icon { background:#f7e5bd; color:#825d18; }
.gw-result.is-not_found { background:#fff3f2; color:#8a3a35; border:1px solid #efd1ce; }
.gw-result.is-not_found .gw-result-icon { background:#f3d9d7; color:#8a3a35; }
.gw-result-meta { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-top:16px; }
.gw-result-meta div { padding:11px 12px; border-radius:10px; background:rgba(255,255,255,.64); }
.gw-result-meta span { display:block; font-size:11px; opacity:.74; margin-bottom:2px; }
.gw-result-meta strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.gw-days-left { margin-top:12px !important; font-size:13px; }
.gw-info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:28px auto 0; max-width: 900px; text-align:left; }
.gw-info-item { display:flex; gap:13px; align-items:flex-start; padding:18px; border-radius:16px; background:rgba(255,255,255,.55); border:1px solid rgba(7,63,52,.06); }
.gw-info-icon { flex:0 0 auto; color:var(--gw-accent); font-size:12px; letter-spacing:.08em; font-weight:800; padding-top:3px; }
.gw-info-item strong { display:block; color:var(--gw-primary); font-size:14px; margin-bottom:5px; }
.gw-info-item p { margin:0; color:var(--gw-muted); font-size:12px; line-height:1.55; }
@media (max-width: 720px) {
  .gw-public { padding: 42px 14px 54px; }
  .gw-brand-mark { min-width: 145px; font-size:16px; margin-bottom:22px; }
  .gw-intro { margin-bottom:26px; }
  .gw-verify-card { border-radius:18px; padding:20px; }
  .gw-warranty-form { grid-template-columns:1fr; }
  .gw-result-meta { grid-template-columns:1fr; }
  .gw-info-grid { grid-template-columns:1fr; }
}
.gw-extra-verification { grid-column: 1 / -1; display:grid; grid-template-columns:1fr; gap:18px; }
.gw-extra-field { padding:16px; border:1px dashed color-mix(in srgb, var(--gw-accent) 55%, var(--gw-border)); border-radius:12px; background:color-mix(in srgb, var(--gw-accent) 6%, #fff); }
.gw-result.is-notice { background:#eef5fb; color:#315f7c; border:1px solid #ccdeec; }
.gw-result.is-notice .gw-result-icon { background:#dbeaf5; color:#315f7c; font-family:serif; }

/* v1.4.4 — certificat digital côté client */
.gw-result.is-expiring_soon { background:#fff8eb; color:#825d18; border:1px solid #efd8a7; }
.gw-result.is-expiring_soon .gw-result-icon { background:#f7e5bd; color:#825d18; }
.gw-result.is-expired { background:#f6f5f1; color:#655f52; border:1px solid #dedbd2; }
.gw-result.is-expired .gw-result-icon { background:#e9e6de; color:#655f52; }
.gw-certificate { margin-top:18px; }
.gw-covered-product { display:grid; grid-template-columns:132px minmax(0,1fr); gap:18px; align-items:center; padding:14px; border-radius:15px; background:rgba(255,255,255,.78); border:1px solid rgba(7,63,52,.09); }
.gw-product-image { width:132px; aspect-ratio:1/1; border-radius:12px; overflow:hidden; background:#fff; border:1px solid rgba(7,63,52,.08); display:flex; align-items:center; justify-content:center; }
.gw-product-image img { width:100%; height:100%; display:block; object-fit:contain; padding:7px; }
.gw-product-image--empty { color:var(--gw-accent); background:linear-gradient(145deg,#fff,#f5f0e5); font-size:36px; font-weight:600; font-family:serif; }
.gw-covered-product-copy { min-width:0; }
.gw-product-badge { display:inline-flex; align-items:center; gap:6px; margin-bottom:8px; padding:5px 9px; border-radius:999px; background:color-mix(in srgb, var(--gw-primary) 8%, #fff); color:var(--gw-primary); font-size:11px; font-weight:700; }
.gw-product-badge > span { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:50%; background:var(--gw-primary); color:#fff; font-size:10px; }
.gw-covered-product h4 { margin:0 0 10px; color:var(--gw-primary); font-size:18px; line-height:1.35; font-weight:700; }
.gw-product-model { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; }
.gw-product-model span { font-size:11px; opacity:.68; }
.gw-product-model strong { font-size:14px; color:inherit; }
.gw-certificate-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.gw-certificate-meta > div { min-width:0; padding:12px 13px; border-radius:11px; background:rgba(255,255,255,.66); border:1px solid rgba(7,63,52,.055); }
.gw-certificate-meta span, .gw-reference-row span { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.055em; opacity:.62; margin-bottom:4px; }
.gw-certificate-meta strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.gw-coverage { margin-top:12px; padding:14px; border-radius:12px; background:rgba(255,255,255,.56); border:1px solid rgba(7,63,52,.055); }
.gw-coverage-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; font-size:12px; }
.gw-coverage-head span { font-weight:700; }
.gw-coverage-head strong { font-size:12px; }
.gw-progress { position:relative; height:8px; overflow:hidden; border-radius:999px; background:rgba(7,63,52,.10); }
.gw-progress > span { display:block; height:100%; border-radius:inherit; background:var(--gw-primary); transition:width .45s ease; }
.gw-result.is-expiring_soon .gw-progress > span { background:#b98522; }
.gw-result.is-expired .gw-progress > span { background:#8a8478; }
.gw-coverage-dates { display:flex; justify-content:space-between; gap:12px; margin-top:7px; font-size:10px; opacity:.64; }
.gw-reference-row { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:12px; padding:12px 13px; border-radius:11px; background:rgba(255,255,255,.66); border:1px solid rgba(7,63,52,.055); }
.gw-reference-row > div { min-width:0; }
.gw-reference-row strong { display:block; font-size:13px; overflow-wrap:anywhere; }
.gw-copy-reference { flex:0 0 auto; border:1px solid currentColor; border-radius:9px; padding:7px 10px; background:transparent; color:inherit; font-size:11px; font-weight:700; cursor:pointer; transition:.18s ease; }
.gw-copy-reference:hover { background:rgba(255,255,255,.8); transform:translateY(-1px); }
.gw-copy-reference.is-copied { opacity:.72; }
.gw-days-left--expired { opacity:.78; }
@media (max-width: 720px) {
  .gw-covered-product { grid-template-columns:92px minmax(0,1fr); gap:13px; padding:12px; }
  .gw-product-image { width:92px; }
  .gw-covered-product h4 { font-size:15px; }
  .gw-certificate-meta { grid-template-columns:1fr; }
  .gw-reference-row { align-items:flex-end; }
}
@media (max-width: 420px) {
  .gw-covered-product { grid-template-columns:1fr; }
  .gw-product-image { width:100%; max-width:170px; margin:0 auto; }
  .gw-covered-product-copy { text-align:center; }
  .gw-product-badge, .gw-product-model { justify-content:center; }
}
