html,body,#root{margin:0;min-height:100%}:root{--bg-top: #f3f8ff;--bg-bottom: #eaf1f4;--surface-main: #edf3f8;--surface-card: #ffffff;--surface-soft: #f4f8fc;--ink-900: #123247;--ink-700: #2f5063;--ink-500: #56717f;--brand-700: #0f5b8a;--brand-600: #1c6da0;--brand-500: #2e82b8;--accent-500: #2f9d8b;--border-soft: rgba(18, 50, 71, .12);--border-strong: rgba(18, 50, 71, .22);--shadow-soft: 0 20px 48px rgba(20, 55, 78, .1);--shadow-hover: 0 22px 48px rgba(20, 55, 78, .18);--radius-xl: 26px;--radius-lg: 18px;--radius-md: 14px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html,body,#root{min-height:100%;width:100%}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Avenir Next,Trebuchet MS,Segoe UI,sans-serif;color:var(--ink-900);background:var(--surface-main);overflow-x:hidden}a{color:inherit}button,input{font:inherit}.single-page{min-height:100vh;min-height:100svh;position:relative;overflow-x:hidden;overflow-y:visible;background:linear-gradient(160deg,var(--bg-top) 0%,var(--bg-bottom) 100%)}.single-page:before,.single-page:after{content:"";position:absolute;pointer-events:none;border-radius:50%}.single-page:before{width:620px;height:620px;top:-330px;right:-190px;background:radial-gradient(circle,#3f91c040,#3f91c000 72%)}.single-page:after{width:580px;height:580px;bottom:-320px;left:-210px;background:radial-gradient(circle,#2f9d8b33,#2f9d8b00 72%)}.layout-grid{position:relative;z-index:1;width:min(1440px,100%);margin:0 auto;padding:calc(14px + var(--safe-area-top)) calc(14px + var(--safe-area-right)) calc(14px + var(--safe-area-bottom)) calc(14px + var(--safe-area-left));display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.hero-section{order:1}.chat-column{order:2}.marketing-column{order:3;display:flex;flex-direction:column;gap:14px}.section-reveal{animation:sectionFade .72s cubic-bezier(.22,1,.36,1) both}.hero-card,.services-section,.trust-section,.contact-repeat{border:1px solid var(--border-soft);border-radius:var(--radius-xl);background:linear-gradient(168deg,#fffffff0,#f9fcfff0);box-shadow:var(--shadow-soft)}.chat-panel{height:min(74vh,700px);height:min(74dvh,700px);min-height:420px;border-radius:var(--radius-xl);border:1px solid var(--border-strong);background:#fffffffa;box-shadow:0 28px 56px #1232472e;display:flex;flex-direction:column;overflow:hidden;animation:panelIn .42s cubic-bezier(.22,1,.36,1) both}.chat-header{padding:14px 16px;border-bottom:1px solid var(--border-soft);display:flex;justify-content:space-between;align-items:flex-start;gap:10px;background:linear-gradient(180deg,#f4faff,#fff)}.chat-header h2{margin:0;font-size:1.14rem}.chat-status-row{margin-top:4px;display:inline-flex;align-items:center;gap:7px;color:var(--ink-500);font-size:.86rem}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-dot.online{background:#13a76b;box-shadow:0 0 0 4px #13a76b24}.status-dot.offline{background:#c64747}.status-dot.connecting,.status-dot.reconnecting{background:#c88c2b;animation:statusPulse 1.1s ease-in-out infinite}.chat-banner{padding:10px 14px;font-size:.87rem;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid transparent}.chat-banner.info{background:#e8f4ff;color:#0e4d76;border-color:#0e4d762e}.chat-banner.warning{background:#fff7e7;color:#8c5f09;border-color:#8c5f092e}.chat-banner.error{background:#ffefef;color:#a43232;border-color:#a432322e}.chat-banner button{border:1px solid currentColor;background:transparent;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:700;color:inherit;cursor:pointer}.chat-messages{flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;background:linear-gradient(180deg,#fafdfff2,#f3f9fef2)}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-thumb{border-radius:999px;background:#2f719352}.chat-empty-state{border-radius:var(--radius-md);background:#ffffffe0;border:1px dashed rgba(18,50,71,.22);color:var(--ink-700);padding:12px}.chat-empty-state p{margin:0;line-height:1.5;font-size:.92rem}.chat-message-row{display:grid;gap:4px;max-width:min(93%,350px);animation:messageIn .26s ease both}.chat-message-row.bot{align-self:flex-start}.chat-message-row.user{align-self:flex-end}.chat-message-row.system{align-self:center;max-width:100%}.chat-bubble{border-radius:var(--radius-md);padding:10px 12px;border:1px solid transparent;line-height:1.5;font-size:.93rem;word-break:break-word}.chat-bubble p{margin:0}.chat-bubble.bot{background:#fff;border-color:#12324724;color:var(--ink-900)}.chat-bubble.user{background:linear-gradient(152deg,#16699a,#2f9d8b);color:#fff}.chat-bubble.system{background:#12324714;color:var(--ink-700);border-color:#12324729;font-size:.83rem}.chat-bubble a{color:inherit;text-decoration:underline}.chat-bubble pre{overflow-x:auto;background:#12324714;padding:8px;border-radius:10px}.chat-media-link,.chat-media-block,.chat-media-file{margin-top:10px;display:block}.chat-media-image,.chat-media-video{width:100%;border-radius:10px;border:1px solid rgba(18,50,71,.16)}.chat-media-audio{width:100%}.chat-media-block a{display:inline-block;margin-top:6px;font-size:.8rem}.chat-media-file{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px dashed rgba(18,50,71,.32);background:#1232470a}.chat-media-file-icon{line-height:1}.chat-time{font-size:.72rem;color:var(--ink-500)}.chat-time.user{text-align:right}.chat-time.bot{text-align:left}.chat-typing{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:10px 12px;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(18,50,71,.14)}.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--brand-600);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.16s}.typing-dot:nth-child(3){animation-delay:.32s}.chat-composer{border-top:1px solid var(--border-soft);padding:10px;padding-bottom:calc(10px + var(--safe-area-bottom));display:flex;gap:8px;background:#fff}.chat-composer input{flex:1;height:44px;border-radius:999px;border:1px solid var(--border-strong);padding:0 14px;color:var(--ink-900);background:#fff}.chat-composer input::placeholder{color:var(--ink-500)}.chat-composer input:focus-visible{outline:3px solid rgba(47,130,184,.3);outline-offset:1px}.chat-composer button{min-width:84px;height:44px;border-radius:999px;border:none;background:linear-gradient(152deg,#0f5b8a,#2f9d8b);color:#fff;font-weight:700;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.chat-composer button:disabled{opacity:.45;cursor:not-allowed}.chat-composer button:not(:disabled):hover{transform:translateY(-1px)}.hero-card{padding:18px;display:flex;flex-direction:column;gap:18px}.hero-branding{display:grid;gap:12px}.hero-logo{width:clamp(190px,55vw,300px);filter:drop-shadow(0 8px 24px rgba(18,50,71,.16))}.hero-eyebrow{margin:0;font-size:clamp(2rem,8vw,3rem);text-transform:uppercase;letter-spacing:.06em;color:var(--brand-600);font-weight:600;line-height:1.05}.hero-card h1{margin:0;font-size:clamp(1.1rem,4.2vw,1.6rem);line-height:1.2;letter-spacing:-.02em}.hero-copy{margin:0;max-width:62ch;color:var(--ink-700);font-size:.98rem;line-height:1.56}.hero-keywords{margin:0;max-width:64ch;color:var(--ink-700);font-size:.92rem;line-height:1.56}.hero-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.hero-shortcuts a{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;border:1px solid rgba(18,50,71,.16);text-decoration:none;font-size:.8rem;font-weight:700;color:var(--brand-700);background:#ffffffb8}.hero-shortcuts a:hover{border-color:#1c6da04d;background:#fff}.quick-actions{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.action-card{width:100%;text-align:left;border-radius:var(--radius-md);border:1px solid var(--border-soft);background:var(--surface-card);color:var(--ink-900);padding:12px;display:grid;gap:6px;text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;animation:actionIn .56s ease both}.action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:#1c6da047}.action-card:focus-visible{outline:3px solid rgba(47,130,184,.35);outline-offset:2px}.action-card.chat-card{background:linear-gradient(152deg,#0f5b8a,#2f9d8b);color:#fff;border-color:transparent}.action-card.chat-card .action-detail{color:#ffffffdb}.action-icon{width:30px;height:30px;object-fit:contain}.action-emoji{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:1.48rem;line-height:1}.action-title{font-weight:700;letter-spacing:.01em}.action-detail{font-size:.84rem;color:var(--ink-500);line-height:1.32}.services-section,.contact-repeat{padding:18px;display:grid;gap:16px}.local-seo-section,.faq-section{border:1px solid var(--border-soft);border-radius:var(--radius-xl);background:linear-gradient(168deg,#fffffff0,#f9fcfff0);box-shadow:var(--shadow-soft);padding:18px;display:grid;gap:14px}.local-seo-section p{margin:0;color:var(--ink-700);line-height:1.55;font-size:.92rem}.local-areas-list{margin:0;padding-left:18px;color:var(--ink-700);display:grid;gap:4px;font-size:.9rem}.faq-list{display:grid;gap:10px}.faq-item{border:1px solid var(--border-soft);border-radius:var(--radius-md);background:#fff;padding:12px 14px}.faq-item summary{cursor:pointer;font-weight:700;color:var(--ink-900)}.faq-item p{margin:10px 0 0;color:var(--ink-700);line-height:1.5;font-size:.9rem}.section-header{display:grid;gap:6px}.section-header p{margin:0;text-transform:uppercase;letter-spacing:.13em;font-size:.76rem;color:var(--brand-600);font-weight:700}.section-header h2{margin:0;font-size:clamp(1.24rem,4.8vw,1.72rem);line-height:1.2}.services-grid{display:grid;gap:12px;grid-template-columns:1fr}.service-card{border-radius:var(--radius-md);border:1px solid var(--border-soft);background:#fff;overflow:hidden;display:grid;grid-template-rows:170px auto;animation:serviceIn .62s ease both}.service-image-wrap{position:relative;overflow:hidden}.service-image-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#12324705,#12324742)}.service-image{width:100%;height:100%;object-fit:cover}.service-content{background:#fff;padding:14px;display:grid;gap:8px}.service-content h3{margin:0;font-size:1rem;color:var(--ink-900)}.service-content p{margin:0;color:var(--ink-700);font-size:.9rem;line-height:1.52}.trust-section{padding:18px;display:grid;gap:10px;grid-template-columns:1fr}.trust-section article{border-radius:var(--radius-md);border:1px solid var(--border-soft);background:var(--surface-soft);padding:14px}.trust-section h3{margin:0;color:var(--brand-700);font-size:1.34rem}.trust-section p{margin:8px 0 0;color:var(--ink-700);line-height:1.45;font-size:.92rem}.site-footer{position:relative;z-index:1;border-top:1px solid var(--border-soft);background:#ffffffd6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.site-footer-inner{width:min(1440px,100%);margin:0 auto;padding:12px 14px calc(12px + var(--safe-area-bottom));display:grid;gap:10px}.site-footer-contact{margin:0;font-style:normal;color:var(--ink-700);line-height:1.45;font-size:.88rem}.site-footer-contact a{color:var(--brand-700);font-weight:700}.site-footer-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.site-footer-brand{font-size:.84rem;color:var(--ink-500)}.site-footer-link{font-size:.9rem;color:var(--brand-700);font-weight:700;text-decoration:underline}.cookie-banner{position:fixed;right:10px;bottom:calc(10px + var(--safe-area-bottom));z-index:30;width:min(360px,calc(100% - 20px));border:1px solid var(--border-soft);border-radius:10px;background:#fffffff2;box-shadow:0 10px 22px #12324724;padding:8px;display:grid;gap:6px}.cookie-banner p{margin:0;color:var(--ink-700);font-size:.8rem;line-height:1.34}.cookie-banner a{color:var(--brand-700);font-weight:700}.cookie-banner-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.cookie-button{border-radius:999px;border:1px solid var(--border-soft);padding:4px 9px;font-size:.76rem;font-weight:700;cursor:pointer}.cookie-button.secondary{background:#fff;color:var(--ink-700)}.cookie-button.primary{border-color:transparent;color:#fff;background:linear-gradient(152deg,#0f5b8a,#2f9d8b)}.privacy-layout{position:relative;z-index:1;width:min(900px,100%);margin:0 auto;padding:16px}.privacy-card{border:1px solid var(--border-soft);border-radius:var(--radius-xl);background:#fffffff5;box-shadow:var(--shadow-soft);padding:clamp(18px,4vw,30px);display:grid;gap:10px}.privacy-card h1{margin:0;font-size:clamp(1.4rem,5vw,2rem)}.privacy-card h2{margin:10px 0 0;font-size:1.05rem}.privacy-card p{margin:0;color:var(--ink-700);line-height:1.55}.privacy-card ul{margin:0;padding-left:18px;color:var(--ink-700);display:grid;gap:4px}.privacy-subtitle,.privacy-inline-label{font-weight:700;color:var(--ink-900)}.privacy-separator{color:var(--ink-500);line-height:1;margin:2px 0}.privacy-updated{color:var(--ink-500);font-size:.86rem}.privacy-back-link{color:var(--brand-700);font-weight:700;text-decoration:underline}.quick-actions.compact .action-card{min-height:106px}@media(max-width:1023px){.single-page:before,.single-page:after{display:none}.layout-grid{padding:calc(12px + var(--safe-area-top)) calc(12px + var(--safe-area-right)) calc(14px + var(--safe-area-bottom)) calc(12px + var(--safe-area-left));gap:12px}.chat-panel{height:auto;min-height:0;overflow:visible}.chat-messages{overflow-y:visible;max-height:none;overscroll-behavior-y:auto;scrollbar-gutter:auto}.chat-messages::-webkit-scrollbar{width:0;height:0}.hero-card,.services-section,.local-seo-section,.faq-section,.trust-section,.contact-repeat{box-shadow:0 10px 20px #14374e14;background:#fff}.chat-panel{box-shadow:0 14px 30px #1232471f}.hero-logo{filter:none}.section-reveal,.chat-panel,.action-card,.service-card,.chat-message-row{animation:none!important}.action-card{transition:none}.chat-composer input,.chat-composer button{min-height:46px}}@media(max-width:1023px){.cookie-banner{left:auto;right:10px;bottom:calc(8px + var(--safe-area-bottom));width:min(320px,calc(100% - 20px))}}@media(min-width:700px){.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-section{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){html,body,#root{height:100%}body{overflow:hidden}.single-page{height:100%;min-height:100%;overflow-y:auto}.cookie-banner{right:18px;bottom:18px;width:min(340px,calc(100% - 36px))}.site-footer-inner{padding:12px 18px calc(12px + var(--safe-area-bottom));grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center}.layout-grid{grid-template-columns:minmax(0,1fr) minmax(360px,430px);grid-template-rows:auto 1fr;gap:18px;padding:18px}.hero-section{order:0;grid-column:1;grid-row:1}.chat-column{order:0;grid-column:2;grid-row:1 / span 2;position:sticky;top:18px;align-self:start;min-height:0}.marketing-column{order:0;grid-column:1;grid-row:2}.chat-panel{height:auto;min-height:min(420px,calc(100dvh - 36px));max-height:calc(100dvh - 36px)}.chat-messages{scrollbar-width:none;-ms-overflow-style:none}.chat-messages::-webkit-scrollbar{width:0;height:0}.hero-card,.services-section,.local-seo-section,.faq-section,.trust-section,.contact-repeat{border-radius:var(--radius-xl)}.hero-card,.services-section,.local-seo-section,.faq-section,.contact-repeat,.trust-section{padding:clamp(20px,2vw,30px)}.services-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media(pointer:coarse){.chat-messages{scrollbar-width:none}.chat-messages::-webkit-scrollbar{width:0;height:0}}@media(hover:none){.action-card:hover,.chat-composer button:not(:disabled):hover{transform:none;box-shadow:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes sectionFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes actionIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes serviceIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes panelIn{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.3}}
