:root{--carousel-bg:#f9fafb;--carousel-overlay-start:#0000;--carousel-overlay-mid:#0006;--carousel-overlay-end:#000000b3;--carousel-text-color:#fff;--carousel-btn-bg:#ffffffe6;--carousel-btn-bg-hover:#fff;--carousel-btn-size:48px;--carousel-btn-size-tablet:40px;--carousel-dot-bg:#ffffff80;--carousel-dot-bg-hover:#fffc;--carousel-dot-bg-active:#fff;--carousel-dot-size:10px;--carousel-dot-size-active:12px;--carousel-transition:.5s cubic-bezier(.4,0,.2,1);--carousel-height-desktop:85vh;--carousel-height-tablet:60vh;--carousel-height-mobile:50vh;--carousel-height-xs:45vh;--carousel-min-height-desktop:500px;--carousel-min-height-tablet:400px;--carousel-min-height-mobile:350px;--carousel-min-height-xs:300px}.carousel{background:var(--carousel-bg);box-sizing:border-box;border-radius:0;width:100%;max-width:100%;position:relative;overflow:hidden}.carousel:focus{outline-offset:2px;outline:2px solid #3b82f680}.carousel-track{transition:transform var(--carousel-transition);will-change:transform;width:100%;display:flex}.carousel-slide{min-width:100%;min-height:var(--carousel-min-height-desktop);height:var(--carousel-height-desktop);justify-content:center;align-items:flex-end;display:flex;position:relative}.carousel-image{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.carousel-overlay{z-index:2;background:linear-gradient(180deg,var(--carousel-overlay-start)0%,var(--carousel-overlay-mid)50%,var(--carousel-overlay-end)100%);box-sizing:border-box;width:100%;padding:32px 24px;position:relative}.carousel-title{color:#fff;text-shadow:0 2px 4px #00000080;margin:0;font-size:2.5rem;font-weight:700;line-height:1.2}.carousel-desc{opacity:.95;color:#fff;text-shadow:0 1px 2px #00000080;margin:12px 0 0;font-size:1.25rem;line-height:1.5}.carousel-btn{background:var(--carousel-btn-bg);color:#1f2937;width:var(--carousel-btn-size);height:var(--carousel-btn-size);cursor:pointer;z-index:5;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:1.75rem;font-weight:600;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.carousel-btn:hover{background:var(--carousel-btn-bg-hover);transform:translateY(-50%)scale(1.05);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.carousel-btn:focus{outline-offset:2px;outline:2px solid #22c55e80}.carousel-btn.prev{left:24px}.carousel-btn.next{right:24px}.carousel-dots{z-index:6;gap:10px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.dot{width:var(--carousel-dot-size);height:var(--carousel-dot-size);background:var(--carousel-dot-bg);cursor:pointer;border:none;border-radius:999px;padding:0;transition:all .3s}.dot:hover{background:var(--carousel-dot-bg-hover);transform:scale(1.1)}.dot.active{background:var(--carousel-dot-bg-active);width:var(--carousel-dot-size-active);height:var(--carousel-dot-size-active)}@media (max-width:768px){.carousel-slide{min-height:var(--carousel-min-height-tablet);height:var(--carousel-height-tablet)!important}.carousel-title{font-size:1.75rem}.carousel-desc{font-size:1.1rem}.carousel-btn{width:var(--carousel-btn-size-tablet);height:var(--carousel-btn-size-tablet);font-size:1.5rem}.carousel-btn.prev{left:16px}.carousel-btn.next{right:16px}.carousel-overlay{padding:24px 20px}}@media (max-width:640px){.carousel-slide{min-height:var(--carousel-min-height-mobile);height:var(--carousel-height-mobile)!important}.carousel-image{object-fit:cover;object-position:center center}.carousel-title{font-size:1.25rem}.carousel-desc{font-size:.95rem}.carousel-btn{width:32px;height:32px;font-size:1.1rem}.carousel-btn.prev{left:8px}.carousel-btn.next{right:8px}.carousel-overlay{padding:20px 16px 60px}.carousel-dots{gap:6px;bottom:12px}.dot{width:8px;height:8px}.dot.active{width:10px;height:10px}}@media (max-width:480px){.carousel-slide{min-height:var(--carousel-min-height-xs);height:var(--carousel-height-xs)!important}.carousel-title{font-size:1.1rem}.carousel-desc{font-size:.875rem}.carousel-btn{width:28px;height:28px;font-size:1rem}.carousel-btn.prev{left:6px}.carousel-btn.next{right:6px}.carousel-overlay{padding:16px 12px 50px}.carousel-dots{gap:5px;bottom:10px}.dot{width:7px;height:7px}.dot.active{width:9px;height:9px}}
