*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body, system-ui, -apple-system, sans-serif);line-height:1.5;color:var(--color-text);background:var(--color-bg)}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}:root{--color-primary: #80bbe2;--color-primary-dark: #5f9fc9;--color-accent: #c2d882;--color-text: #1f2937;--color-text-muted: #6b7280;--color-bg: #ffffff;--color-bg-alt: #f3f4f6;--color-border: #d1d5db;--font-heading: var(--font-body);--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-2xs: .125rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--section-padding: clamp(3rem, 6vw, 5rem);--text-xs: .8125rem;--text-sm: .875rem;--text-md: .9375rem;--text-base: 1.0625rem;--text-lg: 1.1875rem;--text-xl: 1.375rem;--weight-semibold: 600;--color-surface: #ffffff;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 10px 24px rgba(0, 0, 0, .08);--focus-ring: 0 0 0 3px color-mix(in srgb, var(--color-primary) 35%, transparent);--color-danger: #dc3545;--color-danger-bg: #f8d7da;--color-danger-text: #721c24;--color-danger-subtle: #fff5f5;--color-success: #28a745;--color-success-bg: #d4edda;--color-success-text: #155724;--color-warning-bg: #fff3cd;--color-warning-text: #856404;--container-max: 1200px;--container-padding: clamp(1rem, 4vw, 2rem);--header-height: 4rem}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-padding)}.header{position:sticky;top:0;z-index:100;background:#fffffff7;border-bottom:1px solid #d1d5db;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-inner{min-height:72px;display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:1.5rem}.logo{display:inline-flex;align-items:center;justify-content:flex-start;width:150px;text-decoration:none}.logo-img{height:59px;width:auto;display:block}.nav{justify-self:center}.nav-list{display:flex;align-items:center;justify-content:center;gap:2rem;list-style:none;margin:0;padding:0}.nav-list a{text-decoration:none;color:#1f2937;font-weight:500;font-size:1rem;padding:.35rem 0;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}.nav-list a:hover{color:#5f9fc9}.nav-list a[aria-current=page]{color:#1f2937;border-bottom-color:#80bbe2}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm)}.auth-status{padding:var(--section-padding) var(--container-padding);text-align:center;color:var(--color-text-muted)}.form-error,.form-success{font-size:.9rem;margin-bottom:1rem}.form-error{color:#b91c1c}.form-success{color:#166534}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem 1.1rem;border-radius:.8rem;text-decoration:none;font-weight:600;transition:all .2s ease}.button-alt{background:transparent;color:#5f9fc9;border:1.5px solid #80bbe2}.button-alt:hover{background:#80bbe214}.hamburger{display:none;background:none;border:none;cursor:pointer;padding:.4rem;margin-left:auto}.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after{display:block;width:24px;height:2px;background:#1f2937;border-radius:2px;transition:transform .25s ease,opacity .25s ease;position:relative}.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;left:0}.hamburger-icon:before{top:-7px}.hamburger-icon:after{top:7px}.hamburger-icon.open{background:transparent}.hamburger-icon.open:before{transform:translateY(7px) rotate(45deg)}.hamburger-icon.open:after{transform:translateY(-7px) rotate(-45deg)}@media (max-width: 768px){.header-inner{grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;padding-top:.6rem;padding-bottom:.6rem;gap:0}.logo{grid-column:1;grid-row:1}.hamburger{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center}.header-actions{display:none}.nav{display:none;grid-column:1 / -1;grid-row:2;width:100%}.nav.nav-open{display:block;border-top:1px solid #e5e7eb;padding:.75rem 0}.logo-img{height:38px}.nav-list{flex-direction:column;align-items:flex-start;gap:0}.nav-list li{width:100%}.nav-list a{display:block;padding:.65rem 0;border-bottom:none;font-size:1rem}.nav-mobile-auth{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:.75rem;padding-bottom:.25rem;border-top:1px solid #e5e7eb;margin-top:.5rem}.nav-mobile-auth .button{width:auto;display:inline-flex;align-items:center;justify-content:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.8rem;min-height:42px;padding:.65rem 1.1rem;font-size:1rem;font-weight:600;text-decoration:none;box-sizing:border-box}}@media (max-width: 900px){.nav-list{flex-wrap:wrap;gap:.85rem 1.25rem}}.button{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-lg);font-weight:600;border-radius:.5rem;border:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.button-main{background:var(--color-primary);color:#fff}.button-main:hover{background:var(--color-primary-dark)}.button-alt{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.button-alt:hover{background:var(--color-primary);color:#fff}.button-big{padding:var(--space-md) var(--space-xl);font-size:1.0625rem}.banner{padding:calc(var(--section-padding) - .5rem) 0;background:linear-gradient(180deg,#f8fbff,#f3f5f7);text-align:center}.banner-content{max-width:42rem;margin-inline:auto;padding-top:.5rem}.page-title{font-size:clamp(2.1rem,4.5vw,3.2rem);font-weight:700;line-height:1.15;letter-spacing:-.03em;color:var(--color-text);margin-bottom:var(--space-lg)}.page-subtitle{font-size:1.08rem;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.banner-buttons{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center}.banner-glow{background:radial-gradient(circle at 15% 20%,rgba(194,216,130,.35),transparent 45%),radial-gradient(circle at 85% 10%,rgba(128,187,226,.4),transparent 50%),linear-gradient(180deg,#f8fbff,#f3f5f7);display:flex;align-items:center;min-height:22rem;padding:var(--space-2xl) 0}.banner-glow .banner-content{max-width:56rem;padding-top:0}.banner-glow .page-subtitle{max-width:42rem;margin-inline:auto}.banner-glow .page-subtitle:last-child{margin-bottom:0}@media (max-width: 640px){.banner-glow{min-height:24rem;padding:var(--space-xl) 0}}@media (max-width: 360px){.banner-glow{min-height:29rem}}.banner-eyebrow{display:inline-block;margin-bottom:var(--space-md);padding:.4rem 1rem;border-radius:var(--radius-pill);background:var(--color-accent);color:#374151;font-weight:700;font-size:.9rem}.page-main{padding:var(--section-padding) 0;background:var(--color-bg-alt)}.service-card,.review-read-more,.map-reset,.contact-form .button,.signin-section .button{font-family:inherit}.section{padding:var(--section-padding) 0}.section:nth-child(2n){background:var(--color-bg-alt)}.section-title{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;text-align:center;margin-bottom:.8rem;color:var(--color-text)}.section-subtitle{text-align:center;color:var(--color-text-muted);max-width:36rem;margin-inline:auto;margin-bottom:var(--space-2xl);font-size:1rem}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-xl)}.service-card-wrapper{perspective:1200px}.service-card-wrapper:only-child{width:100%;max-width:24rem;margin-inline:auto}.service-card{width:100%;min-height:260px;background:transparent;border:none;cursor:pointer;padding:0;text-align:left;perspective:1200px}.service-card-inner{position:relative;width:100%;min-height:260px;transform-style:preserve-3d;transition:transform .6s ease}.service-card.is-flipped .service-card-inner{transform:rotateY(180deg)}.service-card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:.85rem;border:1px solid rgba(31,41,55,.08);box-shadow:0 6px 18px #0f172a0a;overflow:hidden;background:#fff}.service-card-front{display:flex;flex-direction:column;justify-content:flex-start;gap:.75rem;padding:0}.service-card-back{transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:center;gap:.65rem;padding:var(--space-xl);background:linear-gradient(180deg,#f8fbff,#f1f7ff)}.service-card-back h3{font-size:1.15rem;color:var(--color-text)}.service-card-back p{font-size:.93rem;line-height:1.6;color:#4b5563}.service-card:hover .service-card-front{box-shadow:0 10px 22px #0f172a14}.service-card-img{width:100%;height:180px;object-fit:cover;display:block;border-radius:.8rem .8rem 0 0}.service-card-title{font-size:1.22rem;font-weight:600;color:var(--color-text);padding:0 var(--space-xl) var(--space-xl);margin-top:-.25rem}.area-explorer{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:var(--space-xl);align-items:stretch}.area-map,.city-panel{background:var(--color-surface);border:1px solid rgba(31,41,55,.08);border-top:6px solid var(--color-primary);border-radius:1.25rem;box-shadow:var(--shadow-md)}.area-map{display:flex;flex-direction:column;overflow:hidden;scroll-margin-top:calc(var(--header-height) + var(--space-xl))}.area-map-frame{display:block;flex:1;width:100%;min-height:450px;border:0}.city-panel{border-top-color:var(--color-accent);padding:var(--space-lg)}.city-panel-hint{color:var(--color-text-muted);font-size:.95rem;margin-bottom:var(--space-md)}.city-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-sm)}.city-empty{align-self:center;text-align:center;color:var(--color-text-muted)}@media (max-width: 900px){.area-explorer{grid-template-columns:minmax(0,1fr)}.area-map-frame{min-height:360px}}.services-hint{text-align:center;color:var(--color-text-muted);font-size:.95rem;margin-bottom:var(--space-xl)}.services-page .services-grid{--services-gap: var(--space-xl);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--services-gap)}.services-page .service-card-wrapper{flex:0 0 calc((100% - 3 * var(--services-gap)) / 4)}@media (max-width: 1100px){.services-page .service-card-wrapper{flex-basis:calc((100% - 2 * var(--services-gap)) / 3)}}@media (max-width: 860px){.services-page .service-card-wrapper{flex-basis:calc((100% - var(--services-gap)) / 2)}}@media (max-width: 560px){.services-page .service-card-wrapper{flex-basis:100%}}.services-page .service-card-face{border-radius:1.1rem;box-shadow:var(--shadow-md)}.services-page .service-card-img{border-radius:1rem 1rem 0 0}.services-page .service-card-wrapper{transition:transform .2s ease}.services-page .service-card-wrapper:hover{transform:translateY(-4px)}.services-page .service-card-back{border-top:6px solid var(--color-accent)}.services-page .service-card-title{padding-bottom:0}.services-page .service-card,.services-page .service-card-inner{min-height:320px}.service-card-cue{padding:0 var(--space-xl) var(--space-lg);margin-top:auto;font-size:.875rem;font-weight:600;color:var(--color-primary-dark)}.services-page .service-card:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:4px;border-radius:1.1rem}.page-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-top:var(--space-2xl);padding:clamp(1.5rem,3vw,2rem) clamp(1.5rem,4vw,2.5rem);background:linear-gradient(120deg,#80bbe22e,#c2d88233);border:1px solid rgba(128,187,226,.35);border-radius:1.25rem;box-shadow:var(--shadow-md)}.page-cta-title{font-size:1.4rem;color:var(--color-text)}.page-cta-text{color:#4b5563}.page-cta-actions{display:flex;flex-wrap:wrap;gap:var(--space-md)}.page-cta .button-main{background:var(--color-primary-dark)}.page-cta .button-main:hover{background:color-mix(in srgb,var(--color-primary-dark) 86%,#000)}@media (max-width: 700px){.page-cta{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion: reduce){.services-page .service-card-wrapper{transition:none}.services-page .service-card-wrapper:hover{transform:none}}.about-card-box{background:var(--color-surface);border:1px solid rgba(31,41,55,.08);border-radius:1.25rem;box-shadow:var(--shadow-md);padding:clamp(1.5rem,3vw,2.25rem)}.about-card-box p{max-width:60rem;margin:0 auto;text-align:center;line-height:1.8;color:#4b5563}.about-link-row{display:flex;justify-content:center;margin-top:1rem}.about-link{color:var(--color-primary-dark);font-weight:600;text-decoration:underline;text-underline-offset:.2rem}.about-link:hover{color:var(--color-text)}.about-single-column{display:flex;flex-direction:column;gap:2rem}.about-card{background:var(--color-surface);border:1px solid rgba(31,41,55,.08);border-top:6px solid var(--color-primary);border-radius:1.25rem;box-shadow:var(--shadow-md);padding:clamp(1.5rem,3vw,2.25rem)}.about-text{font-size:1.05rem;line-height:1.8;color:#374151;max-width:900px}.about-text+.about-text{margin-top:1rem}.about-offer-card{border-top-color:var(--color-accent)}.about-service-list-clean{margin-top:1.5rem;padding-left:0;list-style:none;display:grid;gap:.75rem}.about-service-list-clean li{position:relative;padding:.2rem 0 .2rem 1.5rem;background:transparent;border:none;border-radius:0;color:#374151;font-weight:500;box-shadow:none}.about-service-list-clean li:before{content:"";position:absolute;left:0;top:.95rem;width:.42rem;height:.42rem;border-radius:50%;background:#c2d882e6}.about-values-section{padding-top:.5rem}.about-values-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.about-value-card{background:var(--color-surface);border:1px solid rgba(31,41,55,.08);border-top:6px solid var(--color-primary);border-radius:1.25rem;padding:1.5rem;box-shadow:var(--shadow-md)}.about-value-card h3{margin-bottom:.75rem;color:#1f2937}.about-value-card p{color:#4b5563;line-height:1.7}@media (max-width: 768px){.about-values-grid{grid-template-columns:1fr}}.city-button{width:100%;min-height:2.75rem;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font:inherit;font-weight:600;color:var(--color-text);text-align:left;background:var(--color-bg-alt);border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:background .2s,border-color .2s}.city-button:hover{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));border-color:var(--color-primary)}.city-button:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.city-button.is-selected{background:color-mix(in srgb,var(--color-primary) 22%,var(--color-surface));border-color:var(--color-primary-dark)}.city-pin{flex:none;width:1.125rem;height:1.125rem;fill:var(--color-primary-dark)}.map-selection-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:3rem;padding:var(--space-sm) var(--space-md);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:.95rem}.map-reset{font:inherit;font-weight:600;color:var(--color-primary-dark);background:none;border:none;cursor:pointer}.map-reset:hover{text-decoration:underline}.testimonials-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-xl)}.testimonial-card{min-height:160px;padding:var(--space-xl);background:var(--color-surface);border-radius:1.25rem;border:1px solid rgba(31,41,55,.08);box-shadow:var(--shadow-md);display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-sm)}.review-rating{color:#8a5a00;font-size:1.1rem;line-height:1}.review-date{color:var(--color-text-muted);font-size:.875rem;margin-top:auto}.review-read-more{background:none;border:none;padding:0;align-self:flex-start;color:var(--color-primary-dark);font-size:.875rem;cursor:pointer;text-decoration:underline}.review-status{color:var(--color-text);margin-top:var(--space-2xl);text-align:center}.review-status--error{color:var(--color-danger-text);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.contact-form{max-width:28rem;margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-md)}.contact-form input,.contact-form select,.contact-form textarea{padding:var(--space-md);border-radius:.5rem;border:1px solid var(--color-border);font:inherit}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:var(--space-xl);align-items:start}.contact-info{display:flex;flex-direction:column;gap:var(--space-lg)}.contact-info-card,.contact-form-card{background:var(--color-surface);border:1px solid rgba(31,41,55,.08);border-radius:1.25rem;box-shadow:var(--shadow-md);padding:clamp(1.5rem,3vw,2.25rem)}.contact-info-card{border-top:6px solid var(--color-primary)}.contact-info-card--accent{border-top-color:var(--color-accent)}.contact-info-title{font-size:1.25rem;margin-bottom:var(--space-lg);color:var(--color-text)}.contact-info-text{color:#4b5563;margin:calc(-1 * var(--space-sm)) 0 var(--space-md)}.contact-steps{list-style:none;display:grid;gap:var(--space-lg)}.contact-step{display:flex;gap:var(--space-md);align-items:flex-start}.contact-step-num{flex-shrink:0;width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 18%,white);color:var(--color-primary-dark);font-weight:700}.contact-step h3{font-size:1rem;color:var(--color-text);margin-bottom:var(--space-2xs)}.contact-step p{font-size:.93rem;line-height:1.6;color:#4b5563}.contact-chips{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.contact-chips li{padding:.35rem .85rem;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-accent) 25%,white);border:1px solid color-mix(in srgb,var(--color-accent) 60%,white);font-size:.875rem;font-weight:500;color:#374151}.contact-link{color:var(--color-primary-dark);font-weight:600}.contact-link:hover{color:var(--color-text);text-decoration:underline;text-underline-offset:.2rem}.contact-form-title{font-size:1.5rem;color:var(--color-text)}.contact-form-subtitle{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--space-lg)}.contact-page .contact-form{max-width:none}.contact-page .contact-form input,.contact-page .contact-form select,.contact-page .contact-form textarea{background:#fafbfc;color:var(--color-text);transition:border-color .2s,box-shadow .2s,background .2s}.contact-page .contact-form input:hover,.contact-page .contact-form select:hover,.contact-page .contact-form textarea:hover{border-color:var(--color-primary)}.contact-page .contact-form input:focus,.contact-page .contact-form select:focus,.contact-page .contact-form textarea:focus{outline:none;background:#fff;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.contact-page .contact-form textarea{resize:vertical}.contact-page .contact-form .button-main{background:var(--color-primary-dark);color:#fff;padding:var(--space-md);font-size:1.0625rem;border-radius:.75rem}.contact-page .contact-form .button-main:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary-dark) 86%,#000)}.contact-page .contact-form .button-main:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}@media (max-width: 900px){.contact-grid{grid-template-columns:1fr}.contact-form-card{order:-1}}.footer{background:var(--color-text);color:#e5e7eb;padding:var(--space-3xl) 0 var(--space-lg)}.footer-inner{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:var(--space-xl);margin-bottom:var(--space-2xl)}.footer-col{display:flex;flex-direction:column;gap:var(--space-md);min-width:0}.footer-brand-name{font-size:var(--text-xl);font-weight:700;color:#fff;text-decoration:none}.footer-tagline{margin:0;max-width:22rem;font-size:var(--text-sm);line-height:1.6;color:#9ca3af}.footer-heading{margin:0;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.footer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm);font-size:var(--text-sm);overflow-wrap:anywhere}.footer-list a{color:#e5e7eb;text-decoration:none;transition:color .15s ease}.footer-list a:hover,.footer-brand-name:hover{color:var(--color-accent)}.footer-list a:focus-visible,.footer-brand-name:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--focus-ring)}@media (max-width: 900px){.footer-inner{grid-template-columns:repeat(2,1fr)}.footer-brand{grid-column:1 / -1}}@media (max-width: 480px){.footer-inner{grid-template-columns:1fr}}.footer-bottom{padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.1);text-align:center;font-size:var(--text-sm);color:#9ca3af}@media (max-width: 768px){.logo-img{height:38px}.about-inner{grid-template-columns:1fr}.header-inner{gap:var(--space-md)}.header-buttons{gap:var(--space-xs)}.header-buttons .button{padding:.45rem .85rem;font-size:.9rem}}@media (min-width: 900px){.nav{display:flex;flex:1 1 auto;justify-content:center}.header-inner{justify-content:flex-start}.header-buttons{margin-left:auto}}.signin-section{background:var(--color-bg-alt);min-height:calc(100vh - var(--header-height));display:flex;align-items:center}.signin-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:1rem;box-shadow:0 4px 24px #00000012;padding:var(--space-3xl);max-width:28rem;width:100%;margin-inline:auto}.signin-form{display:flex;flex-direction:column;gap:var(--space-md)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:.875rem;font-weight:600;color:var(--color-text)}.form-group input{padding:var(--space-md);border-radius:.5rem;border:1px solid var(--color-border);font:inherit;color:var(--color-text);transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.password-wrapper{position:relative;display:flex;align-items:center}.password-wrapper input{width:100%;padding-right:2.75rem}.password-toggle{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;padding:0;font-size:1.1rem;line-height:1;color:var(--color-text-muted);display:flex;align-items:center}.password-toggle:focus{outline:none}.form-footer-row{display:flex;justify-content:flex-end}.forgot-link{font-size:.875rem;color:var(--color-primary);text-decoration:underline}.forgot-link:hover{color:var(--color-primary-dark)}.signin-btn{width:100%;margin-top:var(--space-sm)}.signin-footer{text-align:center;font-size:.875rem;color:var(--color-text-muted)}.signin-footer a{color:var(--color-primary);font-weight:600;text-decoration:underline}.signin-footer a:hover{color:var(--color-primary-dark)}.portal-page{min-height:100vh;background-color:#f4f7f2}.portal-header{background:#fff;box-shadow:0 1px 6px #00000014;position:sticky;top:0;z-index:100}.portal-header-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem}.portal-header-actions{display:flex;align-items:center;gap:.75rem}.portal-signout-btn{background-color:#dc3545;color:#fff;border:none;border-radius:8px;padding:.5rem 1.1rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:background .2s}.portal-signout-btn:hover{background-color:#b02a37}.portal-main{max-width:900px;margin:0 auto;padding:3rem 1.5rem}.portal-welcome{text-align:center;margin-bottom:2.5rem}.portal-welcome h1{font-size:2rem;font-weight:700;color:#2a2a2a}.portal-welcome p{color:#999;font-size:1rem;margin-top:.4rem}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.portal-card{background:#fff;border-radius:18px;padding:2rem 1.5rem;text-align:center;box-shadow:0 2px 12px #00000012;cursor:pointer;border:none;transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-decoration:none}.portal-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.portal-card-green{border-top:5px solid #8db87a}.portal-card-blue{border-top:5px solid #7ec8e3}.portal-card-icon{font-size:2.4rem;margin-bottom:.5rem}.portal-card-title{font-size:1rem;font-weight:700;color:#2a2a2a}.portal-card-desc{font-size:.82rem;color:#999;line-height:1.55}@media (max-width: 620px){.portal-grid{grid-template-columns:1fr 1fr}.portal-header-inner{padding:.9rem 1.2rem}.portal-main{padding:2rem 1rem}}@media (max-width: 400px){.portal-grid{grid-template-columns:1fr}}.popup-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--color-primary);padding:var(--space-lg) var(--space-2xl);z-index:1000;text-align:center}.popup-text{margin:0;font-weight:700;font-size:1.1rem;color:var(--color-bg)}#root:has(.admin-page){display:flex;flex-direction:column;min-height:100vh}#root:has(.admin-page)>main{min-height:0!important;flex:1;display:flex;flex-direction:column}.admin-page{flex:1;display:flex;flex-direction:column}.admin-header{display:flex;justify-content:flex-end;align-items:center;width:100%;max-width:1400px;margin:0 auto;padding:var(--space-md) var(--space-lg) var(--space-sm);background-color:transparent}.admin-nav{display:flex;align-items:center;gap:var(--space-sm)}.admin-nav .button:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.admin-banner{flex-direction:column;min-height:0;padding:var(--space-lg) 0 var(--space-md)}.admin-banner .admin-intro{margin-bottom:var(--space-md)}.admin-search-block{width:100%;max-width:1400px;padding-inline:var(--space-lg)}.admin-eyebrow{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-xs)}.admin-intro .section-title{font-size:var(--text-xl);margin-bottom:var(--space-xs)}.admin-intro .section-subtitle{font-size:var(--text-md);margin-bottom:0}.admin-grid{flex:1;align-content:center;display:grid;width:100%;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--space-lg);align-items:stretch;max-width:1400px;margin:0 auto;padding:var(--space-xl) var(--space-lg)}.admin-panel{display:flex;flex-direction:column;padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-top:4px solid var(--color-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.admin-panel--quotes{border-top-color:var(--color-primary)}.admin-panel--appointments{border-top-color:var(--color-accent)}.admin-panel--declined{border-top-color:var(--color-danger)}.admin-panel--reviews,.admin-panel--photos{border-top-color:var(--color-primary-dark)}.admin-panel-stack{display:flex;flex-direction:column;gap:var(--space-lg)}.admin-panel-stack>.admin-panel{height:auto!important}.admin-panel.is-editing{border-color:var(--color-primary-dark);box-shadow:var(--shadow-md)}.admin-panel--compact{text-align:center}.admin-panel-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);text-align:center;padding-bottom:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.admin-field{margin-bottom:var(--space-md)}.admin-field:last-child,.admin-field-grid:last-child{margin-bottom:0}.admin-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:var(--space-md) var(--space-sm);margin-bottom:var(--space-md)}.admin-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-2xs)}.admin-value{font-size:var(--text-md);color:var(--color-text);line-height:1.45;overflow-wrap:anywhere}.admin-value--lead{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:1.25}.admin-value--muted{color:var(--color-text-muted)}.admin-btn{font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);padding:var(--space-sm) var(--space-md);border:1px solid transparent;border-radius:var(--radius-md);background:none;color:var(--color-text);cursor:pointer}.admin-btn:disabled{background-color:var(--color-bg-alt);color:var(--color-text-muted);border-color:var(--color-border);cursor:not-allowed}.admin-btn--success{background-color:var(--color-success);color:var(--color-surface)}.admin-btn--danger{background-color:var(--color-danger);color:var(--color-surface)}.admin-btn--primary{background-color:var(--color-primary-dark);color:var(--color-surface)}.admin-btn--ghost{border-color:var(--color-border);color:var(--color-text)}.admin-panel>*:has(+.admin-btn--pill){margin-bottom:var(--space-lg)}.admin-btn--pill{margin-top:auto;width:100%;padding:var(--space-sm) var(--space-lg);border:2px solid var(--color-primary);border-radius:var(--radius-pill);background-color:var(--color-surface);text-transform:uppercase;text-align:center}.admin-btn-row{display:flex;justify-content:center;gap:var(--space-sm);margin:var(--space-lg) 0}.admin-btn-row:first-child{margin-top:0}.admin-btn-row:last-child{margin-bottom:0}.admin-badge{display:inline-block;font-size:var(--text-md);font-weight:var(--weight-semibold);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md)}.admin-badge--success{background-color:var(--color-success-bg);color:var(--color-success-text)}.admin-badge--danger{background-color:var(--color-danger-bg);color:var(--color-danger-text)}.admin-badge--warning{background-color:var(--color-warning-bg);color:var(--color-warning-text)}.admin-callout{margin-bottom:var(--space-md);padding:var(--space-sm);background-color:var(--color-danger-subtle);border:1px solid var(--color-danger);border-radius:var(--radius-md)}.admin-error-text{color:var(--color-danger);font-size:var(--text-sm);margin-bottom:var(--space-sm)}.admin-input,.admin-textarea{width:100%;font-family:inherit;font-size:var(--text-md);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.admin-textarea{resize:vertical;margin-bottom:var(--space-sm)}.admin-input.is-invalid,.admin-textarea.is-invalid{border:2px solid var(--color-danger)}.admin-empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-md);padding:var(--space-lg) var(--space-sm)}.admin-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-md);margin-top:var(--space-lg)}.admin-pagination button{font-family:inherit;font-size:var(--text-base);padding:var(--space-xs) var(--space-sm);background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.admin-pagination button:disabled{opacity:.4;cursor:not-allowed}.admin-pagination-label{font-size:var(--text-md);color:var(--color-text-muted)}.admin-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background-color:#00000080;z-index:1000}.admin-modal-box{width:100%;max-width:400px;padding:var(--space-lg);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center}.admin-modal-box--wide{max-width:700px;text-align:left}.admin-modal-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:0 0 var(--space-sm)}.admin-modal-text{font-size:var(--text-md);color:var(--color-text-muted);margin-bottom:var(--space-lg)}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.admin-inline-group{display:flex;align-items:center;gap:var(--space-sm)}.admin-btn--link{border-color:transparent;color:var(--color-primary-dark);padding:0}.admin-btn--close{border-color:transparent;font-size:var(--text-xl);color:var(--color-text);padding:0}.admin-btn--lg{padding:var(--space-sm) var(--space-lg)}.admin-btn.is-dimmed{opacity:.6}.admin-note{margin-top:var(--space-md);font-size:var(--text-md)}.admin-note--info{color:var(--color-primary-dark)}.admin-note--success{color:var(--color-success-text)}.admin-note--danger{color:var(--color-danger)}.admin-input--edit{padding:var(--space-xs);border-color:var(--color-primary);margin-top:var(--space-xs)}.admin-callout--below{margin-top:var(--space-md);margin-bottom:0}.admin-modal-box--scroll{max-height:80vh;overflow-y:auto}.admin-review-groups{display:flex;flex-direction:column;gap:var(--space-lg)}.admin-review-list{display:flex;flex-direction:column;gap:var(--space-md)}.admin-review-group-title{margin:0 0 var(--space-sm);font-size:var(--text-base);font-weight:var(--weight-semibold)}.admin-review-group-title--pending{color:var(--color-primary-dark)}.admin-review-group-title--approved{color:var(--color-success-text)}.admin-review-card{padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.admin-photo-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md)}.admin-photo-thumb{width:120px;height:80px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.admin-file-picker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);flex:1 1 200px}.admin-file-btn{position:relative}.admin-file-btn:has(input:focus-visible){outline:2px solid var(--color-primary-dark);outline-offset:2px}.admin-file-btn:has(input:disabled),.admin-file-btn:has(input:disabled):hover{background-color:var(--color-bg-alt);color:var(--color-text-muted);border-color:var(--color-border);cursor:not-allowed}.admin-file-name{font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.admin-add-service{margin-top:var(--space-xl)}.admin-review-text{font-size:var(--text-md);line-height:1.5;margin-bottom:var(--space-sm)}.admin-stars{font-size:var(--text-sm);color:var(--color-text-muted)}.admin-badge--pill{font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill)}.admin-value--base{font-size:var(--text-base)}.admin-loading{text-align:center;padding:var(--space-2xl)}.admin-intro{text-align:center}.admin-btn,.admin-pagination button,.admin-input,.admin-textarea{transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease}.admin-btn--success:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-success) 86%,#000)}.admin-btn--danger:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-danger) 86%,#000)}.admin-btn--primary:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-dark) 86%,#000)}.admin-btn--ghost:hover:not(:disabled){background-color:var(--color-bg-alt);border-color:var(--color-primary)}.admin-btn--link:hover:not(:disabled){text-decoration:underline}.admin-btn--close:hover:not(:disabled){color:var(--color-danger)}.admin-btn--pill:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border-color:var(--color-primary-dark)}.admin-pagination button:hover:not(:disabled){background-color:var(--color-bg-alt);border-color:var(--color-primary)}.admin-input:hover:not(:disabled),.admin-textarea:hover:not(:disabled){border-color:var(--color-primary)}.admin-btn:focus-visible,.admin-pagination button:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.admin-input:focus-visible,.admin-textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.admin-input.is-invalid:focus-visible,.admin-textarea.is-invalid:focus-visible{border-color:var(--color-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 30%,transparent)}@media (prefers-reduced-motion: reduce){.admin-btn,.admin-pagination button,.admin-input,.admin-textarea{transition:none}}@media (max-width: 768px){.admin-grid{padding:var(--space-lg) var(--space-md)}.admin-header{padding:var(--space-sm) var(--space-md)}.admin-search-block{padding-inline:var(--space-md)}.admin-modal{padding:var(--space-sm)}.admin-field-grid{gap:var(--space-xs)}}.delete-account-section{width:min(100%,500px);margin:var(--space-xl) auto 0;padding:var(--space-lg);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-subtle)}.delete-account-section h3{margin-bottom:var(--space-xs);color:var(--color-danger-text)}.delete-account-section p{margin-bottom:var(--space-md)}.delete-account-button{border:1px solid var(--color-danger);border-radius:var(--radius-sm);padding:.65rem 1rem;background:var(--color-danger);color:#fff;font:inherit;font-weight:600;cursor:pointer}.delete-account-button:hover:not(:disabled){background:color-mix(in srgb,var(--color-danger) 86%,#000)}.delete-account-button:disabled{cursor:not-allowed;opacity:.65}.delete-account-dialog{text-align:left}.delete-account-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}@media (max-width: 480px){.delete-account-actions{flex-direction:column-reverse}.delete-account-actions button{width:100%}}.appointment-review-card{text-align:center}.appointment-review-form{display:flex;flex-direction:column;align-items:center;gap:1rem}.appointment-review-rating{display:flex;justify-content:center;gap:0;width:100%;margin:0 0 .25rem;padding:0;border:0}.appointment-review-star{position:relative}.appointment-review-star input{position:absolute;width:1px;height:1px;opacity:0}.appointment-review-star label{color:#ccc;cursor:pointer;font-size:1.75rem;line-height:1}.appointment-review-star label.selected{color:#f5a623}.appointment-review-star input:focus-visible+label{outline:2px solid #235c82;outline-offset:2px}.appointment-review-form>input,.appointment-review-form>textarea{box-sizing:border-box;width:100%;padding:var(--space-md);border:1px solid var(--color-border);border-radius:.5rem;font:inherit;color:var(--color-text)}.appointment-review-form>input:focus,.appointment-review-form>textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.appointment-review-form>textarea{resize:none}.appointment-review-cancel{color:var(--color-text-muted);font-size:.875rem;text-decoration:underline}.appointment-review-visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-create-quote-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem}.admin-create-quote-grid .admin-field{min-width:0;margin-bottom:0}.admin-create-quote-grid .admin-label{display:flex;align-items:flex-end;min-height:3em;line-height:1.5}.admin-create-quote-grid .admin-input{width:100%;min-width:0}
