/* Portail des offres : même typographie et surfaces que le reste du site. */
.promo-portail{min-width:0;font-family:inherit}
.promo-portail .promo-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 18px;color:var(--m-muted,#99a1aa);font-size:11px;line-height:1.6}
.promo-portail .promo-breadcrumb a{color:inherit;text-decoration:none}
.promo-portail .promo-breadcrumb a:hover{text-decoration:underline;text-underline-offset:3px}
.promo-portail .promo-tabs{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 22px;padding:4px;width:fit-content;max-width:100%;border:1px solid var(--m-line,#30363d);border-radius:10px;background:var(--m-surface,#15191d)}
.promo-portail .promo-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 17px;border:1px solid transparent;border-radius:7px;color:var(--m-muted,#a4adb6);font-family:inherit;font-size:13px;font-weight:600;line-height:1.5;text-decoration:none}
.promo-portail .promo-tabs a[aria-current=page]{border-color:var(--m-line,#38414a);background:var(--m-surface2,#242a31);color:var(--m-text,#eceeef)}
.promo-portail .promo-heading{margin-bottom:20px}
.promo-portail .promo-heading h1{margin-top:0;font-size:clamp(23px,3vw,29px);line-height:1.3;overflow-wrap:anywhere}
.promo-portail .promo-heading p{max-width:70ch;margin-bottom:0}
.promo-portail .promo-heading .promo-add{border-radius:9px;min-height:39px;padding:8px 12px;font-family:inherit;font-size:12px}
.promo-portail .promo-browse-options{margin:0 0 22px;padding:0;border:1px solid var(--m-line,#30363d);border-radius:10px;background:var(--m-surface,#15191d)}
.promo-portail .promo-browse-options>summary{padding:13px 15px;cursor:pointer;color:var(--m-text,#e5e9ee);font-size:12px;line-height:1.5}
.promo-portail .promo-browse-options[open]>summary{border-bottom:1px solid var(--m-line,#30363d)}
.promo-portail .promo-country-row{gap:10px 14px;margin:0;padding:15px;border:0;border-radius:0;background:transparent}
.promo-portail .promo-country-control{width:210px;max-width:100%;gap:6px;font-family:inherit;font-size:11px}
.promo-portail .promo-country-control select{min-height:38px;padding:7px 10px;font-family:inherit;font-size:12px}
.promo-portail .promo-country-row button{min-height:38px;padding:7px 12px;font-family:inherit;font-size:12px}
.promo-portail .promo-country-row>span{flex-basis:160px;font-size:11px;padding-bottom:8px}
.promo-portail .promo-category-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px;margin:0;padding:0 15px 15px}
.promo-portail .promo-category-tile{min-height:53px;padding:9px 10px;border-radius:8px}
.promo-portail .promo-category-tile strong{font-size:12px}
.promo-portail .promo-category-mark{width:27px;height:27px;border-radius:7px;font-size:12px}
.promo-portail .promo-popular{margin-bottom:22px}
.promo-portail .promo-popular>header{margin-bottom:11px}
.promo-portail .promo-popular h2,.promo-portail .promo-directory h2,.promo-portail .promo-result-heading h2{margin:0;font-size:17px;line-height:1.5;font-weight:600;letter-spacing:-.015em}
.promo-portail .promo-popular-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.promo-portail .promo-popular-link{display:flex;align-items:center;gap:9px;min-width:0;min-height:62px;padding:10px;border:1px solid var(--m-line,#30363d);border-radius:9px;background:var(--m-surface,#15191d);color:var(--m-text,#e5e9ee);text-decoration:none}
.promo-portail .promo-popular-link>span:last-child{display:grid;gap:3px;min-width:0}
.promo-portail .promo-popular-link strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.promo-portail .promo-popular-link small{color:var(--m-muted,#99a1aa);font-size:10px;line-height:1.4}
.promo-portail .promo-popular-avatar{display:grid;place-items:center;width:29px;height:29px;flex:none;border-radius:7px;background:var(--m-surface2,#252c34);color:var(--m-text,#dce2ea);font-size:12px;font-weight:600}
.promo-portail .promo-directory{margin-bottom:23px}
.promo-portail .promo-directory>header{margin-bottom:11px}
.promo-portail .promo-label-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.promo-portail .promo-label{min-height:54px;padding:10px 12px;gap:9px;border-radius:9px;font-size:12px}
.promo-portail .promo-label-avatar{width:27px;height:27px;border-radius:7px;font-size:11px}
.promo-portail .promo-experiences{padding:17px;border:1px solid var(--m-line,#30363d);border-radius:11px;background:var(--m-surface,#15191d)}
.promo-portail .promo-experiences .promo-label{background:var(--m-bg,#101417)}
.promo-portail .promo-filters{margin:0 0 20px;padding-top:3px}
.promo-portail .promo-filters input,.promo-portail .promo-filters select,.promo-portail .promo-filters button{font-family:inherit}
.promo-portail .promo-filters label:first-child{flex:3 1 210px}
.promo-portail .promo-filters label:nth-child(2){flex:1 1 125px}
.promo-portail .promo-result-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 13px}
.promo-portail .promo-grid>div{min-width:0}
.promo-portail .promo-grid .promo-card{margin-bottom:0}
.promo-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0 0 14px;color:var(--m-text,#e5e9ee);font-family:inherit}
.promo-price strong{font-size:21px;font-weight:650;line-height:1.4;letter-spacing:-.02em}
.promo-price del{color:var(--m-muted,#99a1aa);font-size:13px;font-weight:400;line-height:1.5}
.promo-price small{flex-basis:100%;max-width:65ch;color:var(--m-muted,#99a1aa);font-size:10px;line-height:1.65}
.promo-destination-link{display:inline-flex;align-items:center;gap:5px;margin:0 0 11px;color:var(--m-text,#e5e9ee);font-family:inherit;font-size:11px;line-height:1.6;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.promo-portail .promo-empty h2{font-size:18px}
.promo-portail .promo-lastmod,.promo-portail .promo-editorial-note{color:var(--m-muted,#99a1aa);font-size:11px;line-height:1.75;margin:17px 0 0}
.promo-portail .promo-editorial-note{padding-top:15px;border-top:1px solid var(--m-line,#30363d)}
.promo-portail :where(a,button,input,select,summary):focus-visible{outline:2px solid var(--m-coral,#ef6673);outline-offset:3px}
@media(max-width:650px){.promo-portail .promo-popular-grid,.promo-portail .promo-label-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.promo-portail .promo-country-row>span{flex-basis:100%;padding:0}.promo-portail .promo-country-control{flex:1}.promo-portail .promo-filters input,.promo-portail .promo-filters select{font-size:16px}.promo-portail .promo-heading .promo-add{width:auto}.promo-portail .promo-experiences{padding:13px}}
@media(max-width:390px){.promo-portail .promo-popular-grid,.promo-portail .promo-label-grid{grid-template-columns:1fr}.promo-portail .promo-tabs{width:100%}.promo-portail .promo-tabs a{flex:1;padding-inline:10px}}
@media print{.promo-portail .promo-tabs,.promo-portail .promo-browse-options,.promo-portail .promo-heading>form{display:none}.promo-portail .promo-label-grid{display:block}}

/* Une page de jeu rassemble les codes actifs et leur historique dans deux listes. */
.promo-portail .promo-code-summary { display: flex; flex-wrap: wrap; gap: 9px; margin: 2px 0 25px; }
.promo-portail .promo-code-summary a { display: inline-flex; align-items: center; gap: 10px; min-height: 39px; padding: 8px 12px; border: 1px solid var(--m-line, #30363d); border-radius: 8px; background: var(--m-surface, #15191d); color: var(--m-text, #e5e9ee); font-size: 12px; font-weight: 600; line-height: 1.5; }
.promo-portail .promo-code-summary a:hover { border-color: #66717d; }
.promo-portail .promo-code-summary a span { display: inline-flex; align-items: center; justify-content: center; min-width: 21px; padding: 1px 5px; border-radius: 5px; background: var(--m-surface2, #252c34); color: var(--m-muted, #a4adb6); font-size: 10px; }
.promo-portail .promo-code-section { margin: 0 0 30px; scroll-margin-top: 25px; }
.promo-portail .promo-code-section--expired { padding-top: 24px; border-top: 1px solid var(--m-line, #30363d); }
.promo-portail .promo-code-section .promo-result-heading { margin: 0 0 13px; }
.promo-portail .promo-code-section .promo-result-heading h2 { font-size: 19px; }
.promo-portail .promo-code-section-note { margin: -3px 0 17px; color: var(--m-muted, #a4adb6); font-size: 11px; line-height: 1.75; }
.promo-portail .promo-code-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.promo-portail .promo-code-list>div { min-width: 0; scroll-margin-top: 25px; }
.promo-portail .promo-code-list .promo-card { display: flex; align-items: flex-start; gap: 17px; margin: 0; padding: 17px; border-radius: 11px; box-shadow: none; }
.promo-portail .promo-code-list .promo-card-visual { width: 128px; flex: 0 0 128px; margin: 0; border: 0; border-radius: 7px; overflow: hidden; }
.promo-portail .promo-code-list .promo-card-visual>img,
.promo-portail .promo-code-list .promo-card-visual>picture img { aspect-ratio: 16 / 9; object-fit: cover; }
.promo-portail .promo-code-list .promo-card-visual figcaption { padding: 6px 8px; font-size: 8px; line-height: 1.5; }
.promo-portail .promo-code-list .promo-card-body { flex: 1 1 auto; min-width: 0; padding: 0; }
.promo-portail .promo-code-list .promo-card-header { margin-bottom: 9px; gap: 7px 10px; }
.promo-portail .promo-code-list .promo-card-brand { gap: 6px 8px; }
.promo-portail .promo-code-list .promo-merchant { font-size: 11px; }
.promo-portail .promo-code-list .promo-kind { padding: 2px 5px; font-size: 8px; }
.promo-portail .promo-code-list .promo-state { padding: 3px 6px; font-size: 9px; }
.promo-portail .promo-code-list h2 { margin: 0 0 9px; font-size: 18px; line-height: 1.35; }
.promo-portail .promo-code-list .promo-description { margin: 0 0 13px; font-size: 12px; line-height: 1.7; }
.promo-portail .promo-code-list .promo-code-panel { margin: 12px 0 14px; padding: 12px; border-radius: 8px; }
.promo-portail .promo-code-list .promo-code-label { margin-bottom: 7px; font-size: 9px; }
.promo-portail .promo-code-list .promo-copy { align-items: center; gap: 9px 11px; }
.promo-portail .promo-code-list .promo-copy input { flex: 1 1 160px; width: 0; min-height: 37px; padding: 0; border: 0; font-size: 22px; }
.promo-portail .promo-code-list .promo-copy button { flex: 0 1 auto; min-height: 37px; padding: 8px 11px; font-size: 11px; }
.promo-portail .promo-code-list .promo-copy button svg { width: 14px; height: 14px; }
.promo-portail .promo-code-list .promo-copy-status { margin: 5px 0 -2px; min-height: 15px; font-size: 9px; line-height: 1.65; }
.promo-portail .promo-code-list .promo-destination-link { margin-bottom: 10px; font-size: 10px; }
.promo-portail .promo-code-list .promo-facts { display: flex; flex-wrap: wrap; gap: 4px 13px; margin-bottom: 10px; padding-top: 11px; font-size: 9px; line-height: 1.7; }
.promo-portail .promo-code-list .promo-facts>li { min-width: 0; overflow-wrap: anywhere; }
.promo-portail .promo-code-list .promo-conditions { margin: 9px 0; }
.promo-portail .promo-code-list .promo-conditions summary { padding: 9px 0; font-size: 10px; }
.promo-portail .promo-code-list .promo-conditions p { margin-bottom: 10px; font-size: 11px; }
.promo-portail .promo-code-list .promo-merchant-link { margin: 10px 0; padding: 9px 11px; font-size: 11px; }
.promo-portail .promo-code-list .promo-note { font-size: 9px; line-height: 1.65; }
.promo-portail .promo-code-empty { padding: 20px 16px; text-align: left; }
.promo-portail .promo-code-empty p { margin: 0; font-size: 12px; }
.promo-portail .promo-expired-pagination { flex-wrap: wrap; margin: 19px 0 0; }
.promo-portail .promo-expired-pagination>a,
.promo-portail .promo-expired-pagination>span { padding: 7px 11px; border-radius: 6px; font-size: 11px; }
.promo-portail .promo-expired-pagination>span { color: var(--m-muted, #a4adb6); }
@media(max-width:650px) {
  .promo-portail .promo-code-list .promo-card { gap: 13px; padding: 14px; }
  .promo-portail .promo-code-list .promo-card-visual { width: 96px; flex-basis: 96px; }
  .promo-portail .promo-code-list h2 { font-size: 17px; }
  .promo-portail .promo-code-list .promo-copy input { font-size: 20px; }
  .promo-portail .promo-code-list .promo-copy button { max-width: 100%; }
}
@media(max-width:430px) {
  .promo-portail .promo-code-list .promo-card { display: block; }
  .promo-portail .promo-code-list .promo-card-visual { width: 128px; margin-bottom: 13px; }
  .promo-portail .promo-code-list .promo-card-header { align-items: flex-start; }
  .promo-portail .promo-code-list .promo-copy input { flex-basis: 100%; width: 100%; }
  .promo-portail .promo-code-section .promo-result-heading h2 { font-size: 18px; }
}
@media print { .promo-portail .promo-code-summary,.promo-portail .promo-expired-pagination { display: none; } .promo-portail .promo-code-list .promo-card { break-inside: avoid; } }
