.abb2 { --abb2-accent: var(--bs-primary, #333); --abb2-muted: var(--bs-secondary-color, #6c757d); --abb2-line: var(--bs-border-color, #dee2e6); --abb2-soft: var(--bs-tertiary-bg, #f6f7f8); }
.abb2__hero { text-align: center; max-width: 760px; margin: 0 auto 2rem; }
.abb2__title { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: .5rem; }
.abb2__lead { color: var(--abb2-muted); font-size: 1.05rem; margin-bottom: 1.25rem; }
.abb2__hero-more { margin: -.5rem 0 0; font-size: .95rem; }
.abb2__hero-more a { font-weight: 600; }
.abb2__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 2rem; align-items: start; }
.abb2__main { background: #fff; border: 1px solid var(--abb2-line); border-radius: 12px; padding: 1.75rem; }
.abb2__h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }
.abb2__h3 { font-size: 1.1rem; margin-bottom: .75rem; }
.abb2__source { margin: -.5rem 0 1.1rem; padding: .55rem .85rem; border-left: 3px solid var(--abb2-accent); border-radius: 6px; background: var(--abb2-soft); font-size: .92rem; }
.abb2__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.abb2__field { margin-bottom: 1.1rem; min-width: 0; }
.abb2__field > label, .abb2__label, .abb2__choices legend { display: block; font-weight: 600; font-size: .92rem; margin-bottom: .35rem; }
.abb2__req { color: var(--bs-danger, #dc3545); }
.abb2__opt { font-weight: 400; color: var(--abb2-muted); }
.abb2__choices { border: 0; padding: 0; }
.abb2__choices legend { float: none; width: auto; padding: 0; }
.abb2__choice { display: inline-flex; align-items: center; gap: .5rem; margin: 0 .5rem .5rem 0; padding: .55rem .9rem; border: 1px solid var(--abb2-line); border-radius: 999px; cursor: pointer; font-size: .92rem; transition: border-color .15s, background-color .15s; }
.abb2__choice:hover { border-color: var(--abb2-accent); }
.abb2__choice:has(input:checked) { border-color: var(--abb2-accent); background: var(--abb2-soft); font-weight: 600; }
.abb2__choice input { accent-color: var(--abb2-accent); margin: 0; }
.abb2 .abb2__drop { position: relative; display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: 1.25rem 1rem; border: 2px dashed var(--abb2-line); border-radius: 10px; background: var(--abb2-soft); text-align: center; cursor: pointer; transition: border-color .15s; }
.abb2__drop:hover, .abb2__drop.is-over, .abb2__drop:focus-within { border-color: var(--abb2-accent); }
.abb2__drop svg { color: var(--abb2-accent); }
.abb2 .abb2__drop > span { display: block; }
.abb2__drop-text { font-weight: 600; font-size: .95rem; }
.abb2__drop-hint { font-size: .85rem; color: var(--abb2-muted); }
.abb2__file { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.abb2__files { list-style: none; padding: 0; margin: .6rem 0 0; }
.abb2__files[hidden] { display: none; }
.abb2__files li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem .6rem; border-radius: 6px; font-size: .88rem; background: var(--abb2-soft); margin-bottom: .3rem; overflow-wrap: anywhere; }
.abb2__files li.is-error { color: var(--bs-danger, #dc3545); }
.abb2__formats { font-size: .78rem; color: var(--abb2-muted); margin: .4rem 0 0; }
.abb2__consent { display: flex; gap: .6rem; align-items: flex-start; font-size: .9rem; margin: .5rem 0 1.25rem; }
.abb2__consent input { margin-top: .2rem; flex: 0 0 auto; accent-color: var(--abb2-accent); width: 1.05rem; height: 1.05rem; }
.abb2__submit { width: 100%; }
.abb2__errors ul { margin: 0; padding-left: 1.1rem; }
.abb2__done { text-align: center; padding: 1rem 0; }
.abb2__done svg { color: var(--bs-success, #198754); margin-bottom: .5rem; }
.abb2__done h2 { font-size: 1.35rem; }
.abb2__side { display: flex; flex-direction: column; gap: 1.25rem; }
.abb2__card, .abb2__faq { border: 1px solid var(--abb2-line); border-radius: 12px; padding: 1.25rem 1.4rem; background: #fff; }
.abb2__contact { list-style: none; padding: 0; margin: 0; }
.abb2__contact li { display: flex; flex-direction: column; margin-bottom: .6rem; }
.abb2__contact span { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--abb2-muted); }
.abb2__contact a { font-size: 1.1rem; font-weight: 600; overflow-wrap: anywhere; }
.abb2__faq details { border-top: 1px solid var(--abb2-line); }
.abb2__faq details:first-of-type { border-top: 0; }
.abb2__faq summary { cursor: pointer; padding: .75rem 1.5rem .75rem 0; font-weight: 600; font-size: .95rem; list-style: none; position: relative; }
.abb2__faq summary::-webkit-details-marker { display: none; }
.abb2__faq summary::after { content: '+'; position: absolute; right: 0; top: .55rem; font-size: 1.3rem; line-height: 1; color: var(--abb2-accent); transition: transform .3s cubic-bezier(.4,0,.2,1); }
.abb2__faq details.is-open summary::after, .abb2__faq details[open]:not(.is-closing) summary::after { transform: rotate(45deg); }
.abb2__faq summary:hover { color: var(--abb2-accent); }
.abb2__faq-body { overflow: hidden; }
.abb2__faq-body p { color: var(--abb2-muted); font-size: .92rem; margin: 0; padding: 0 0 .9rem; }
.abb2__icons { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; list-style: none; padding: 1.25rem .5rem; margin: 0; border: 1px solid var(--abb2-line); border-radius: 12px; background: #fff; text-align: center; }
.abb2__icons li { display: flex; flex-direction: column; align-items: center; gap: .15rem; min-width: 0; }
.abb2__icons svg { color: var(--abb2-accent); margin-bottom: .35rem; }
.abb2__icons strong { font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; line-height: 1.2; }
.abb2__icons span { font-size: .75rem; color: var(--abb2-muted); line-height: 1.25; }
.abb2__catalog { text-align: center; margin: 3rem 0 0; }
.abb2__catalog-list { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; list-style: none; max-width: 1000px; padding: 0; margin: 1.25rem auto; }
.abb2__catalog-list a { display: inline-block; padding: .5rem .95rem; border: 1px solid var(--abb2-line); border-radius: 999px; background: #fff; color: inherit; font-size: .92rem; text-decoration: none; transition: border-color .2s, color .2s, transform .2s, box-shadow .2s; }
.abb2__catalog-list a:hover, .abb2__catalog-list a:focus-visible { border-color: var(--abb2-accent); color: var(--abb2-accent); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.abb2__refs { text-align: center; margin: 3rem 0 2rem; }
.abb2__section-title { font-size: clamp(1.3rem, 2.4vw, 1.7rem); text-transform: uppercase; letter-spacing: .02em; margin-bottom: .35rem; }
.abb2__section-lead { color: var(--abb2-muted); font-size: 1.05rem; margin-bottom: 1.5rem; }
.abb2__refs-photos { display: block; max-width: 100%; height: auto; margin: 0 auto 2rem; }
.abb2__refs-label { font-weight: 700; color: var(--abb2-accent); font-size: 1.15rem; margin-bottom: 1rem; }
.abb2__refs-logos { display: block; width: 100%; max-width: 1200px; height: auto; margin: 0 auto; }
.abb2__trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; list-style: none; padding: 1.75rem 1rem; margin: 0 0 2rem; background: var(--abb2-soft); border-radius: 12px; text-align: center; }
.abb2__trust li { display: flex; flex-direction: column; align-items: center; gap: .2rem; min-width: 0; }
.abb2__trust svg { color: var(--abb2-accent); margin-bottom: .4rem; }
.abb2__trust strong { font-size: .95rem; line-height: 1.25; }
.abb2__trust span { font-size: .85rem; color: var(--abb2-muted); }
.abb2__trust a { color: inherit; text-decoration: underline; }
.abb2--js [data-abb2-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .6s cubic-bezier(.2,.7,.2,1) var(--d, 0s), transform .6s cubic-bezier(.2,.7,.2,1) var(--d, 0s); }
.abb2--js [data-abb2-reveal].is-visible { opacity: 1; transform: none; }
.abb2__choice { transition: border-color .2s, background-color .2s, transform .2s, box-shadow .2s; }
.abb2__choice:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.abb2__choice:has(input:checked) { box-shadow: 0 0 0 3px color-mix(in srgb, var(--abb2-accent) 18%, transparent); }
.abb2 .form-control { transition: border-color .2s, box-shadow .2s; }
.abb2__icons li svg, .abb2__trust li svg { transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.abb2__icons li:hover svg, .abb2__trust li:hover svg { transform: translateY(-4px) scale(1.06); }
.abb2__trust li { transition: transform .25s; }
.abb2__drop.is-over { animation: abb2-pulse 1.1s ease-in-out infinite; }
@keyframes abb2-pulse { 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--abb2-accent) 16%, transparent); } }
.abb2__files li { animation: abb2-in .3s ease both; }
@keyframes abb2-in { from { opacity: 0; transform: translateY(-4px); } }
.abb2__submit { position: relative; transition: transform .15s, box-shadow .2s; }
.abb2__submit:hover { box-shadow: 0 8px 20px color-mix(in srgb, var(--abb2-accent) 30%, transparent); }
.abb2__submit:active { transform: scale(.985); }
.abb2__spinner { display: none; width: 1.1em; height: 1.1em; margin-right: .6em; vertical-align: -.15em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: abb2-spin .7s linear infinite; }
.abb2__submit.is-sending { pointer-events: none; opacity: .85; }
.abb2__submit.is-sending .abb2__spinner { display: inline-block; }
@keyframes abb2-spin { to { transform: rotate(360deg); } }
.abb2__done.is-animated svg path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: abb2-draw .9s cubic-bezier(.65,0,.35,1) .15s forwards; }
.abb2__done.is-animated h2, .abb2__done.is-animated p, .abb2__done.is-animated .btn { animation: abb2-in .5s ease both; animation-delay: .5s; }
@keyframes abb2-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .abb2 *, .abb2 *::before, .abb2 *::after { animation: none !important; transition: none !important; }
  .abb2--js [data-abb2-reveal] { opacity: 1; transform: none; }
  .abb2__done.is-animated svg path { stroke-dashoffset: 0; }
}
@media (max-width: 991.98px) {
  .abb2__grid { grid-template-columns: 1fr; }
  .abb2__trust { grid-template-columns: repeat(2, 1fr); row-gap: 1.5rem; }
}
@media (max-width: 575.98px) {
  .abb2__row { grid-template-columns: 1fr; gap: 0; }
  .abb2__main { padding: 1.25rem 1rem; }
  .abb2__icons { gap: .4rem; padding: 1rem .25rem; }
  .abb2__icons svg { width: 44px; height: 44px; }
  .abb2__refs { margin-top: 2rem; }
}
