@import url("./polices.css");
.hab-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4}
.hab-element{position:absolute;box-sizing:border-box;border-style:solid;white-space:pre-wrap;overflow:hidden;overflow-wrap:anywhere;line-height:1.16;display:flex;flex-direction:column;justify-content:center;isolation:isolate;text-shadow:0 2px 4px #0002}
.hab-element[hidden],.hab-layer[hidden]{display:none!important}
.hab-shape:before,.hab-shape:after{pointer-events:none;content:"";position:absolute;z-index:-1}
.hab-element--trait:after{height:6px;background:var(--hab-accent);bottom:0;left:20px;right:20px;border-radius:9px}
.hab-element--verre{backdrop-filter:blur(14px)}
.hab-element--ruban:before{width:8px;inset:12px auto 12px 0;background:var(--hab-accent)}
.hab-element--double:after{inset:9px;border:2px solid var(--hab-accent);border-radius:inherit}
.hab-element--degrade{background-image:linear-gradient(115deg,transparent,var(--hab-gradient))}
.hab-element--ticket{border-style:dashed!important}
.hab-element--editorial:before{width:6px;inset:10px auto 10px 0;background:var(--hab-accent)}
.hab-element[data-decor=neon]{text-shadow:0 0 14px var(--hab-accent)}
/* Typographie composée : les fragments restent du texte, jamais du HTML fourni. */
.hab-content{width:100%;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.12}
.hab-fragment{vertical-align:baseline}
.hab-element--signature{border-radius:50px 32px 55px 28px!important}
.hab-element--signature:after{left:12%;right:5%;bottom:0;height:10px;border-radius:12px;background:var(--hab-accent);transform:rotate(-2deg)}
.hab-element--signature[data-format=prix]:before{left:0;top:0;width:35%;height:10px;border-radius:12px;background:white;transform:rotate(-8deg)}
.hab-element--signature[data-format=texte]{border-left:9px solid var(--hab-accent)!important;border-radius:8px 75px 8px 8px!important}
.hab-element--couture[data-format=prix],.hab-element--pop[data-format=prix],.hab-element--sport{background-color:transparent!important;box-shadow:none!important;border:0!important}
.hab-element--couture[data-format=prix]:before{inset:0;background:var(--hab-fond);clip-path:polygon(0 0,100% 0,100% 88%,50% 100%,0 88%)}
.hab-element--couture[data-format=prix]:after{width:14px;height:14px;border-radius:50%;background:var(--hab-accent);top:20px;left:calc(50% - 7px)}
.hab-element--couture[data-format=texte]{border-top:3px solid var(--hab-accent)!important}
.hab-element--pop[data-format=prix]:before{inset:0;background:var(--hab-fond);clip-path:polygon(50% 0,60% 9%,75% 5%,80% 19%,95% 25%,91% 40%,100% 50%,91% 60%,95% 75%,80% 81%,75% 95%,60% 91%,50% 100%,40% 91%,25% 95%,20% 81%,5% 75%,9% 60%,0 50%,9% 40%,5% 25%,20% 19%,25% 5%,40% 9%)}
.hab-element--pop[data-format=texte]{border:4px solid currentColor!important;box-shadow:12px 14px 0 #21151c!important}
.hab-element--ticket{border:3px dashed var(--hab-accent)!important}
.hab-element--ticket:before{left:12%;right:12%;bottom:12px;height:9px;background:repeating-linear-gradient(90deg,var(--hab-accent) 0 3px,transparent 3px 8px,var(--hab-accent) 8px 13px,transparent 13px 20px)}
.hab-element--glass{backdrop-filter:blur(16px);box-shadow:inset 0 3px 0 #ffffffaa,0 15px 38px #0003!important}
.hab-element--sport:before{inset:0;background:var(--hab-fond);clip-path:polygon(0 0,100% 0,90% 100%,0 100%)}
.hab-element[data-decor=sport] .hab-content{width:90%}
.hab-element--sport[data-format=texte]:after{left:0;top:0;bottom:0;width:10px;background:var(--hab-accent)}
.hab-element[data-decor=editorial]{text-shadow:0 3px 16px #000b}
.hab-element--editorial:before{display:none}
.hab-element--editorial[data-format=texte]:after{left:0;right:0;top:0;height:2px;background:var(--hab-accent)}
.hab-element--round[data-format=prix]{border-radius:50%!important}
.hab-element--round[data-format=texte]{border-radius:55px 55px 55px 5px!important}
.hab-element--chrome[data-format=prix]{background-image:linear-gradient(145deg,#ffffffb0,transparent 47%,#ffffffb0 51%,transparent);box-shadow:12px 15px 0 #182b30!important;border-radius:8px 55px 8px 55px!important}
.hab-element--chrome[data-format=texte]{border-top:8px solid var(--hab-accent)!important;border-radius:0 0 50px 0!important}
.hab-element--compact{border-left:10px solid var(--hab-accent)!important}

/* La transparence porte uniquement sur la silhouette, jamais sur son texte. */
.hab-shape{position:absolute;inset:0;z-index:-1;pointer-events:none;border-style:solid;box-sizing:border-box;isolation:isolate;overflow:hidden}
