/* Lucky 3 | Main-office hierarchy + Lucky guided assistant | 2026-11-12 */
.office-number{display:flex!important;flex-direction:column;gap:3px;min-width:0;line-height:1.1!important;text-align:left}
.office-number strong{font-size:24px;letter-spacing:.25px;white-space:nowrap;color:#effaff}
.office-number small{font-size:13px;letter-spacing:1.4px;font-weight:600;line-height:1.4;color:#93dfff;white-space:nowrap}
.office-number .office-label{display:block;font-size:9px!important;line-height:1.4;letter-spacing:1.8px;text-transform:uppercase;color:#b3c9dc;font-weight:700;white-space:normal}
.office-link{display:flex;align-items:center;gap:13px}
.office-link>.icon{color:#29ccff;width:24px;height:24px}
.header-shell{grid-template-rows:72px 82px}
.site-header:after{top:71px}
.contact-strip>.header-office{padding-block:10px;padding-right:27px;margin-right:6px}
.contact-strip .header-office .office-number strong{font-size:24px}
.contact-strip .header-office .office-number small{font-size:12px}
.contact-strip .header-office .icon{width:26px;height:26px}
.contact-strip .header-office .office-label{font-size:8px!important;letter-spacing:1.5px}
.contact-strip .header-office .office-number{gap:2px}
.office-mobilebar{display:none}
.full-footer .footer-direct>.footer-office{margin-bottom:20px;align-items:center;font-size:inherit}
.full-footer .footer-office .office-number strong{font-size:23px}
.full-footer .footer-direct>.secondary-cell{font-size:12px!important;color:#a6b8c8}
.secondary-cell{color:#a6b8c8!important}
.contact-info>.contact-office{padding:24px 18px;margin:0 -4px 17px;background:linear-gradient(120deg,#043c6c88,#0a1728);border:1px solid #1388c7;border-radius:8px;box-shadow:0 0 20px #007aff18}
.contact-info .contact-office .office-number strong{font-size:clamp(23px,2vw,30px)}
.contact-info .contact-office .office-number small{font-size:14px}
.contact-info .secondary-cell strong{font-size:20px;color:#bfceda}
.contact-info .contact-row span{line-height:1.6}
.quote-contact-cards{grid-template-columns:1fr}
.quote-contact-cards>.quote-office{padding:19px 23px;border-color:#0d86c7}
.quote-contact-cards>.quote-office .office-number strong{font-size:28px;margin:2px 0 0}
.quote-contact-cards>.quote-office .office-number small{font-size:14px}
.quote-contact-cards>.secondary-cell{padding:8px 0;background:none;border:0;font-size:12px;box-shadow:none;min-height:32px}
.hero-buttons{gap:17px;align-items:stretch}
.hero-buttons .button>span{padding-inline:19px;font-size:17px;gap:12px}
.hero-buttons .office-hero .office-number{transform:skewX(14deg);font-style:normal}
.hero-buttons .office-hero .office-number strong{font-size:25px}
.hero-buttons .office-hero .office-number small{font-size:12px}
.hero-buttons .office-hero .office-label{color:#e1f4ff;font-size:8px!important}
.hero-buttons .office-hero>span>.icon{width:24px;height:24px}
.hero-buttons .button-dark>span{padding-inline:18px}
.office-call-button>span .office-number strong{font-size:25px}
.office-call-button>span .office-number{font-style:normal;transform:skewX(14deg)}
.inline-office{display:inline-flex;vertical-align:middle;margin:3px 4px}
.inline-office .office-number strong{font-size:inherit;color:#7cdeff}
.inline-office .office-number small{font-size:11px}
.dock-number{display:flex;flex-direction:column;gap:4px;text-align:left}
.dock-number b{font-size:13px;color:#effaff;white-space:nowrap}
.dock-number small{font-size:10px;letter-spacing:.5px;color:#9fdfff;white-space:nowrap}
.back-top{right:auto;left:18px}
/* A branded invitation, rather than a pop-up that interrupts visitors. */
.lucky-teaser{border-top:1px solid #224361;border-bottom:1px solid #224361;background:radial-gradient(ellipse at 20% 50%,#06437850,transparent 65%),#060e19;padding:40px 0}
.lucky-teaser-inner{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:28px}
.lucky-mark{height:64px;width:64px;display:flex;justify-content:center;align-items:center;border:1px solid #50caff;border-radius:18px;background:linear-gradient(135deg,#11559b,#04122b 65%);color:white;font-size:30px;font-weight:900;font-style:italic;letter-spacing:-4px;box-shadow:inset 0 1px 0 #b1e8ff55,0 0 24px #007fff33;flex-shrink:0}
.lucky-mark>span{color:#57dfff;margin-right:4px}
.lucky-teaser h2{margin:0 0 9px;font-size:28px;letter-spacing:-.8px;font-weight:800}
.lucky-teaser h2>span{color:#61ddff}
.lucky-teaser .section-label{font-size:9px;margin-bottom:8px}
.lucky-teaser p:not(.section-label){font-size:13px;line-height:1.8;color:#b7cbdc;margin:0;max-width:650px}
.lucky-teaser-actions{display:flex;flex-direction:column;gap:13px;align-items:center}
.lucky-teaser-actions>a{font-size:11px;color:#8bdbff}
.lucky-action{border:1px solid #42bfff;background:linear-gradient(135deg,#096ee1,#00458b);color:#fff;border-radius:8px;min-height:46px;padding:12px 20px;display:inline-flex;gap:20px;align-items:center;justify-content:center;font-size:13px;font-weight:700;line-height:1.4;box-shadow:inset 0 1px 0 #ffffff22}
.lucky-action:hover{filter:brightness(1.16)}
.lucky-action.secondary{background:#0d1b2c;border-color:#39536b;box-shadow:none;color:#d3e6f3}
/* Assistant: focus-managed native dialog; no third-party scripts or network chat requests. */
.lucky-launcher{position:fixed;bottom:25px;right:25px;z-index:30;border:1px solid #4dcaff;background:linear-gradient(120deg,#0c3a72,#06162f);color:#fff;box-shadow:0 8px 30px #0008,0 0 20px #0076ff35;border-radius:40px;padding:9px 20px 9px 9px;display:flex;gap:12px;align-items:center;min-height:62px;text-align:left}
.lucky-launcher .lucky-mark{width:42px;height:42px;border-radius:50%;font-size:24px;letter-spacing:-3px;box-shadow:none}
.lucky-launcher-label{display:flex;flex-direction:column;gap:4px}
.lucky-launcher-label strong{font-size:15px}
.lucky-launcher-label small{font-size:10px;color:#a5c5df;letter-spacing:.2px}
.lucky-launcher:hover{border-color:#a5ebff;transform:translateY(-2px)}
.lucky-panel{position:fixed;inset:auto 24px 24px auto;margin:0;padding:0;width:410px;max-width:calc(100vw - 32px);height:630px;max-height:calc(100dvh - 48px);border:1px solid #377ba8;border-radius:18px;color:#eaf3fb;background:#081320;box-shadow:0 24px 80px #000b,0 0 36px #0078ff1f;overflow:hidden;font-family:Arial,Helvetica,sans-serif}
.lucky-panel::backdrop{background:#02081355}
.lucky-panel[open]{display:flex;flex-direction:column}
.lucky-top{padding:18px 18px 16px;display:flex;align-items:center;gap:12px;background:radial-gradient(ellipse at 20% 0%,#1266a7aa,transparent 80%),#081c35;border-bottom:1px solid #2b5473;flex:none}
.lucky-top .lucky-mark{width:42px;height:42px;font-size:25px;border-radius:12px;letter-spacing:-3px}
.lucky-top h2{margin:0 0 4px;font-size:20px;letter-spacing:-.5px}
.lucky-top p{margin:0;font-size:10px;color:#b9d7ec}
.lucky-close{margin-left:auto;display:grid;place-items:center;border:1px solid #395777;border-radius:8px;background:#071425;color:#e6f3ff;width:34px;height:34px;flex-shrink:0;font-size:20px}
.lucky-tools{padding:9px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#08111d;border-bottom:1px solid #1b354c;flex:none}
.lucky-tools a,.lucky-tools button{color:#92daff;font-size:10px;background:none;border:0;padding:5px;min-height:29px;font-family:inherit;line-height:1.5}
.lucky-tools a{display:flex;gap:8px;align-items:center}
.lucky-tools a span{display:flex;flex-direction:column;gap:1px}
.lucky-tools a strong{font-size:12px;color:#d7f4ff}
.lucky-tools a small{font-size:10px;letter-spacing:.8px}
.lucky-log{flex:1;overflow:auto;overscroll-behavior:contain;padding:20px 16px 8px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth}
.lucky-message{border:1px solid #26425c;border-radius:4px 13px 13px 13px;background:#0f2033;padding:13px 14px;max-width:96%;align-self:flex-start;flex-shrink:0}
.lucky-message.user{background:#0d4274;border-color:#1e6ca5;border-radius:13px 4px 13px 13px;align-self:flex-end;max-width:88%}
.lucky-message .speaker{display:block;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:#77d6ff;margin-bottom:7px;font-weight:700}
.lucky-message.user .speaker{color:#afdafa}
.lucky-message p{font-size:12px;line-height:1.75;margin:0 0 9px;white-space:pre-wrap;overflow-wrap:anywhere}
.lucky-message p:last-child{margin:0}
.lucky-message .chat-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.lucky-message .chat-links a{display:inline-flex;align-items:center;min-height:32px;font-size:10px;line-height:1.5;color:#a9e4ff;border:1px solid #3d6584;border-radius:5px;padding:6px 9px;background:#061727}
.lucky-message .chat-source{font-size:9px;line-height:1.6;color:#92b5ce;margin-top:10px}
.lucky-message .chat-source a{text-decoration:underline;text-underline-offset:3px;display:inline-block;margin-right:10px;margin-bottom:3px}
.lucky-suggestions{padding:10px 15px 6px;display:flex;gap:7px;overflow-x:auto;flex:none;scrollbar-width:thin}
.lucky-suggestions button{background:#0c1b2c;border:1px solid #355a79;border-radius:20px;white-space:nowrap;color:#c3e7ff;font-size:10px;padding:8px 11px;min-height:33px}
.lucky-compose{display:flex;gap:8px;margin:0;padding:9px 15px 8px;border:0;flex:none}
.lucky-compose input{border:1px solid #385a77;border-radius:8px;background:#050d16;color:#f2f7fc;min-width:0;flex:1;height:44px;padding:12px;font-size:13px;font-family:inherit}
.lucky-compose input::placeholder{color:#91aabd}
.lucky-compose button{background:#0868cf;border:1px solid #2ca9fa;color:white;border-radius:8px;flex:none;width:43px;font-size:20px}
.lucky-disclosure{padding:0 18px 13px;margin:0;color:#829cb4;font-size:9px;line-height:1.5;flex:none}
.lucky-disclosure a{color:#a6c7e1;text-decoration:underline}
/* Load planning page. */
.planner-intro{padding:55px 0 38px;background:radial-gradient(ellipse at 80% 20%,#06365d66,transparent 65%),linear-gradient(120deg,#060d16,#081526);border-bottom:1px solid #203c55}
.planner-intro .container{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:center;gap:50px}
.planner-intro h1{font-size:clamp(34px,4.5vw,65px);max-width:900px;line-height:1.08;margin-bottom:20px}
.planner-intro h1 span{white-space:normal}
.planner-intro .lead{font-size:16px;max-width:690px;color:#b9cfe0}
.planner-badge{border:1px solid #2a648b;background:linear-gradient(135deg,#103254,#071321);border-radius:14px;padding:24px}
.planner-badge .lucky-mark{margin-bottom:20px}
.planner-badge strong{font-size:16px;display:block;margin-bottom:10px}
.planner-badge p{font-size:12px;color:#b3c9da;line-height:1.7;margin:0}
.planner-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:30px;align-items:start;padding-block:44px}
.planner-form{padding:32px;background:linear-gradient(135deg,#101c2a,#08121d);border:1px solid #2d4d67;border-radius:14px}
.planner-form fieldset{padding:0;border:0;margin:0 0 27px;min-width:0}
.planner-form legend{font-size:19px;font-weight:800;margin-bottom:16px;color:#edf6ff;letter-spacing:-.4px}
.planner-form .form-grid{gap:17px}
.planner-form .field-help{color:#a2b8cc;font-size:11px;line-height:1.7;margin:0 0 16px}
.planner-form .field-help a{color:#8ae1ff;text-decoration:underline}
.planner-form .form-field label{font-size:12px}
.planner-form input,.planner-form select{min-height:47px}
.feet-inches{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.feet-inches label{font-size:10px!important;color:#a7bfd3;display:block;margin:6px 0 0}
.feet-inches label input{margin-top:6px;width:100%;min-width:0}
.dimension-title{font-size:12px;font-weight:700;line-height:1.6;color:#e1eef8}
.planner-form .wide-field{grid-column:1/-1}
.planner-form .consent-row{line-height:1.7;margin-top:0}
.planner-form .consent-row input{min-height:0}
.planner-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.planner-warning{padding:17px 20px;border-left:3px solid #e5ad58;background:#55331024;border-radius:0 8px 8px 0;font-size:12px;line-height:1.8;color:#e3d7c4;margin-bottom:25px}
.planner-warning strong{color:#f0c583}
.planner-aside{position:sticky;top:24px;min-width:0}
.planner-placeholder,.planner-result{padding:29px;border:1px solid #31516a;border-radius:14px;background:#0b1826}
.planner-placeholder h2,.planner-result h2{font-size:24px;line-height:1.25;margin:0 0 13px;letter-spacing:-.7px}
.planner-placeholder p,.planner-result p{font-size:13px;color:#b2c8da;line-height:1.8}
.planner-placeholder .lucky-mark{margin-bottom:22px}
.planner-placeholder ol{font-size:13px;color:#d1e4f2;line-height:1.8;padding-left:21px}
.planner-placeholder li{margin-bottom:13px;padding-left:4px}
.planner-status{display:inline-flex;align-items:center;gap:8px;font-size:9px;letter-spacing:1.3px;font-weight:700;text-transform:uppercase;color:#a0dfff;border:1px solid #296187;border-radius:20px;padding:7px 11px;margin-bottom:18px}
.planner-status.flagged{color:#ffd5a0;border-color:#986629;background:#5b361a33}
.planner-result dl{margin:18px 0;font-size:12px;display:grid;grid-template-columns:110px minmax(0,1fr);line-height:1.6}
.planner-result dt,.planner-result dd{padding-block:7px;border-bottom:1px solid #20364a;margin:0}
.planner-result dt{color:#9db9d0;padding-right:10px}
.planner-result dd{color:#dfedfa;overflow-wrap:anywhere}
.planner-findings{display:flex;flex-direction:column;gap:10px;margin-block:20px}
.planner-finding{padding:13px 14px;border-left:2px solid #51748d;border-radius:0 6px 6px 0;background:#10263a}
.planner-finding.flag{border-color:#d7a35a;background:#392a1d}
.planner-finding h3{font-size:12px;line-height:1.6;margin:0 0 6px;color:#e8f5ff}
.planner-finding p{font-size:11px;line-height:1.75;margin:0;color:#b8cbd9}
.planner-finding.flag p{color:#dbc7ac}
.planner-finding a{display:inline-block;margin-top:8px;font-size:10px;color:#8ddbff;text-decoration:underline}
.planner-result .planner-buttons .lucky-action{font-size:11px;padding-inline:14px;gap:10px}
.planner-result .result-status{font-size:11px;margin:12px 0 0;color:#91dbff}
.planner-sources{border-top:1px solid #29455d;padding-top:22px;margin-top:22px}
.planner-sources summary{cursor:pointer;font-size:12px;color:#9adcff;font-weight:700;line-height:1.6}
.planner-sources ul{padding-left:17px;line-height:1.8}
.planner-sources li{font-size:11px;color:#a5c0d5;margin:10px 0}
.planner-sources a{color:#9edfff;text-decoration:underline;text-underline-offset:3px}
.planner-sources p{font-size:11px}
.planner-reference{padding-block:30px 60px}
.planner-reference h2{font-size:27px;margin-bottom:20px}
.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.reference-grid article{border:1px solid #29425a;background:#0a1521;border-radius:10px;padding:25px}
.reference-grid h3{margin:0 0 12px;font-size:15px}
.reference-grid p{font-size:12px;line-height:1.8;color:#afc7da;margin-bottom:13px}
.reference-grid a{font-size:11px;color:#8adcff;line-height:1.6;text-decoration:underline}
.quote-draft-note{padding:15px 18px;background:#06325a;border:1px solid #2175aa;border-radius:7px;font-size:12px;line-height:1.7;color:#d5ecfd;margin-bottom:25px}
@media(min-width:1101px) and (max-width:1350px){.contact-strip .header-location{display:none}.contact-strip .header-office .office-number strong{font-size:22px}.header-shell{grid-template-columns:270px minmax(0,1fr);column-gap:22px;padding-inline:32px}.desktop-nav{gap:16px}.nav-link{font-size:15px}.button.nav-button>span{font-size:15px;padding-inline:13px}.header-email{font-size:14px}.hero-buttons{flex-wrap:wrap}.hero-buttons .office-hero .office-number strong{font-size:23px}}
@media(max-width:1100px){.header-shell{grid-template-rows:auto}.site-header:after{top:0}.contact-strip{display:none}.office-mobilebar{display:flex;justify-content:center;border-top:1px solid #203a52;background:linear-gradient(90deg,#071529,#0b2b4b,#071529);padding:10px 24px}.office-mobilebar .office-label{font-size:8px!important;letter-spacing:1.5px}.office-mobilebar .office-number strong{font-size:22px}.office-mobilebar .office-number small{font-size:11px}.office-mobilebar .office-number{text-align:center;gap:2px}.office-mobilebar .icon{width:23px;height:23px}.planner-intro .container{grid-template-columns:minmax(0,1fr) 260px;gap:30px}.planner-grid{gap:22px;grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}.planner-form{padding:25px}.planner-form .form-grid{grid-template-columns:1fr}.planner-result,.planner-placeholder{padding:24px}.lucky-teaser-inner{grid-template-columns:60px minmax(0,1fr);gap:23px}.lucky-teaser-actions{grid-column:2;flex-direction:row;justify-content:flex-start}.hero-buttons .office-hero .office-number strong{font-size:25px}}
@media(max-width:760px){.office-number strong{font-size:22px}.hero-buttons{gap:12px;flex-direction:column;align-items:stretch;max-width:340px}.hero-buttons .button>span{padding:13px 16px}.hero-buttons .office-hero .office-number strong{font-size:26px}.hero-buttons .office-hero .office-number small{font-size:12px}.hero-buttons .button-dark>span{padding:15px;font-size:16px}.hero-content{padding-bottom:45px}.hero{height:auto;min-height:810px}.full-footer .footer-office .office-number strong{font-size:26px}.full-footer .footer-office .office-number small{font-size:13px}.contact-info>.contact-office{padding:21px 13px;gap:10px;margin-inline:0}.contact-info .contact-office .office-number strong{font-size:25px}.contact-info .contact-office .office-label{font-size:8px!important;letter-spacing:1px}.contact-info .secondary-cell strong{font-size:19px}.quote-contact-cards{grid-template-columns:1fr}.quote-contact-cards>.quote-office{padding:18px 20px}.quote-contact-cards>.quote-office .office-number strong{font-size:27px}.lucky-teaser{padding-block:30px}.lucky-teaser-inner{grid-template-columns:48px minmax(0,1fr);gap:18px}.lucky-teaser .lucky-mark{width:48px;height:48px;font-size:27px}.lucky-teaser h2{font-size:24px}.lucky-teaser p:not(.section-label){font-size:12px;line-height:1.75}.lucky-teaser-actions{grid-column:1/-1;justify-content:center;margin-top:4px}.lucky-launcher{bottom:78px;right:14px;min-height:54px;padding:6px 15px 6px 6px;gap:9px}.lucky-launcher .lucky-mark{width:38px;height:38px;font-size:22px}.lucky-launcher-label strong{font-size:13px}.lucky-launcher-label small{font-size:9px}.lucky-panel{inset:auto 10px 10px 10px;max-width:none;width:auto;height:670px;max-height:calc(100dvh - 20px);border-radius:16px}.lucky-compose input{font-size:16px}.lucky-message p{font-size:13px}.lucky-message .chat-links a{font-size:11px;min-height:37px}.lucky-top{padding:16px}.lucky-suggestions button{min-height:36px}.lucky-disclosure{padding-bottom:max(12px,env(safe-area-inset-bottom))}.planner-intro{padding:32px 0}.planner-intro .container{grid-template-columns:1fr;gap:22px}.planner-intro h1{font-size:42px;letter-spacing:-1px}.planner-intro .lead{font-size:14px;margin-bottom:0}.planner-badge{display:flex;align-items:center;gap:17px;padding:18px}.planner-badge .lucky-mark{width:46px;height:46px;font-size:27px;margin:0}.planner-badge strong{font-size:13px;margin-bottom:5px}.planner-badge p{font-size:11px;line-height:1.7}.planner-grid{grid-template-columns:1fr;padding-block:28px;gap:25px}.planner-form{padding:25px 20px}.planner-form legend{font-size:18px}.planner-form .form-grid{grid-template-columns:1fr;gap:16px}.planner-form input,.planner-form select{font-size:16px}.planner-aside{position:static}.planner-warning{font-size:11px;padding:15px 17px}.planner-result,.planner-placeholder{padding:24px 20px}.reference-grid{grid-template-columns:1fr;gap:16px}.planner-reference{padding-bottom:35px}.planner-reference h2{font-size:25px}.reference-grid article{padding:22px}.planner-result dl{grid-template-columns:100px minmax(0,1fr)}.back-top{left:13px;bottom:82px}.office-call-button>span .office-number strong{font-size:22px}.office-call-button>span .office-number small{font-size:11px}}
@media(max-width:370px){.office-mobilebar{padding-block:9px}.office-mobilebar .office-number strong{font-size:21px}.hero-buttons .office-hero .office-number strong{font-size:23px}.hero-buttons{max-width:280px}.contact-info .contact-office .office-number strong{font-size:21px}.contact-info .contact-office .icon{width:19px;height:19px}.contact-info .contact-office .office-number small{font-size:12px}.planner-intro h1{font-size:36px}.lucky-launcher-label small{display:none}.lucky-panel{left:6px;right:6px;bottom:6px;max-height:calc(100dvh - 12px)}.dock-number b{font-size:11px}.dock-number small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.lucky-log{scroll-behavior:auto}.lucky-launcher:hover{transform:none}}
@media print{.lucky-launcher,.lucky-panel,.lucky-teaser,.planner-form,.planner-placeholder,.planner-intro,.planner-reference,.planner-warning,.planner-buttons,.planner-badge{display:none!important}.planner-grid{display:block}.planner-result{border:1px solid #777;color:#111;background:#fff}.planner-result p,.planner-finding p,.planner-result dt,.planner-result dd{color:#222}.planner-finding{background:none;border-color:#555}.planner-finding h3{color:#111}.planner-status{color:#111;border-color:#555}.planner-aside{position:static}.planner-result .office-number strong,.planner-result .office-number small{color:#111}}
/* The decorative scroll cue would collide with the enlarged primary phone button. */
.hero-scroll{display:none}
/* Domain-migration polish: keep the office CTA clear and long email links readable. */
.hero-scroll{display:none}
.footer-direct a[href^="mailto:"]{overflow-wrap:anywhere;line-height:1.6}
.contact-info a[href^="mailto:"] strong{overflow-wrap:anywhere;font-size:clamp(16px,1.3vw,21px)}
@media(min-width:1351px) and (max-width:1490px){.contact-strip>.header-office{padding-right:16px}.contact-strip .header-location{display:none}.contact-strip .header-email{font-size:15px}}
