.installer-scope{--primary: #0FABBB;--teal-green: #25AE9D;--gradient-primary: linear-gradient(103deg, #0FABBB 0%, #25AE9D 100%);--ink: #0f172a;--ink-2: #334155;--fg2: #475569;--fg3: #64748b;--fg4: #94a3b8;--paper: #ffffff;--paper-2: #f8fafc;--paper-3: #f1f5f9;--line: #e7ebf0;--line-2: #e2e8f0;--dark: #0f172a;--dark-2: #020617;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 24px;--r-full: 9999px;--shadow-sm: 0 1px 3px 0 rgb(15 23 42 / .06), 0 1px 2px -1px rgb(15 23 42 / .05);--shadow-md: 0 8px 24px -10px rgb(15 23 42 / .16);--shadow-lg: 0 30px 60px -24px rgb(15 23 42 / .3);--ease: cubic-bezier(.4, 0, .2, 1)}.installer-scope .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;font-weight:600;font-size:15px;line-height:1;border:1px solid transparent;border-radius:var(--r-sm);padding:14px 22px;cursor:pointer;transition:all .2s var(--ease);white-space:nowrap;text-decoration:none}.installer-scope .btn svg{width:18px;height:18px}.installer-scope .btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.installer-scope .btn-primary:hover{opacity:.92;box-shadow:var(--shadow-md);transform:translateY(-1px)}.installer-scope .btn-gradient{background:var(--gradient-primary);color:#fff;box-shadow:0 10px 24px -10px #0fabbb8c}.installer-scope .btn-gradient:hover{transform:translateY(-1px);box-shadow:0 16px 30px -10px #0fabbb99}.installer-scope .btn-outline{background:#fff;color:var(--ink);border-color:var(--line-2)}.installer-scope .btn-outline:hover{background:var(--paper-2);border-color:#cbd5e1}.installer-scope .btn-block{width:100%}.installer-scope .wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}@media(max-width:720px){.installer-scope .wrap{padding:0 22px}}.installer-scope .field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:7px}.installer-scope .field label .req{color:var(--primary)}.installer-scope .field input{width:100%;font-family:inherit;font-size:14.5px;color:var(--ink);padding:12px 14px;border:1px solid var(--line-2);border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}.installer-scope .field input::-moz-placeholder{color:var(--fg4)}.installer-scope .field input::placeholder{color:var(--fg4)}.installer-scope .field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0fabbb29}.installer-scope .field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}@media(max-width:480px){.installer-scope .field-row{grid-template-columns:1fr}}.installer-scope .form{margin-top:22px;display:flex;flex-direction:column;gap:15px}.installer-scope .form .btn{margin-top:6px}.installer-scope .form-fine,.installer-scope .modal-fine{font-size:11.5px;color:var(--fg4);text-align:center;line-height:1.5}.installer-scope .form-fine svg,.installer-scope .modal-fine svg{width:12px;height:12px;vertical-align:-1px;color:var(--teal-green)}.installer-scope .hide{display:none!important}.installer-scope{.dir-hero{padding:44px 0 34px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.dir-hero:after{content:"";position:absolute;top:-160px;right:-120px;width:460px;height:460px;background:radial-gradient(circle,rgba(15,171,187,.1),transparent 64%);z-index:0;pointer-events:none}.dir-hero .wrap{position:relative;z-index:1}.dir-hero.has-hero-image{padding:64px 0 48px;border-bottom:0}.dir-hero.has-hero-image:after{display:none}.dir-hero-photo{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;z-index:0}.dir-hero.has-hero-image:before{content:"";position:absolute;inset:0;z-index:1;background:#080d1ac7}.dir-hero.has-hero-image .wrap{z-index:2}.dir-hero.has-hero-image .crumbs,.dir-hero.has-hero-image .crumbs a{color:#fffc}.dir-hero.has-hero-image .crumbs>*:not(:last-child):after{color:#ffffff73}.dir-hero.has-hero-image .crumbs a:hover,.dir-hero.has-hero-image h1{color:#fff}.dir-hero.has-hero-image h1 em{color:#5eead4}.dir-hero.has-hero-image .dir-sub{color:#ffffffe6}.dir-hero.has-hero-image .prov{background:#ffffff24;border-color:#ffffff4d;color:#fff;backdrop-filter:blur(8px);box-shadow:none}.dir-hero.has-hero-image .prov b{color:#fff}.dir-hero.has-hero-image .prov .g{color:#ffffffbf}.crumbs{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--fg4);margin-bottom:18px;flex-wrap:wrap}.crumbs a{color:var(--fg3)}.crumbs a:hover{color:var(--primary)}.crumbs svg{width:13px;height:13px;color:var(--line-2)}.crumbs>*:not(:last-child):after{content:"›";margin-left:8px;color:var(--line-2)}.dir-hero h1{font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.04em;line-height:1.05;max-width:18ch}.dir-hero h1 em{font-style:normal;color:var(--primary)}.dir-sub{margin-top:16px;font-size:1.0625rem;color:var(--fg2);line-height:1.6;max-width:62ch}.dir-prov{margin-top:24px;display:flex;gap:10px;flex-wrap:wrap}.prov{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;background:#fff;border:1px solid var(--line-2);border-radius:var(--r-full);font-size:12.5px;font-weight:500;color:var(--ink-2);box-shadow:var(--shadow-sm)}.prov svg{width:14px;height:14px;color:var(--primary)}.prov b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.prov .g{color:var(--fg4)}.dir-main{padding:36px 0 80px}.dir-layout{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start}@media(max-width:980px){.dir-layout{grid-template-columns:1fr;gap:32px}}.controls{display:flex;flex-direction:column;gap:16px;margin-bottom:22px}.controls-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search{position:relative;flex:1;min-width:220px}.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--fg4);pointer-events:none}.search input{width:100%;font-family:inherit;font-size:14.5px;color:var(--ink);padding:12px 14px 12px 40px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;transition:border-color .15s,box-shadow .15s}.search input::-moz-placeholder{color:var(--fg4)}.search input::placeholder{color:var(--fg4)}.search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0fabbb29}.sortsel{position:relative}.sortsel select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:inherit;font-size:14px;font-weight:500;color:var(--ink);padding:12px 38px 12px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;cursor:pointer}.sortsel select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0fabbb29}.sortsel:after{content:"";position:absolute;right:14px;top:50%;width:9px;height:9px;border-right:2px solid var(--fg3);border-bottom:2px solid var(--fg3);transform:translateY(-70%) rotate(45deg);pointer-events:none}.viewtoggle{display:inline-flex;background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:3px}.viewtoggle button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--fg3);padding:8px 12px;border-radius:6px;transition:all .15s}.viewtoggle button svg{width:16px;height:16px}.viewtoggle button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-2);background:#fff;border:1px solid var(--line-2);padding:8px 14px;border-radius:var(--r-full);cursor:pointer;transition:all .15s;white-space:nowrap}.chip:hover{border-color:#cbd5e1}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip .c{opacity:.55;font-variant-numeric:tabular-nums}.chip.on .c{opacity:.7}.results-meta{font-size:13px;color:var(--fg3)}.results-meta b{color:var(--ink);font-weight:600}.listings{display:grid;gap:18px}.listings.grid{grid-template-columns:repeat(2,1fr)}@media(max-width:1240px){.listings.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.listings.grid{grid-template-columns:1fr}}.listings.list{grid-template-columns:1fr}.lcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s var(--ease),transform .2s var(--ease),border-color .2s}.lcard:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--line-2)}.lcard-media{position:relative;aspect-ratio:16/10;background:var(--paper-3);overflow:hidden}.lcard-media>a{display:block;width:100%;height:100%}.lcard-media img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .4s var(--ease)}.lcard:hover .lcard-media img{transform:scale(1.04)}.lcard-media-fallback{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-size:2.5rem;font-weight:700;letter-spacing:-.02em;opacity:.85}.rankbadge{position:absolute;top:12px;left:12px;z-index:2;width:30px;height:30px;border-radius:8px;background:#0f172aeb;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;backdrop-filter:blur(4px)}.lcard-media .savebtn{position:absolute;top:12px;right:12px;z-index:2;width:32px;height:32px;border-radius:8px;background:#ffffffeb;border:0;cursor:pointer;display:grid;place-items:center;color:var(--fg2);transition:color .15s,background .15s}.lcard-media .savebtn:hover{color:var(--primary)}.lcard-media .savebtn svg{width:16px;height:16px}.lcard-body{padding:18px;display:flex;flex-direction:column;gap:12px;flex:1}.lcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lcard-name{font-size:1.0625rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.2}.lcard-name a:hover{color:var(--primary)}.lcard-area{margin-top:4px;font-size:13px;color:var(--fg3);display:flex;align-items:center;gap:6px}.lcard-area svg{width:13px;height:13px;color:var(--fg4);flex-shrink:0}.logo-mono{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;font-size:16px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:-.02em}.ratingline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stars{display:inline-flex;gap:1px;color:#fbbf24}.stars svg{width:15px;height:15px}.rating-num{font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.rating-count{font-size:13px;color:var(--fg3)}.svc-chips{display:flex;gap:6px;flex-wrap:wrap}.svc{font-size:11.5px;font-weight:500;color:var(--ink-2);background:var(--paper-2);border:1px solid var(--line);padding:4px 9px;border-radius:var(--r-full);white-space:nowrap}.svc.more{color:var(--fg3)}.lcard-facts{display:flex;gap:16px;flex-wrap:wrap;padding-top:4px}.fact{display:flex;flex-direction:column;gap:1px}.fact .fl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg4);font-weight:600}.fact .fv{font-size:13.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.lcard-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center}.lcard-foot .btn{padding:10px 14px;font-size:13.5px;flex:1}.iconbtn{width:38px;height:38px;flex-shrink:0;border-radius:var(--r-sm);border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;transition:all .15s;text-decoration:none}.iconbtn:hover{border-color:#cbd5e1;color:var(--primary);background:var(--paper-2)}.iconbtn svg{width:16px;height:16px}.claim-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--fg3);background:none;border:0;cursor:pointer;padding:0;transition:color .15s;font-family:inherit}.claim-pill:hover{color:var(--primary)}.claim-pill svg{width:13px;height:13px}.badge-verified{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--teal-green);background:#25ae9d1a;padding:4px 9px;border-radius:var(--r-full);letter-spacing:.01em}.badge-verified svg{width:12px;height:12px}.lcard.claimed{border-color:#0fabbb73;box-shadow:0 0 0 1px #0fabbb40,var(--shadow-sm)}.lcard.claimed:hover{box-shadow:0 0 0 1px #0fabbb59,var(--shadow-md)}.claimed-ribbon{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#fff;background:var(--gradient-primary);padding:5px 10px;border-radius:var(--r-full);box-shadow:0 4px 12px -4px #0fabbb99}.claimed-ribbon svg{width:12px;height:12px}.claimed-offer{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;padding:8px 11px;border-radius:var(--r-sm)}.claimed-offer svg{width:15px;height:15px;color:#d97706;flex-shrink:0}.claimed-offer b{font-weight:700}.claimed-desc{font-size:13px;color:var(--fg2);line-height:1.55}.gallery-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.gallery-strip img{width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover;border-radius:6px;background:var(--paper-3)}.listings.list .lcard{flex-direction:row;align-items:stretch}.listings.list .lcard-media{aspect-ratio:auto;width:232px;flex-shrink:0}@media(max-width:720px){.listings.list .lcard{flex-direction:column}.listings.list .lcard-media{width:auto;aspect-ratio:16/10}}.listings.list .lcard-body{padding:18px 20px}.listings.list .lcard.claimed .lcard-body{display:grid;grid-template-columns:1fr}.rail{position:sticky;top:92px;display:flex;flex-direction:column;gap:16px}@media(max-width:980px){.rail{position:static}}.promo{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:22px;color:#fff;background:var(--gradient-primary);box-shadow:0 16px 30px -16px #0fabbb99}.promo:before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.08) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:radial-gradient(90% 80% at 90% 0,#000,transparent 72%);mask-image:radial-gradient(90% 80% at 90% 0,#000,transparent 72%)}.promo>*{position:relative}.promo .ad-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffffb3}.promo-logo{height:22px;filter:brightness(0) invert(1);margin:10px 0 0}.promo h3{font-size:1.2rem;font-weight:700;letter-spacing:-.02em;color:#fff;margin-top:14px;line-height:1.2}.promo p{font-size:13px;color:#ffffffeb;line-height:1.55;margin-top:8px}.promo .promo-stats{display:flex;gap:18px;margin-top:16px}.promo .ps b{display:block;font-size:1.05rem;font-weight:700;color:#fff;letter-spacing:-.02em}.promo .ps span{font-size:11px;color:#fffc}.promo .btn{margin-top:18px;width:100%;background:#fff;color:var(--ink)}.promo .btn:hover{background:#ffffffeb;transform:translateY(-1px)}.promo .promo-fine{font-size:11px;color:#fffc;text-align:center;margin-top:10px}.railcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:20px}.railcard h4{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.railcard p{font-size:13px;color:var(--fg3);line-height:1.55;margin-top:7px}.railcard .btn{margin-top:14px;width:100%}.rank-list{margin-top:12px;display:flex;flex-direction:column;gap:11px}.rank-item{display:flex;gap:11px;align-items:flex-start;font-size:12.5px;color:var(--fg2);line-height:1.45}.rank-item svg{width:16px;height:16px;color:var(--primary);flex-shrink:0;margin-top:1px}.rank-item b{color:var(--ink);font-weight:600}.claim-rail{border-color:#0fabbb4d;background:linear-gradient(180deg,#0fabbb0d,#fff 60%)}.claim-rail .ribbon-ic{width:38px;height:38px;border-radius:10px;background:#0fabbb1f;color:var(--primary);display:grid;place-items:center;margin-bottom:12px}.claim-rail .ribbon-ic svg{width:20px;height:20px}.modal-overlay{position:fixed;inset:0;z-index:200;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:22px;opacity:0;visibility:hidden;transition:opacity .22s var(--ease),visibility .22s}.modal-overlay.open{opacity:1;visibility:visible}.modal{width:100%;max-width:460px;background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);max-height:92vh;overflow-y:auto;transform:translateY(14px) scale(.98);transition:transform .26s var(--ease)}.modal-overlay.open .modal{transform:none}.modal-head{padding:26px 26px 0;position:relative}.modal-close{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line-2);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--fg2);transition:all .15s}.modal-close:hover{background:var(--paper-2);color:var(--ink)}.modal-close svg{width:17px;height:17px}.modal-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--primary);background:#0fabbb1a;padding:6px 12px;border-radius:var(--r-full)}.modal-badge svg{width:14px;height:14px}.modal-head h3{font-size:1.4rem;font-weight:700;letter-spacing:-.025em;margin-top:14px}.modal-head p{font-size:13.5px;color:var(--fg3);line-height:1.55;margin-top:8px}.modal-claiming{display:flex;align-items:center;gap:11px;margin-top:16px;padding:12px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md)}.modal-claiming .logo-mono{width:38px;height:38px;font-size:14px}.modal-claiming b{font-size:14px;color:var(--ink);display:block}.modal-claiming span{font-size:12px;color:var(--fg3)}.modal-body{padding:22px 26px 26px}.modal-steps{display:flex;gap:8px;margin-bottom:18px}.mstep{flex:1;display:flex;flex-direction:column;gap:6px}.mstep .bar{height:4px;border-radius:2px;background:var(--line-2)}.mstep.done .bar{background:var(--primary)}.mstep span{font-size:11px;color:var(--fg4);font-weight:600}.mstep.done span{color:var(--ink)}.modal .form{margin-top:0}.modal .form .btn{margin-top:6px}.modal-success{text-align:center;padding:12px 0 8px}.modal-success .ms-ic{width:66px;height:66px;border-radius:50%;background:#25ae9d1f;color:var(--teal-green);display:grid;place-items:center;margin:0 auto 18px;animation:installer-modal-pop .4s var(--ease)}.modal-success .ms-ic svg{width:32px;height:32px}.modal-success h3{font-size:1.35rem}.modal-success p{font-size:14px;color:var(--fg3);margin-top:10px;line-height:1.6}.modal-success .ms-next{margin-top:20px;text-align:left;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);padding:16px}.modal-success .ms-next .mn{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--fg2)}.modal-success .ms-next .mn+.mn{margin-top:11px}.modal-success .ms-next .mn svg{width:16px;height:16px;color:var(--primary);flex-shrink:0;margin-top:1px}.empty{text-align:center;padding:60px 20px;color:var(--fg3)}.empty svg{width:40px;height:40px;color:var(--line-2);margin-bottom:14px}.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}.empty p{font-size:14px}}@keyframes installer-modal-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
