*{box-sizing:border-box}:root{--perspective:1800px;--ease:cubic-bezier(0.22, 1, 0.36, 1);--card-width:min(12vw, 7.5rem);--card-max-width:8.5rem;--card-aspect-ratio:3/2}.gradient-carousel-section{width:100vw;margin-left:calc(-50vw + 50%);display:flex;flex-direction:column;position:relative}.section-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;background:rgba(255,255,255,.95);z-index:1000;transition:opacity .3s ease}.section-loader--hide{opacity:0;pointer-events:none}.section-loader__ring{width:60px;height:60px;border-radius:50%;border:5px solid #e0e0e0;border-top-color:var(--primary);animation:spin .8s linear infinite}.section-loader__text{font-family:montserrat,sans-serif;font-size:1.2rem;font-weight:500;color:var(--primary);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:.6}50%{opacity:1}}.carousel-title-mobile{display:block;width:100vw;margin-left:calc(-50vw + 50%);text-align:center;padding:0}.carousel-title-mobile .carousel-title{color:var(--primary);font-family:montserrat,sans-serif;font-size:clamp(1.2rem,2.5vw,2.5rem);font-weight:700;font-style:normal}.carousel-preview-info .carousel-title-desktop{display:none;position:absolute;top:0;left:1.5rem;right:0;z-index:10;color:var(--primary);font-family:montserrat,sans-serif;font-size:clamp(1.2rem,2vw,1.4rem)!important;font-weight:300;margin:0!important;text-align:left;font-style:italic}.carousel-title{color:var(--primary);font-family:montserrat,sans-serif;font-size:clamp(1.6rem,3vw,1.6rem);font-weight:300;margin:0;text-align:center;font-style:italic}.carousel-preview-container{display:grid;grid-template-columns:1fr;gap:1rem;min-height:min(80vh,520px);width:100vw;margin-left:calc(-50vw + 50%);padding:1rem 2rem;position:relative}.carousel-preview-image{width:100%;max-width:650px;aspect-ratio:3/2;border-radius:8px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.2);border:3px solid transparent;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease;cursor:pointer;justify-self:center}.carousel-preview-image img{width:100%;height:100%;object-fit:cover;object-position:center}.carousel-preview-image:hover{transform:translateY(-8px);border-color:var(--primary);box-shadow:0 12px 40px rgba(0,0,0,.3)}.carousel-preview-info{width:100%;max-width:500px;display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative;transition:opacity .3s ease;justify-self:center}.carousel-preview-info h2{font-family:montserrat,sans-serif;font-size:clamp(1rem,2.2vw,2.2rem);font-weight:700;margin-bottom:calc(var(--gap) * .8);color:var(--primary)}.carousel-preview-info p{font-family:montserrat,sans-serif;font-size:clamp(.9rem,1.5vw,1.1rem);font-weight:300;line-height:1.6;color:var(--primary);margin-bottom:calc(var(--gap) * 1.2);font-style:italic}.carousel-preview-buttons{display:flex;gap:.5rem;justify-content:center;transition:opacity .3s ease}@media(min-width:768px){.carousel-title-mobile{display:none}.carousel-preview-info .carousel-title-desktop{display:block}.carousel-preview-container{grid-template-columns:1.5fr 1fr;gap:0;padding:2rem 4rem 0}.carousel-preview-image{max-width:650px;aspect-ratio:3/2;border-radius:15px;justify-self:center}.carousel-preview-info{display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:clamp(1rem,3vw,2rem)0 1.5rem 1.5rem}.carousel-preview-content{flex:1;display:flex;flex-direction:column;justify-content:center}#preview-title,#preview-description{transition:opacity .3s ease}.carousel-preview-buttons{display:flex;gap:.8rem;justify-content:flex-start;transition:opacity .3s ease}.carousel-preview-buttons .carousel-button{flex:none}.carousel-preview-info h2{margin-bottom:calc(var(--gap) * .8)}}@media(min-width:1024px){.carousel-preview-container{gap:0;padding:3rem 6rem 0}.carousel-preview-image{max-width:700px;aspect-ratio:3/2;justify-self:center}.carousel-preview-info h2{margin-bottom:calc(var(--gap) * .8)}}.carousel-stage{position:relative;width:100vw;height:8vh;margin-left:calc(-50vw + 50%);background:0 0;color:var(--fg);overflow:hidden;perspective:var(--perspective);overscroll-behavior:none;-webkit-user-select:none;user-select:none}@media(min-width:768px){.carousel-stage{height:25vh}}.carousel-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;display:grid;place-items:center;padding:2rem;background:rgba(255,255,255,.95);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.1);transition:opacity .2s var(--ease),visibility .2s linear}.carousel-loader--hide{opacity:0;visibility:hidden}.carousel-loader__content{display:grid;gap:12px;justify-items:center;min-width:220px}.carousel-loader__ring{width:48px;height:48px;border-radius:50%;border:4px solid #e0e0e0;border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.carousel-hint{display:flex;justify-content:center;padding:.5rem 0 1rem;width:100vw;margin-left:calc(-50vw + 50%);font-family:montserrat,sans-serif;font-size:clamp(.7rem,2vw,.9rem);font-weight:300;color:var(--primary);opacity:.7;transition:opacity .3s ease;line-height:1.4}.carousel-hint.hidden{opacity:0}.carousel-buttons{display:flex;justify-content:center;gap:.6rem;padding:1rem .5rem;width:100vw;margin-left:calc(-50vw + 50%);background:0 0}.carousel-button{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.4rem .5rem;text-decoration:none;border-radius:6px;font-family:montserrat,sans-serif;font-size:clamp(.6rem,3vw,.8rem);font-weight:500;transition:all .2s ease;flex:1;max-width:120px}.carousel-button-text{color:var(--primary)}.carousel-button-icon{width:16px;height:16px;color:var(--primary)}.carousel-button:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.15)}.carousel-button--about,.carousel-button--services{background:#fff;border:2px solid var(--primary)}.carousel-button--about:hover,.carousel-button--services:hover{background:var(--primary)}.carousel-button--about:hover .carousel-button-text,.carousel-button--services:hover .carousel-button-text,.carousel-button--about:hover .carousel-button-icon,.carousel-button--services:hover .carousel-button-icon{color:#fff}.carousel-button--contact{background:var(--primary)}.carousel-button--contact .carousel-button-text,.carousel-button--contact .carousel-button-icon{color:#fff}.carousel-button--contact:hover{background:#6c757d}.carousel-button--contact:hover .carousel-button-text,.carousel-button--contact:hover .carousel-button-icon{color:#fff}@media(min-width:768px){.carousel-buttons{gap:1.5rem;padding:2rem}.carousel-button{padding:.6rem 1rem;font-size:1rem;max-width:180px}.carousel-button-icon{width:20px;height:20px}}.carousel-stage.carousel-mode{touch-action:none;cursor:grab}.carousel-stage.carousel-mode.dragging{cursor:grabbing}.carousel-cards{position:absolute;inset:0;z-index:10;transform-style:preserve-3d}.carousel-card{position:absolute;top:50%;left:50%;width:min(var(--card-width),var(--card-max-width));aspect-ratio:var(--card-aspect-ratio);isolation:isolate;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,filter;transform-origin:center center;contain:layout paint}.carousel-card__img{border-radius:15px;opacity:1;width:100%;height:100%;object-fit:cover;display:block;transform:translateZ(0);pointer-events:auto;-webkit-user-drag:none;user-select:none;border:3px solid transparent;transition:border-color .3s ease}@media(max-width:767px){.carousel-card__img{border-radius:8px}}.carousel-card.active{z-index:1000}.carousel-card.active .carousel-card__img{border-color:var(--primary);border-width:2px}@media(prefers-reduced-motion:reduce){.carousel-card{transition:none!important;animation:none!important}}