

/* MARK:FORMS
*/
.form__group                           { container: input-group / inline-size; display: grid; grid-template-columns: repeat(12, 1fr); }
[class*="field--short"],
.field--long                           { grid-column: span 12; }
.field--mandatory .field__label::after { --col-text: var(--col-orange); content: "*"; margin-left: .25rem; font-weight: bold; }
.field--pad                            { margin-top: 1rem; margin-bottom: 1rem; }
.field__msg                            { margin-top: .25rem; }
/* .form--sending [data-form-submit], */
[data-form-field-valid="empty"] [data-form-field-on-invalid],
[data-form-field-valid="valid"] [data-form-field-on-invalid] { display: none; }
.input                                 { padding: var(--input-pad-top) var(--input-pad-side); border: 1px solid var(--col-light); border-radius: var(--border-radius-s); background-color: var(--col-light); }
.input--i-end                          { padding-right: 3rem; }
.input:hover                           { border-color: var(--col-blue); }
.input:focus                           { border-color: var(--col-orange); }
.input:disabled                        { opacity: .5; }
.input__i                              { position: absolute; top: 50%; transform: translateY(-50%); }
.input__i--end                         { right: .5rem; }
.form__loader                          { display: none; }
.form--sending .form__loader           { display: flex; }
.form--no-success [data-form-on-success],
.form--no-error [data-form-on-error]   { display: none; }
@container input-group (min-width: 30em) {
	.field--short-2                      { grid-column: span 2; }
	.field--short-4                      { grid-column: span 4; }
	.field--short-5                      { grid-column: span 5; }
	.field--short-6                      { grid-column: span 6; }
}

.check                                       { cursor: pointer; }
.check--pad                                  { padding-top: .5rem; padding-bottom: .5rem; }
.check__ui                                   { position: relative; z-index: 0; ___top: var(--border-radius-s); width: 1.5rem; height: 1.5rem; overflow: clip; background-color: var(--col-light); }
.check__ui.checkbox                          { border: 1px solid transparent; }
.check__ui.checkbox::before                  { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background-color: var(--col-orange); opacity: 0; }
.check--static .check__ui                    { opacity: .5; filter: grayscale(); }
.check__mark                                 { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%) scale(0); opacity: 0; }
.checkbox .check__mark                       { fill: var(--col-white); }
.check:has(input:disabled)                   { pointer-events: none; }
input:disabled + .check__label .check__ui    { opacity: .5; }
.check--checked .check__mark,
input:hover + .check__label .check__mark,
input:focus + .check__label .check__mark           { transform: translate(-50%,-50%) scale(.8); opacity: .5; }
input:checked + .check__label .check__mark         { transform: translate(-50%,-50%) scale(1); opacity: 1; }
input:hover + .check__label .check__ui.checkbox    { border-color: var(--col-orange); }
input:checked + .check__label .check__ui.checkbox::before,
.check--checked .check__ui.checkbox::before        { opacity: 1; }
.checkbox                                          { border-radius: var(--border-radius-s); }
.radio                                             { border-radius: 50%; }
.radio__mark                                       { width: .6rem; height: .6rem; background-color: var(--col-blue); border-radius: 50%; }




/* MARK:MODAL
*/

.modal,
.modal__back                    { top: 0; left: 0; width: 100%; height: 100%; height: 100dvh; }
.modal                          { position: fixed; z-index: 5; }
.modal--content                 { --pos: 1rem; }
.modal--out                     { opacity: 0; }
.modal--off                     { display: none; }
.modal__back                    { position: absolute; background-color: var(--col-blue); }
.modal__loader                  { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 4rem; opacity: 0; }
.modal--media .modal__loader,
.modal--loading .modal__loader  { opacity: 1; }
.modal--media:has(.modal__iframe--loaded) .modal__loader { opacity: 0; }
.modal__loader-c                { animation: circleloader 2s linear infinite; }
.modal__card                    { position: relative; z-index: 1; width: 100%; max-height: 100vh; max-height: 100dvh; background-color: var(--col-white); }
.modal__c                       { width: 100%; max-height: 100vh; max-height: 100dvh; overflow-x: hidden; overflow-y: auto; }
.modal--empty .modal__c         { width: 80vw; height: 50vh; }
.modal--loading .modal__card    { transform: scale(.9); opacity: 0; }
.modal__close                   { position: absolute; top: .5rem; right: .5rem;}
.modal__header                  { position: absolute; left: 0; top: 0; width: 100%; height: 5rem; padding: 1rem; }
.modal__header-box              { padding-top: 5rem; }
.modal__media                   { position: relative; aspect-ratio: 16/9; width: 80%; }
.modal__iframe                  { background-color: var(--col-blue); opacity: 0; }
.modal__iframe--loaded          { opacity: 1; }
@media (max-width: 59.95em) {
	.modal__card                  { border-radius: 0; }
}
@media (min-width: 60em) {
	.modal__card                  { max-width: calc(100% - 8rem); max-height: calc(100vh - 4rem); }
	.modal--empty .modal__card    { width: 50vw; }
	.modal__c                     { max-height: calc(100vh - 4rem); }
	.modal__loader                { width: 8rem; }
}
@media (min-width: 85em) {
	.modal__card                  { max-width: calc(100% - 16rem); }
}
@media (min-aspect-ratio: 9 / 5)  { .modal__media{ width:60%; } }
@media (min-aspect-ratio: 10 / 5) { .modal__media{ width:70%; } }
@media (min-aspect-ratio: 15 / 7) { .modal__media{ width:50%; } }
@media (max-width: 59.95em) {
	.modal--content .modal__card  { width: 100%; height: 100%; }
}


[data-contact-label-selected-line]:has([data-contact-label-selected]:empty),
[data-agcontact-contact]:has([data-agcontact-contact-c]) [data-agcontact-contact-loader]  { display: none; }
.contactmodal__iframe            { width: 100%; height: calc(100vh - 5rem); }
@media (min-width: 60em) {
	.contactmodal-col--side        { min-width: 24rem; }
	.contactmodal__iframe          { height: calc(100vh - 5rem - 8rem); }
}




/* MARK:CONTACT
*/
.contactbox                                { container: contactbox / inline-size; }
[data-mod="cols1"] > [class="col-12"] > .contactbox--compact { max-width: 70rem; margin-left: auto; margin-right: auto; }
.contactbox--compact .contact__details     { position: relative; padding-left: 7rem; }
.contactbox--compact .contact__pic         { position: absolute; left: -3rem; top: 50%; transform: translateY(-50%); width: 8rem; }
@container contactbox (max-width: 20rem) {
	.contactbox .contactbox__selectbtn       { flex-direction: column; align-items: stretch; }
	.contactbox--compact .contact__details   { padding-left: 3rem; }
	.contactbox--compact .contact__pic       { width: 5rem; }
}

.contactfull__pic                          { flex: 1 1 0; min-width: 4rem; max-width: 10rem; }
@media (min-width: 60em) {
	.contactfull__pic                        { max-width: 20rem; }
}
@media (min-width: 85em) {
	.contactfull__btn                        { --btn-pad-top: 3rem; --i-size: 2rem; flex: 1 1 0; flex-direction: column; min-width: 0; }
}

.largecontact__pic                         { width: 4rem; max-width: 100%; }
@media (min-width: 60em) {
	.largecontact__pic                       { width: 12rem; }
}



:root                                      { --slider-ctrl-offs: -1.5rem; }
.slider__ctrl                              { position: absolute; top: 50%; transform: translateY(-50%); }
.slider__ctrl:disabled                     { opacity: 0; }
.slider__ctrl--prev                        { left: var(--slider-ctrl-offs); }
.slider__ctrl--next                        { right: var(--slider-ctrl-offs); }
@media (max-width: 42.45em) {
	.slider__ctrl                            { display: none; }
}
@media (min-width: 85em) {
	:root                                    { --slider-ctrl-offs: -3.5rem; }
}


.contentslider .slider__item,
.cardslider .slider__item                  { width: min(32rem,90%); }
.mediaslider .slider__item--portrait       { width: min(19rem,60%); }
.mediaslider .slider__item--square         { width: min(25rem,70%); }
.mediaslider .slider__item--landscape      { width: min(35rem,90%); }


.quotes .slider__item            { flex: 0 0 auto; width: min(36rem,90%); }

.quotebox                        { container: quotebox / inline-size; }
.quotebox__pic                   { min-width: 3rem; width: 6rem; }
@media (min-width: 60em) {
	.quotebox--l                   { gap: 4rem; }
}
@media (min-width: 85em) {
	.quotebox__pic                 { width: 8rem; }
}
@container quotebox (max-width: 20rem) {
	.quotebox__header              { flex-direction: column; align-items: flex-start; }
}
@container quotebox (min-width: 50rem) {
	.quotebox__pic--l              { width: max(20rem,20%); }
}


:root                                   { --loopslider-pad: 3rem; }
.loopslider__slides                     { display: flex; width: max-content; max-width: none; overflow: visible; height: 6rem; }
.loopslider__slide                      { flex-grow: 0; flex-shrink: 0; margin-right: var(--loopslider-pad); user-select: none; }
.loopslider__slide:last-child           { margin-right: 0; }
@media (min-width: 42.5em) {
	:root                                 { --loopslider-pad: 5rem; }
	.loopslider__slides                   { height: 7.5rem; }
}
@media (min-width: 60em) {
	:root                                 { --loopslider-pad: 8rem; }
	.loopslider__slides                   { height: 10rem; }
}



.counterscols                          { container: counters / inline-size; }
.counters                              { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@container counters (min-width: 30rem) {
	.counters     { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@container counters (min-width: 40rem) {
	.counters     { grid-template-columns: repeat(10, minmax(0, 1fr)); }
}

.counter                               { width: 100%; grid-column: span 2; }
/* .counter                               { width: 20rem; flex: 1 0 auto; } */
.counter__circle                       { max-width: 17.5rem; width: 100%; margin: 0 auto; }
.counter--out .counter__circle::before { transform: translateY(10%); }
.counter--out .counter__circle::after  { transform: translateY(-10%); }
.counter__descr                        { text-wrap: balance; }



.accordion__item--active .accordion__btn   { --col-text: var(--col-white);  --col-fill: var(--col-white); background-color: var(--col-orange); }
.accordion__item                           { overflow: hidden; }
.accordion__copy                           { padding: var(--btn-pad-top) var(--btn-pad-side) var(--box-pad) var(--btn-pad-side); }
.accordion__copy--off                      { display: none; }
.accordion__item--active .accordion__icon  { transform: rotate(-180deg); }
@media (min-width: 60em) {
	.accordion                               { --btn-pad-top: 1.5rem; }
}

[data-onoff=""] [data-onoff-c]             { display: none; }



.timeline                                  { position: relative; z-index: 0; }
.timeline::before                          { content: ""; position: absolute; top: 1px; left: 50%; bottom: 1px; z-index: -1; width: var(--border); transform: translateX(-50%); background-color: var(--col-blue); }
.timeline__item                            { container: timeline-item / inline-size; --border-radius-m: .5rem; }
@container timeline-item (max-width: 25rem) {
	.timeline__header                        { flex-direction: column; align-items: flex-start; gap: .75rem; }
}



.siegel                                    { --slider-gap: 1rem; }
@media (max-width: 59.95em) {
	.siegel__pic                             { min-width: 10rem; }
}
@media (min-width: 60em) {
	.siegel--l                               { border-top-right-radius: var(--border-radius-m); border-bottom-right-radius: var(--border-radius-m); }
	.siegel--r                               { border-top-left-radius: var(--border-radius-m); border-bottom-left-radius: var(--border-radius-m); }
}



.teamgrid + .teamgrid--simple              { margin-top: 4rem; }
a.newsgrid__pic:hover .newsgrid__img,
a.newsgrid__pic:focus .newsgrid__img,
.teamgrid__item:focus .teamgrid__img,
.teamgrid__item:hover .teamgrid__img       { transform: scale(1.03); }
.teamgrid__item:focus .teamgrid__name,
.teamgrid__item:hover .teamgrid__name      { --col-text: var(--col-orange); }





/* ----------------------------------------
   MARK:CONSENT
	 ---------------------------------------- */

.consent__banner                 { position: fixed; bottom: 0; left: 0; z-index: 4; width: 100%; box-shadow: 0 0 var(--border) rgb(0,52,79,.08); }
.modal__card:has(.consent__box)  { max-width: 75rem; }





/* ----------------------------------------
   MARK:FOOTER
	 ---------------------------------------- */

.ftr                              { padding-bottom: 3rem; }
.ftr__logo                        { width: 11.5rem; }
.ftr__newsletter-btn              { min-width: 20rem; }
.ftr__canvas                      { min-height: 100%; }
.ftr__link                        { --btn-pad-top: .375rem; }
@media (max-width: 42.45em) {
	.ftr__newsletter-btn            { width: 100%; }
}
@media (min-width: 42.5em) {
	.ftr__canvas                    { --box-pad: 2rem; }
}
@media (min-width: 60em) {
	.ftr                            { padding-bottom: 0; }
	.ftr__logo                      { width: 16rem; }
	.ftr__side                      { padding-top: 1.25rem; padding-bottom: 2rem; }
	.ftr__social-links              { --cta-pad-start: .5rem; }
	.ftr__canvas                    { border-top-left-radius: 2rem; }
}
@media (min-width: 85em) {
	.ftr__side                      { padding-top: 3.5rem; padding-bottom: 4rem; }
	.ftr__canvas                    { --box-pad: 4rem; border-top-left-radius: 4rem; }
}
