.accordion{gap:var(--spacing-5);flex-direction:column;display:flex}.accordion-item{background:var(--color-white);border:var(--border-width-thick) solid var(--color-black);box-shadow:var(--shadow-hard-lg);border-radius:var(--radius-lg);transition:transform var(--duration-slow) var(--ease-out), box-shadow var(--duration-slow) var(--ease-out);overflow:hidden}@media (hover:hover) and (pointer:fine){.accordion-item:has(.accordion-trigger:hover){box-shadow:var(--shadow-hard-lg-hover);transform:translate(-4px,-4px)}}.accordion-trigger{width:100%;padding:var(--spacing-5) var(--spacing-7);background:var(--color-white);cursor:pointer;font-family:var(--font-display);font-size:var(--font-size-h4);font-weight:var(--font-weight-heading);text-align:left;transition:background-color var(--duration-base) var(--ease-out);border:none;justify-content:space-between;align-items:center;display:flex;color:var(--color-black)!important}.accordion-trigger:hover{background:var(--color-bg-alt)}.accordion-trigger:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.accordion-title{flex:1}.accordion-trigger span.accordion-title{color:var(--color-black)!important}.accordion-icon{font-size:1.75rem;font-weight:var(--font-weight-heading);transition:transform .3s var(--ease-out)}.accordion-trigger span.accordion-icon{color:var(--color-violet)!important}.accordion-trigger[aria-expanded=true] .accordion-icon{transform:rotate(45deg)}.accordion-content{background:var(--color-white)}.accordion-content-inner{padding:0 var(--spacing-7) var(--spacing-7)}.accordion-item .accordion-content-inner p{line-height:var(--line-height-relaxed);margin:0;color:var(--color-black)!important}.tabs{gap:var(--spacing-4);flex-direction:column;display:flex}.tabs-list{gap:var(--spacing-1);border-bottom:var(--border-width-normal) solid var(--color-black);display:flex;overflow-x:auto}.tabs-tab{padding:var(--spacing-3) var(--spacing-4);font-family:var(--font-body);font-size:var(--font-size-ui);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000}.tabs-tab:hover{color:var(--color-text);background:var(--color-bg-alt)}.tabs-tab--active{color:var(--color-text);border-bottom-color:var(--color-accent)}.tabs-tab:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.tabs-panel{padding:var(--spacing-4);background:var(--color-bg-alt);border:var(--border-width-normal) solid var(--color-black)}.modal-backdrop{z-index:10000;padding:var(--spacing-4);opacity:0;transition:opacity .2s var(--ease-out);background:#121212cc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop--visible{opacity:1}.modal{background:var(--color-white);border:var(--border-width-normal) solid var(--color-black);box-shadow:var(--shadow-hard-lg);opacity:0;max-width:100%;max-height:90vh;transition:transform var(--duration-base) var(--ease-out), opacity var(--duration-base) var(--ease-out);overflow-y:auto;transform:translateY(20px)}.modal--visible{opacity:1;transform:translateY(0)}.modal--sm{width:400px}.modal--md{width:600px}.modal--lg{width:800px}.modal-header{padding:var(--spacing-4);border-bottom:var(--border-width-thin) solid var(--color-black);justify-content:space-between;align-items:center;display:flex}.modal-title{font-family:var(--font-display);font-size:var(--font-size-h3);font-weight:var(--font-weight-heading);color:var(--color-text);margin:0}.modal-close{width:44px;height:44px;font-size:1.5rem;font-weight:var(--font-weight-heading);background:var(--color-white);border:var(--border-width-normal) solid var(--color-black);cursor:pointer;transition:transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out);justify-content:center;align-items:center;display:flex}@media (hover:hover) and (pointer:fine){.modal-close:hover{background:var(--color-bg-alt);box-shadow:4px 4px 0px 0px var(--color-black);transform:translate(-2px,-2px)}}.modal-close:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.modal-body{padding:var(--spacing-4)}.slider{position:relative}.slider-viewport{margin:0 calc(var(--shadow-hard-lg) * -1);overflow:hidden}.slider-track{transition:transform .3s var(--ease-out);display:flex}.slider-slide{flex-shrink:0}.slider-arrows{margin-top:var(--spacing-4);justify-content:space-between;display:flex}.slider-arrow{width:48px;height:48px;font-size:1.5rem;font-weight:var(--font-weight-heading);background:var(--color-white);border:var(--border-width-normal) solid var(--color-black);cursor:pointer;transition:transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out);justify-content:center;align-items:center;display:flex}@media (hover:hover) and (pointer:fine){.slider-arrow:hover:not(:disabled){background:var(--color-accent);box-shadow:4px 4px 0px 0px var(--color-black);transform:translate(-2px,-2px)}}.slider-arrow:disabled{opacity:.3;cursor:not-allowed;box-shadow:none;transform:none}.slider-arrow:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.slider-dots{justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-4);display:flex}.slider-dot{background:var(--color-bg-alt);border:var(--border-width-thin) solid var(--color-black);cursor:pointer;width:12px;height:12px;transition:background-color var(--duration-base) var(--ease-out)}.slider-dot:hover{background:var(--color-black)}.slider-dot--active{background:var(--color-accent);border-color:var(--color-black)}.slider-dot:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.filter{margin-bottom:var(--spacing-6)}.filter-list{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.filter-btn{padding:var(--spacing-2) var(--spacing-4);font-family:var(--font-body);font-size:var(--font-size-ui-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-muted);background:var(--color-white);border:var(--border-width-normal) solid var(--color-black);cursor:pointer;transition:color var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);align-items:center;gap:var(--spacing-2);display:flex}@media (hover:hover) and (pointer:fine){.filter-btn:hover{color:var(--color-text);background:var(--color-bg-alt);box-shadow:4px 4px 0px 0px var(--color-black);transform:translate(-2px,-2px)}}.filter-btn--active{background:var(--color-accent);color:var(--color-black);border-color:var(--color-black)}.filter-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.filter-btn__count{font-size:var(--font-size-ui-xs);opacity:.7}.contact-form{max-width:600px}.field{margin-bottom:var(--spacing-6)}.field__label{font-size:var(--font-size-ui);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text);margin-bottom:var(--spacing-2);display:block}.field__input,.field__select,.field__textarea{width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-body);font-family:var(--font-body);background:var(--color-white);color:var(--color-text);border:var(--border-width-normal) solid var(--color-black);transition:border-color var(--duration-base) var(--ease-out)}.field__input::placeholder,.field__textarea::placeholder{color:var(--color-text-muted)}.field__input:focus,.field__select:focus,.field__textarea:focus{outline:3px solid var(--color-accent);outline-offset:2px}.field__error{font-size:var(--font-size-ui-sm);color:var(--color-magenta);margin-top:var(--spacing-2);display:none}.field--error .field__error{display:block}.field--error .field__input,.field--error .field__select,.field--error .field__textarea{border-color:var(--color-magenta)}.btn{font-size:var(--font-size-ui);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);border:var(--border-width-normal) solid var(--color-black);background:var(--color-accent);color:var(--color-black);cursor:pointer;transition:transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);box-shadow:var(--shadow-hard);justify-content:center;align-items:center;padding:1rem 2.5rem;display:inline-flex}@media (hover:hover) and (pointer:fine){.btn:hover:not(:disabled){box-shadow:6px 6px 0px 0px var(--color-black);transform:translate(-3px,-3px)}}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.form-error{margin-top:var(--spacing-4);padding:var(--spacing-3) var(--spacing-4);background:var(--color-magenta);color:var(--color-white);border:var(--border-width-normal) solid var(--color-black);font-size:var(--font-size-ui-sm)}.contact-form-success{padding:var(--spacing-8);background:var(--color-accent);border:var(--border-width-normal) solid var(--color-black);text-align:center}.contact-form-success__icon{width:64px;height:64px;margin:0 auto var(--spacing-4);font-size:2rem;font-weight:var(--font-weight-heading);background:var(--color-white);border:var(--border-width-normal) solid var(--color-black);color:var(--color-accent);justify-content:center;align-items:center;display:flex}.contact-form-success__title{font-family:var(--font-display);font-size:var(--font-size-h2);font-weight:var(--font-weight-heading);color:var(--color-black);margin:0 0 var(--spacing-4)}.contact-form-success__message{font-size:var(--font-size-body);color:var(--color-black);margin:0}@media (width<=768px){.modal--sm,.modal--md,.modal--lg{width:100%;margin:var(--spacing-4)}.slider-arrows{margin-top:var(--spacing-3)}.slider-arrow{width:40px;height:40px;font-size:1.25rem}.filter-list{gap:var(--spacing-1)}.filter-btn{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-ui-xs)}}.btn:active,button:active,[role=button]:active{transition:transform var(--duration-instant,.1s) var(--ease-out,cubic-bezier(.23, 1, .32, 1));transform:scale(.97)}
