:root{--ps-orange: #FF8427;--ps-orange-light: #F69C60;--ps-orange-glow: rgba(255, 132, 39, .08);--ps-green: #a0c230;--ps-green-glow: rgba(160, 194, 48, .06);--ps-dark: #1a1a1a;--ps-muted: #6b7280;--ps-border: rgba(0, 0, 0, .06);--ps-surface: #ffffff;--ps-radius: 16px;--ps-transition: all .4s cubic-bezier(.4, 0, .2, 1)}.project-single-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse 600px 400px at 90% 10%,var(--ps-orange-glow) 0%,transparent 100%),radial-gradient(ellipse 400px 350px at 5% 90%,var(--ps-green-glow) 0%,transparent 100%),linear-gradient(180deg,#fffaf6,#fff)}.project-single-hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--ps-border),transparent)}.ps-label{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ps-orange)}.ps-label:before{content:"";width:24px;height:2px;background:linear-gradient(90deg,var(--ps-orange),var(--ps-orange-light));border-radius:1px}.ps-hero__title{font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--ps-dark)}.ps-city-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:50px;font-size:13px;font-weight:600;color:var(--ps-orange);background:#ff842714;border:1px solid rgba(255,132,39,.15)}.ps-city-badge svg{width:14px;height:14px;stroke:var(--ps-orange);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ps-rating{display:flex;align-items:center;gap:8px;font-size:.875rem}.ps-rating__star{color:var(--ps-orange)}.ps-rating__star--empty{color:#d1d5db}.ps-rating__score{font-weight:700;color:var(--ps-dark)}.ps-rating__count{color:var(--ps-muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .2s ease}.ps-rating__count:hover{color:var(--ps-orange)}.ps-gallery{--swiper-navigation-color: #fff;--swiper-pagination-color: #fff;--swiper-navigation-sides-offset: 10px}.ps-gallery__main{border-radius:var(--ps-radius);overflow:hidden;position:relative;margin-bottom:12px;height:520px}.ps-gallery__main .swiper,.ps-gallery__main .swiper-wrapper,.ps-gallery__main .swiper-slide{height:100%}.ps-gallery__main .swiper-slide img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}@media(max-width:768px){.ps-gallery__main{height:320px}}.ps-gallery__thumbs{border-radius:12px;overflow:hidden}.ps-gallery__thumbs .swiper-slide{opacity:.4;border-radius:10px;overflow:hidden;cursor:pointer;transition:opacity .3s ease}.ps-gallery__thumbs .swiper-slide-thumb-active{opacity:1}.ps-gallery__thumbs .swiper-slide img{width:100%;-o-object-fit:cover;object-fit:cover}.ps-gallery__video-slide{background:var(--ps-dark)}.ps-gallery__video-slide a{display:block;width:100%;height:100%}.ps-gallery__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;padding:.75rem;border-radius:12px;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ps-border);box-shadow:0 4px 16px #00000026;transition:var(--ps-transition)}.ps-gallery__play svg{display:block;color:#e1002d}.ps-gallery__video-slide a:hover .ps-gallery__play{transform:translate(-50%,-50%) scale(1.06)}.ps-gallery__play--sm{padding:.375rem;border-radius:8px}.ps-gallery .swiper-button-prev,.ps-gallery .swiper-button-next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;z-index:2;display:flex;justify-content:center;align-items:center;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;box-shadow:0 4px 12px #0000001a;transition:all .2s ease;cursor:pointer}.ps-gallery .swiper-button-prev{left:12px}.ps-gallery .swiper-button-next{right:12px}.ps-gallery .swiper-button-prev:hover,.ps-gallery .swiper-button-next:hover{background:var(--ps-orange);box-shadow:0 4px 14px #ff842766}.ps-gallery .swiper-button-prev:hover svg,.ps-gallery .swiper-button-next:hover svg{stroke:#fff}.ps-gallery .swiper-button-prev svg,.ps-gallery .swiper-button-next svg{width:18px;height:18px;stroke:var(--ps-dark);transition:stroke .2s ease}.ps-gallery .swiper-button-prev:after,.ps-gallery .swiper-button-next:after{display:none}.ps-gallery .swiper-button-disabled{opacity:.3;pointer-events:none}.ps-sidebar{position:sticky;top:100px}.ps-sidebar__card{background:var(--ps-surface);border:1px solid var(--ps-border);border-radius:var(--ps-radius);padding:28px 24px;box-shadow:0 1px 3px #0000000a}.ps-sidebar__preview{font-size:.9375rem;line-height:1.7;color:#374151}.ps-sidebar__divider{border:none;height:1px;background:var(--ps-border);margin:20px 0}.ps-cta-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;font-size:1rem;font-weight:700;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--ps-orange) 0%,#e06f10 100%);border:none;border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 14px #ff842759}.ps-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff842773}.ps-cta-btn:active{transform:translateY(0)}.ps-cta-btn svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ps-read-more{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:600;color:var(--ps-orange);background:none;border:none;cursor:pointer;padding:0;font-family:inherit;transition:gap .2s ease}.ps-read-more:hover{gap:10px}.ps-read-more svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ps-messengers{display:flex;align-items:center;gap:8px}.ps-messengers__label{font-size:.8125rem;color:var(--ps-muted);white-space:nowrap}.ps-section{padding:3rem 0;border-top:1px solid var(--ps-border)}.ps-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.ps-section__title{font-size:1.5rem;font-weight:800;color:var(--ps-dark);letter-spacing:-.01em}.ps-description{padding:3rem 0;border-top:1px solid var(--ps-border)}.ps-description .prose{max-width:100%;font-size:1rem;line-height:1.8;color:#374151}.ps-description .prose h2,.ps-description .prose h3{color:var(--ps-dark);font-weight:700}.ps-description .prose img{border-radius:var(--ps-radius)}.ps-description .prose a{color:var(--ps-orange);text-decoration:underline;text-underline-offset:3px}.ps-description .prose a:hover{color:#e06f10}.ps-modal .modal-box{border-radius:var(--ps-radius);padding:2rem;max-width:440px}.ps-modal__title{font-size:1.25rem;font-weight:800;color:var(--ps-dark);margin-bottom:.25rem}.ps-modal__subtitle{font-size:.8125rem;color:var(--ps-muted);margin-bottom:1.5rem}.ps-modal__input{width:100%;padding:.75rem 1rem;font-size:.9375rem;font-family:inherit;border:1.5px solid #e5e7eb;border-radius:10px;background:#fafafa;color:var(--ps-dark);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.ps-modal__input:focus{border-color:var(--ps-orange);box-shadow:0 0 0 3px #ff84271f;background:#fff}.ps-modal__input::-moz-placeholder{color:#9ca3af}.ps-modal__input::placeholder{color:#9ca3af}.ps-modal__privacy{font-size:.75rem;color:#9ca3af;line-height:1.5;margin-top:.75rem}.ps-modal__privacy a{color:var(--ps-orange);text-decoration:underline;text-underline-offset:2px}.ps-cta-banner{background:linear-gradient(135deg,#fffaf6,#fff,#f8faf2);border:1px solid var(--ps-border);border-radius:var(--ps-radius);padding:3rem;position:relative;overflow:hidden}.ps-cta-banner:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--ps-orange),var(--ps-orange-light),var(--ps-green))}.ps-cta-banner__title{font-size:1.5rem;font-weight:800;color:var(--ps-dark);margin-bottom:.5rem}.ps-cta-banner__title span{color:var(--ps-orange)}.ps-cta-banner__text{font-size:.9375rem;color:var(--ps-muted);line-height:1.6}.ps-fade-up{opacity:0;transform:translateY(24px)}.ps-fade-up.is-visible{animation:psFadeUp .7s cubic-bezier(.16,1,.3,1) forwards}@keyframes psFadeUp{to{opacity:1;transform:translateY(0)}}.ps-delay-1{animation-delay:.1s}.ps-delay-2{animation-delay:.2s}.ps-delay-3{animation-delay:.3s}.ps-delay-4{animation-delay:.4s}
