/* Readable contrast on each surface. Loaded after the layout styles. */
:root{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{line-height:1.55}
.eyebrow{color:#f1c76b;font-size:14px}
.section-intro,.gallery-intro{color:#e0e8ed}
.lead,.hero-small,.hero-bottom{color:#edf3f7}
:is(.light,.google,.brand-feature,.example-section,.service-explorer) .eyebrow{color:#79500c}
:is(.light,.google,.brand-feature,.example-section,.service-explorer) :is(.section-intro,.gallery-intro){color:#354550}
:is(.card,.step,.focus-card,.photo-service,.case-card,.portal-grid article,.review-cards article){color:#14232e}
:is(.card,.step,.focus-card,.photo-service,.case-card,.portal-grid article,.review-cards article) p,
.light .faq p,.light .faq-section p,.light.faq-section p,.about-story p,.assessment-note,.brand-panel small,
.request-help p,.form-privacy,.form-status,.code-box p,.process-map p,.compare-grid p{color:#354550}
.light .faq-section p,.light.faq-section p,.light p:not([class]){line-height:1.7}
:is(.light,.service-explorer) :is(.text-link,.num,.portal-number),
.focus-card span,.focus-card strong,.photo-service span,.photo-service strong,
.contact-link-list span,.process-map b,.storm-grid article>span,.service-grid .card strong,
.service-explorer-index nav span,.service-explorer-index nav b,.popular-jobs-links b{color:#79500c}
:is(.smart-dark,.voice-search-section,.commercial-visual,.capacity-visual,.diagnostic-band,.network-map-section,.review-strip,.about-preview,.home-assessment,.assessment-band,.pathways) .section-intro{color:#e0e8ed}
:is(.smart-dark,.contact-brief,.service-explorer-contact,.about-preview,.review-strip,.home-assessment) p:not(.eyebrow),
.pathway-grid p,.pathway-followup,.detail p,.priority-grid p,.network-map-section p:not(.eyebrow){color:#e0e8ed}
:is(.smart-dark,.contact-brief,.service-explorer-contact,.visual-note) .eyebrow{color:#f1c76b}
.process-section .step,.voice-search-section .card{color:#f7fafc}
.process-section .step p,.voice-search-section .card p{color:#e0e8ed}
.voice-search-section .card .num{color:#f1c76b}
.gallery-grid figcaption span,.feature-pair figcaption span,
.recent-work-grid figcaption span,.sequence-gallery figcaption span,.smart-field-work figcaption span,
.about-local figcaption,.review-cards small{color:#354550;font-size:15px;line-height:1.6}
.nav-menu-panel small,.service-menu-panel small,.footer,.proof-band-inner p,
.visual-note small,.capacity-source small,.flow-node span,.issue-map span,.network-node span,
.ecosystem-note{color:#e0e8ed}
.proof-band-inner p a{color:#f1c76b}
.nav-menu-panel small,.service-menu-panel small,.capacity-source small,.visual-note small,.response-step small{font-size:14px}
.focus-card span,.contact-link-list span,.photo-pin,.capacity-source span,.capacity-result span,.storm-grid article>span{font-size:14px}
.capacity-result span{color:#fff4d5}
.cta-band .eyebrow{color:#4e3716}
.form-status.is-success{color:#163b27}.form-status.is-error{color:#66301a}
/* Keep form fields readable without triggering iOS focus zoom. */
input,select,textarea,.request-form input,.request-form select,.request-form textarea{font-family:Arial,Helvetica,sans-serif;font-size:16px!important;line-height:1.5}
input::placeholder,textarea::placeholder{color:#52616b;opacity:1}
/* Review cards sit inside a dark section; their copy must stay dark on white. */
.review-strip .review-cards article p,.review-strip .review-cards article small{color:#354550}
/* A single scrolling conversation keeps answers and choices together. */
.fpe-assistant-panel{display:flex;flex-direction:column;height:min(740px,calc(100dvh - 110px));max-height:calc(100dvh - 110px);overflow:hidden}
.fpe-assistant-panel[hidden]{display:none}
.fpe-assistant-panel header{padding:10px 14px;gap:10px;flex-shrink:0}
.fpe-assistant-panel header strong{font-size:17px;line-height:1.4}
.fpe-assistant-panel header small{color:#e0e8ed;font-size:14px;line-height:1.4}
.fpe-assistant-close{flex-shrink:0;min-width:44px;min-height:44px}
.fpe-assistant-shortcuts{display:flex;gap:8px;padding:8px 12px;border-bottom:1px solid #455661;flex-shrink:0;background:#172a37}
.fpe-assistant-shortcuts button{flex:1;min-height:44px;padding:8px;border:1px solid #8da2af;border-radius:8px;background:#243d4e;color:#fff;font:600 14px/1.3 Arial,Helvetica,sans-serif;cursor:pointer}
.fpe-assistant-shortcuts button:hover{background:#36546a}
.fpe-assistant-shortcuts button:focus-visible,.fpe-assistant-chips button:focus-visible{outline:3px solid #f1c76b;outline-offset:2px}
.fpe-assistant-content{position:relative;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;overflow-anchor:none;-webkit-overflow-scrolling:touch;background:#0f1a21}
.fpe-assistant-panel .fpe-assistant-messages{flex:none;min-height:0;max-height:none;overflow:visible;padding:12px}
.fpe-message{font-size:16px;line-height:1.55;overflow-wrap:anywhere;margin-bottom:12px}
.fpe-message.bot{color:#f4f8fa}.fpe-message.user{color:#14232e}
.fpe-assistant-panel .fpe-assistant-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:none;overflow:visible;padding:0 12px 14px;background:#0f1a21}
.fpe-assistant-panel .fpe-assistant-chips:empty{display:none}
.fpe-assistant-chips button{min-height:48px;width:100%;margin:0;white-space:normal;text-align:left;border-radius:8px;padding:10px 12px;border:1px solid #8da2af;background:#243d4e;color:#fff;font:400 16px/1.4 Arial,Helvetica,sans-serif;cursor:pointer}
.fpe-assistant-chips button:hover{background:#36546a;border-color:#f1c76b}
.fpe-assistant-chips button:only-child{grid-column:1/-1}
.fpe-assistant-panel .fpe-assistant-photos{max-height:none;overflow:visible;padding:10px 12px}
.fpe-assistant-photos small{font-size:14px;line-height:1.5;color:#e0e8ed}
.fpe-assistant-panel footer{padding:12px;gap:12px;line-height:1.5}
.fpe-assistant-panel footer a,.fpe-assistant-panel footer button{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.fpe-assistant-form{flex-shrink:0;padding:12px;margin:0;border-top:1px solid #455661;background:#17232c}
.fpe-assistant-form input{min-height:48px;font:16px/1.5 Arial,Helvetica,sans-serif!important;color:#14232e;background:#fff}
.fpe-assistant-form button,.fpe-assistant-toggle{font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.4}
.review-strip .review-checked{font-size:14px;line-height:1.6;max-width:750px}
.review-strip .review-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.review-strip .review-cards{grid-template-columns:1fr}}
@media(max-width:560px){
 .fpe-assistant.is-open{top:var(--fpe-chat-top,10px);bottom:auto}
 .fpe-assistant.is-open .fpe-assistant-toggle{display:none}
 .fpe-assistant.is-open .fpe-assistant-panel{height:var(--fpe-chat-height,calc(100dvh - 24px));max-height:var(--fpe-chat-height,calc(100dvh - 24px));margin-bottom:0;overflow:hidden}
 .fpe-assistant-form{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(max-width:350px){.fpe-assistant-panel .fpe-assistant-chips{grid-template-columns:1fr}}
/* Surface-specific text prevents dark-section styles leaking into white cards. */
:is(.light,.example-section,.brand-feature,.google,.service-explorer,.request-section) .lead{color:#354550}
:is(.card,.step,.photo-grid figure,.feature-pair figure,.response-step,.storm-grid article,.brand-panel,.code-box,.request-section){color:#14232e}
:is(.smart-dark,.about-preview,.home-assessment,.review-strip,.network-map-section) :is(.card,.step,.photo-service,.case-card,.code-box,.brand-panel) p{color:#354550}
.card .num,.step .step-n,.stars{color:#79500c}
.process-section .step{color:#f7fafc}
.process-section .step p{color:#e0e8ed}
.process-section .step .step-n,.voice-search-section .card .num{color:#f1c76b}
.text-link{color:#f1c76b}
:is(.light,.card,.step,.photo-service,.case-card,.example-section,.google,.brand-feature,.service-explorer) .text-link{color:#79500c}
.light .detail p{color:#354550}
:is(.light,.example-section,.google,.brand-feature) .button.outline{color:#14232e;border-color:#52616b}
:is(.contact-brief,.visual-note,.smart-dark,.service-explorer-contact) .button.outline{color:#f7fafc;border-color:#91a9b5}
/* Solid caption backing preserves contrast regardless of the photograph. */
.annotated-example figcaption{background:#101e29;color:#fff;padding:12px 15px;border-radius:4px}

.hero-new .eyebrow{color:#ffe0a3}

/* Compact wayfinding keeps long service pages easy to scan. */
.page-sections{margin-top:20px;margin-bottom:20px;border:1px solid #718594;border-radius:10px;background:#1c2c39;color:#f7fafc;padding:0 20px}
.page-sections summary{cursor:pointer;padding:16px 0;font-size:16px;font-weight:700;min-height:48px}
.page-sections nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;padding:0 0 16px}
.page-sections a{color:#ffe0a3;display:block;padding:10px 0;font-size:16px;line-height:1.5;text-underline-offset:4px}
main section[id]{scroll-margin-top:calc(var(--nav-height,100px) + 20px)}
main :is(.lead,.section-intro){max-width:68ch}
.fpe-assistant-panel .fpe-message span{line-height:1.65;white-space:pre-line}
@media(max-width:600px){.page-sections nav{grid-template-columns:1fr}.page-sections{width:calc(100% - 32px)}.fpe-assistant-panel .fpe-assistant-chips{grid-template-columns:1fr}.fpe-assistant-chips button{padding:12px 14px;min-height:48px;text-align:left}}

.fpe-assistant-shortcuts .fpe-start-over{grid-column:1/-1;min-height:44px;padding:6px 12px;background:transparent;color:#ffe0a3;border:0;text-decoration:underline;text-underline-offset:3px}.fpe-start-over:disabled{opacity:.6;cursor:wait}
.fpe-chat-memory{padding:8px 14px;border-bottom:1px solid #455661;background:#172a37;color:#f3f6f7;line-height:1.35}
.fpe-chat-memory label{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}
.fpe-chat-memory input{width:18px;height:18px;accent-color:#e8bd63;flex:none}
.fpe-chat-memory small{display:block;margin:3px 0 0 27px;color:#d9e3e7;font-size:12px}
/* Navigation refresh: clear wayfinding and comfortable touch targets. */
body>header.nav{background:#102332;border-bottom:1px solid #486176;box-shadow:0 12px 30px #08141a40;gap:22px}
.nav .brand{min-width:0;letter-spacing:.045em;line-height:1.12}
.nav .brand-img{width:54px;height:54px;flex:none;filter:drop-shadow(0 2px 6px #0005)}
.nav .navlinks{gap:5px}
.nav .navlinks>.nav-home,.nav .nav-menu>summary{display:flex;align-items:center;gap:7px;min-height:46px;padding:9px 13px;border-radius:10px;color:#eef5f7;transition:background .18s,color .18s}
.nav .navlinks>.nav-home:hover,.nav .nav-menu>summary:hover,.nav .nav-menu[open]>summary,.nav .nav-menu.has-current>summary{background:#253e50;color:#ffd47a}
.nav .navlinks>.button{margin-left:7px;border-radius:10px;white-space:nowrap;box-shadow:0 4px 14px #080f1455}
.nav .nav-menu-panel{top:calc(100% + 9px);left:0;width:355px;padding:9px;border-radius:16px;background:#162c3a;border-color:#587489;box-shadow:0 20px 46px #050b11b8}
.nav .nav-menu-panel a{padding:12px 14px;border-radius:9px;border-top:0;transition:background .16s,transform .16s}
.nav .nav-menu-panel a+a{border-top:1px solid #39505e}
.nav .nav-menu-panel a:hover,.nav .nav-menu-panel a:focus-visible{background:#28485a;transform:translateX(2px)}
.nav .nav-menu-panel strong{font-size:15px;line-height:1.3}
.nav .nav-menu-panel small{font-size:13px;line-height:1.4;color:#d4e0e7}
.nav a[aria-current="page"]:not(.brand){color:#ffdb89;text-decoration:none}
.nav .nav-menu-panel a[aria-current="page"],.nav .mobile-nav a[aria-current="page"]{background:#315066;box-shadow:inset 3px 0 #efbe5e}
.nav .mobile-home,.nav .mobile-nav>summary{min-height:46px;border:1px solid #718a9b;border-radius:10px;background:#1d3445;color:#f7fbfc;padding:9px 15px;align-items:center;justify-content:center;font-weight:800}
.nav .mobile-nav>summary{display:inline-flex}
@media(max-width:1320px){.nav .mobile-home{display:inline-flex}}
.nav .mobile-home:hover,.nav .mobile-nav>summary:hover,.nav .mobile-nav[open]>summary{border-color:#e6ba65;background:#294557}
.nav .mobile-nav>summary::before{content:"☰";font-size:17px;margin-right:9px;color:#ffd47a}
.nav .mobile-nav[open]>summary::before{content:"×";font-size:24px;line-height:16px}
.nav .mobile-nav nav{top:calc(100% + 13px);width:min(420px,calc(100vw - 28px));padding:9px;border-radius:16px;background:#172c3a;border:1px solid #678091;box-shadow:0 22px 46px #000a}
.nav .mobile-nav nav>a{border-radius:9px;border-bottom:0;padding:13px 16px;margin:2px 0}
.nav .mobile-nav nav>.mobile-nav-feature{background:#e6b85f;color:#17232c!important;text-align:center;font-weight:900}
.nav .mobile-nav nav>a[href^="tel:"]{border:1px solid #668395;text-align:center;color:#f3f8fa}
.nav .mobile-nav-group{margin:6px 0;border-top:1px solid #496273;border-bottom:1px solid #496273}
.nav .mobile-nav-group>summary{padding:15px 16px;border-radius:9px}
.nav .mobile-nav-group.has-current>summary{color:#ffda8b}
.nav .mobile-nav-group>div{background:#102431;border-radius:10px;padding:4px}
.nav .mobile-nav-group a{padding:12px 13px!important;border-radius:8px;border:0!important;margin:2px 0;line-height:1.35}
.nav :is(a,summary):focus-visible{outline:3px solid #ffca68;outline-offset:2px}
@media(max-width:560px){.nav .brand-img{width:43px;height:43px}.nav .brand{font-size:10px;letter-spacing:.025em}.nav .mobile-home,.nav .mobile-nav>summary{padding:9px 11px;font-size:13px}.nav .mobile-nav>summary::before{margin-right:6px}}

@media(max-width:390px){.nav .brand>span{display:none}.nav .brand-img{width:44px;height:44px}}

/* A compact desktop bar and a full-width mobile navigation sheet. */
.nav .nav-menu:first-of-type .nav-menu-panel{width:min(570px,calc(100vw - 45px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px}
.nav .nav-menu:first-of-type .nav-menu-panel a+a{border-top:0}
.nav .nav-menu:first-of-type .nav-menu-panel a{border-bottom:1px solid #39505e}
.nav .navlinks>.button{border-radius:9px}
@media(min-width:1101px){.nav .navlinks{display:flex}.nav .mobile-nav,.nav .mobile-home{display:none}}
@media(max-width:1100px){
  .nav .navlinks{display:none}
  .nav .mobile-nav{display:block}
  .nav .mobile-home{display:inline-flex}
  .nav .mobile-nav nav{position:fixed;left:0;right:0;top:var(--nav-height,68px);width:100%;max-width:none;max-height:calc(100dvh - var(--nav-height,68px));padding:20px max(20px,calc((100vw - 720px)/2));border:0;border-top:1px solid #537186;border-radius:0 0 20px 20px;background:#142b3a;box-shadow:0 20px 38px #030c13c2}
  .mobile-nav-heading{display:grid;gap:3px;padding:2px 4px 15px}
  .mobile-nav-heading strong{font-size:23px;letter-spacing:-.03em;color:#fff}
  .mobile-nav-heading small{font-size:14px;color:#ccdde6}
  .nav .mobile-nav-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}
  .nav .mobile-nav-actions a{display:grid;place-items:center;text-align:center;min-height:54px;padding:9px;border-radius:10px;border:1px solid #8ea7b6;font-size:15px;font-weight:850;color:#fff}
  .nav .mobile-nav-actions a.mobile-nav-feature{background:#e6b85f;border-color:#e6b85f;color:#18232c!important}
  .nav .mobile-nav-group{margin:0;border-bottom:1px solid #466173;border-top:0}
  .nav .mobile-nav-group>summary{padding:16px 13px;font-size:17px}
  .nav .mobile-nav-group>div{display:grid;grid-template-columns:1fr 1fr;gap:4px 9px;padding:9px;background:#102431}
  .nav .mobile-nav-group a{display:flex;align-items:center;min-height:48px;padding:10px 12px!important;font-size:14px}
  .nav .mobile-nav-end{display:block;text-align:center;padding:14px;margin:12px 0 4px;border:1px solid #5b7889;border-radius:9px;font-size:14px}
}
@media(max-width:580px){.nav .mobile-nav-group>div{grid-template-columns:1fr}.nav .mobile-nav nav{padding:16px 18px}.nav .mobile-nav-group a{min-height:44px}.nav .mobile-nav-actions a{font-size:14px}}

/* Keep the request form focused, with project details and backup options close at hand. */
.request-form .request-extra,.request-form .request-alternatives{border:1px solid #c5d0d4;border-radius:10px;background:#f6f8f8;padding:0 16px;margin:5px 0 20px}
.request-form :is(.request-extra,.request-alternatives)>summary{cursor:pointer;padding:14px 2px;min-height:48px;font-size:15px;font-weight:800;color:#223943}
.request-form :is(.request-extra,.request-alternatives)>summary:focus-visible{outline:3px solid #c99b49;outline-offset:2px}
.request-form .request-extra[open],.request-form .request-alternatives[open]{padding-bottom:16px}
.request-form .request-extra .form-row{padding-top:9px}
.request-form .request-extra label{margin-bottom:0}
.request-form .request-alternatives{margin:17px 0 0}
/* Show the four most requested routes immediately, leaving the longer list optional. */
.nav .navlinks>.nav-direct{display:inline-flex;align-items:center;min-height:46px;padding:9px 10px;border-radius:9px;color:#eef5f7;white-space:nowrap}
.nav .navlinks>.nav-direct:hover,.nav .navlinks>.nav-direct[aria-current="page"]{background:#253e50;color:#ffda8b}
.nav .nav-menu:first-of-type .nav-menu-panel{width:min(530px,calc(100vw - 45px))}
@media(min-width:1101px){.nav .navlinks{gap:2px}.nav .navlinks>.nav-home,.nav .nav-menu>summary{padding-inline:10px}.nav .navlinks>.button{padding-inline:13px}}
@media(max-width:1100px){
 .nav .mobile-nav-priority{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
 .nav .mobile-nav-priority a{display:flex;align-items:center;padding:12px 14px;min-height:54px;border:1px solid #59798e;border-radius:10px;background:#203b4d;color:#f7fafc;font-size:15px;font-weight:750;line-height:1.35}
 .nav .mobile-nav-priority a[aria-current="page"]{border-color:#efbe5e;color:#ffdc94}
 .nav .mobile-nav-priority a:hover,.nav .mobile-nav-priority a:focus-visible{background:#315568;border-color:#efbe5e}
}
@media(max-width:580px){.nav .mobile-nav-priority{grid-template-columns:1fr 1fr}.nav .mobile-nav-priority a{min-height:58px;font-size:14px}.nav .mobile-nav nav{padding-bottom:max(24px,env(safe-area-inset-bottom))}}
.request-form .request-alternatives p{font-size:14px;line-height:1.5;color:#354550;margin:0 0 13px}
.request-form .request-alternatives .button{min-height:44px}
.request-section{scroll-margin-top:calc(var(--nav-height,94px) + 20px)}

/* Optional feedback stays collapsed until the customer chooses to share it. */
.fpe-answer-feedback{margin:14px 0 0;border-top:1px solid #7893a2;padding-top:6px}.fpe-answer-feedback summary{min-height:44px;padding:10px 0;cursor:pointer;color:#ffdb91;font-weight:700;font-size:14px}.fpe-answer-feedback p{font-size:14px;line-height:1.55;color:#e3edf2;margin:10px 0}.fpe-answer-feedback label{display:grid;gap:6px;font-size:14px;color:#f4f8fa;margin:12px 0}.fpe-answer-feedback textarea,.fpe-answer-feedback select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;background:#fff;color:#14232e;border:1px solid #8198a6;border-radius:6px;padding:9px;font:16px/1.5 system-ui,sans-serif}.fpe-answer-feedback button{min-height:44px;padding:10px 14px;background:#e8bf69;color:#17232c;border:1px solid #ffda90;border-radius:6px;font:700 14px/1.4 system-ui,sans-serif}.fpe-answer-feedback button:disabled{opacity:.7}.fpe-answer-feedback :focus-visible{outline:3px solid #ffe1a1;outline-offset:3px}

/* A brief electric burst followed by a long rest keeps the invitation readable. */
.fpe-assistant-toggle{position:relative;isolation:isolate;overflow:visible}
.fpe-bolt{display:inline-block;transform-origin:50% 70%;font-size:21px;line-height:1;vertical-align:-2px}
.fpe-spark,.fpe-lightning{position:absolute;pointer-events:none;opacity:0;line-height:1;user-select:none}
.fpe-spark{color:#fff2b1;text-shadow:0 0 5px #ffd363,0 0 12px #efb836;font-size:20px}
.fpe-spark-one{top:-5px;right:22px}.fpe-spark-two{bottom:0;left:15px;font-size:16px}
.fpe-lightning{font:900 32px/1 Arial,sans-serif;color:#ffe394;text-shadow:0 0 6px #ffc531,0 0 15px #d7a331}
.fpe-lightning-left{left:-6px;top:-11px;rotate:-19deg}
.fpe-lightning-right{right:-5px;bottom:-9px;rotate:16deg;color:#b7f2ff;text-shadow:0 0 6px #61d9ff,0 0 15px #32a4d7}
@keyframes fpe-electric-halo{0%,20%,100%{box-shadow:0 8px 22px #0005}6%,10%{box-shadow:0 0 0 4px #f7cb6555,0 0 24px #e8bf6999,0 6px 30px #49bfea44}}
@keyframes fpe-bolt-charge{0%,20%,100%{transform:rotate(0) scale(1);filter:none}6%{transform:rotate(-14deg) scale(1.3);filter:drop-shadow(0 0 6px #fff4c6)}12%{transform:rotate(10deg) scale(1.13);filter:drop-shadow(0 0 4px #fff4c6)}}
@keyframes fpe-spark-drift{0%,19%,100%{opacity:0;transform:translateY(5px) scale(.55)}6%{opacity:1;transform:translateY(-4px) scale(1.15)}12%{opacity:.75;transform:translateY(-8px) scale(.8)}}
@keyframes fpe-side-lightning{0%,19%,100%{opacity:0;transform:translateY(4px) scale(.5)}5%,9%{opacity:1;transform:translateY(-3px) scale(1.12)}14%{opacity:.6;transform:translateY(-8px) scale(.85)}}
@media(prefers-reduced-motion:no-preference){
 .fpe-assistant:not(.is-open) .fpe-assistant-toggle{animation:fpe-electric-halo 16s ease-in-out .5s infinite}
 .fpe-assistant:not(.is-open) .fpe-bolt{animation:fpe-bolt-charge 16s ease-in-out .5s infinite}
 .fpe-assistant:not(.is-open) .fpe-spark-one{animation:fpe-spark-drift 16s ease-in-out .5s infinite}
 .fpe-assistant:not(.is-open) .fpe-spark-two{animation:fpe-spark-drift 16s ease-in-out 1s infinite}
 .fpe-assistant:not(.is-open) .fpe-lightning-left{animation:fpe-side-lightning 16s ease-in-out .5s infinite}
 .fpe-assistant:not(.is-open) .fpe-lightning-right{animation:fpe-side-lightning 16s ease-in-out 1.1s infinite}
 .fpe-assistant-toggle:hover,.fpe-assistant-toggle:focus-visible,.fpe-assistant-toggle:hover>span,.fpe-assistant-toggle:focus-visible>span{animation:none!important}
}
@media(prefers-reduced-motion:reduce){.fpe-assistant-toggle,.fpe-bolt,.fpe-spark,.fpe-lightning{animation:none!important;transition:none!important}.fpe-spark,.fpe-lightning{display:none}}

/* Compact phone chat: fixed controls, one scroll area, readable input. */
.fpe-chat-memory summary{font-size:14px;font-weight:700;min-height:44px;display:list-item;align-content:center;cursor:pointer}
.fpe-chat-memory:not([open])>:not(summary){display:none}
.fpe-chat-memory label{margin:8px 0}
.fpe-assistant-panel,.fpe-assistant-content,.fpe-assistant-form,.fpe-assistant-shortcuts{min-width:0}
.fpe-assistant-content{overflow-wrap:anywhere}
.fpe-assistant-shortcuts button{min-width:0}
@media(max-width:700px),(max-height:500px) and (pointer:coarse){
 body.fpe-chat-open{overflow:hidden}
 .fpe-assistant.is-open{top:var(--fpe-chat-top,10px);bottom:auto;right:10px}
 .fpe-assistant.is-open .fpe-assistant-toggle{display:none}
 .fpe-assistant.is-open .fpe-assistant-panel{height:var(--fpe-chat-height,calc(100dvh - 24px));max-height:var(--fpe-chat-height,calc(100dvh - 24px));margin-bottom:0;overflow:hidden}
 .fpe-assistant-panel header{padding:8px 12px;align-items:center}
 .fpe-assistant-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:6px 10px}
 .fpe-assistant-shortcuts button{font-size:14px;min-height:44px;padding:6px;overflow-wrap:normal}
 .fpe-assistant-shortcuts .fpe-start-over{grid-column:auto;padding:6px}
 .fpe-assistant-panel .fpe-assistant-chips{grid-template-columns:1fr}
 .fpe-assistant-form{padding:8px 10px max(8px,env(safe-area-inset-bottom));gap:6px}
 .fpe-assistant-form input{min-height:44px;width:0;font-size:16px!important}
 .fpe-assistant-form button{min-width:60px;min-height:44px;padding:0 10px}
 .fpe-assistant-photos input{max-width:100%;min-width:0;font-size:16px}
 .fpe-assistant.keyboard-open header small{display:none}
 .fpe-assistant.keyboard-open .fpe-assistant-shortcuts button{font-size:13px;line-height:1.25}
}
.fpe-assistant-form .fpe-hide-keyboard{display:none}
@media(max-width:700px),(max-height:500px) and (pointer:coarse){
 .fpe-assistant.keyboard-open .fpe-hide-keyboard{display:block;min-width:44px;padding:0 8px;font-size:24px}
 .fpe-assistant.short-viewport .fpe-assistant-shortcuts{display:none}
}

/* Final usability polish: visible focus, scrollable menus and clear request receipts. */
.nav .nav-menu-panel{max-height:calc(100dvh - var(--nav-height,100px) - 56px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:1100px){body.fpe-menu-open{overflow:hidden}.nav .mobile-nav nav{padding-bottom:max(24px,env(safe-area-inset-bottom));scrollbar-gutter:stable}}
.button:focus-visible,.fpe-assistant-toggle:focus-visible,.fpe-assistant-close:focus-visible,.fpe-assistant-form button:focus-visible{outline:3px solid #e9bb5b;outline-offset:3px;box-shadow:0 0 0 5px #14232e}
.request-form :is(input,select,textarea,button):focus-visible{outline:3px solid #8c5e14;outline-offset:3px}
.request-form .form-status{white-space:pre-line;overflow-wrap:anywhere}
.request-form .request-photo-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,160px));gap:12px;margin-top:12px}
.request-photo-preview figure{min-width:0;margin:0;border:1px solid #9aaab0;border-radius:10px;padding:8px;background:#fff}
.request-photo-preview figure img{display:block;width:100%;height:100px;border-radius:5px;object-fit:cover}
.request-photo-preview figcaption{color:#354550;font-size:14px;line-height:1.45;overflow-wrap:anywhere;margin:8px 0}
.request-photo-preview button{width:100%;min-height:44px;padding:8px;border:1px solid #52616b;border-radius:6px;background:#f4f7f8;color:#14232e;font-size:14px;cursor:pointer}
.request-photo-preview button:hover{background:#e6edf0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.nav .nav-menu-panel a,.nav .nav-menu>summary{transition:none!important}}
