/* FabryLab 360 v58.29.63-RC — final scoped public UX adjustments.
   Correct sticky visual clipping, branded contact links and readable footer;
   do not touch checkout controls, statuses, estimator inputs, commerce or payments. */

/* Logo stays centered in already-sticky navigation; never create sticky behavior. */
@media (min-width:781px) {
  body:not(.wp-admin) .fl-v582821-sticky-comfort:is(#masthead,.site-header,header,.wp-block-template-part) {
    min-height:64px!important;
    padding-block:8px!important;
    overflow:visible!important;
  }
  body:not(.wp-admin) .fl-v582821-sticky-comfort:is(#masthead,.site-header,header,.wp-block-template-part) :is(.custom-logo-link,.wp-block-site-logo,.site-logo,.site-branding) {
    display:flex;align-items:center;min-height:40px;max-width:100%;overflow:visible!important;
  }
  body:not(.wp-admin) .fl-v582821-sticky-comfort:is(#masthead,.site-header,header,.wp-block-template-part) img.fl-exact-logo-582959,
  body:not(.wp-admin) .fl-v582821-sticky-comfort:is(#masthead,.site-header,header,.wp-block-template-part) img.custom-logo,
  body:not(.wp-admin) .fl-v582821-sticky-comfort:is(#masthead,.site-header,header,.wp-block-template-part) .wp-block-site-logo img {
    display:block!important;width:clamp(185px,17vw,220px)!important;
    max-width:min(220px,100%)!important;height:auto!important;max-height:44px!important;
    object-fit:contain!important;object-position:center!important;
    margin-block:auto!important;flex-shrink:0;
  }
}

/* Contact page: own palette instead of browser-default bright blue. Scope to
   content and exclude the deliberately styled CTA buttons. */
body.page-id-69 :is(.entry-content,.wp-block-post-content,.fl100-contact-aside)
 a[href^="mailto:"],
body.page-id-69 :is(.entry-content,.wp-block-post-content,.fl100-contact-aside)
 a[href^="tel:"] {
  color:#086b7f!important;text-decoration-thickness:1px;text-underline-offset:3px;
}
body.page-id-69 .fl100-contact-actions :is(a[href^="mailto:"],a[href^="tel:"]) {
  color:#fff!important;text-decoration:none!important;
}
body.page-id-69 :is(.entry-content,.wp-block-post-content,.fl100-contact-aside)
 :is(a[href^="mailto:"],a[href^="tel:"]):hover {
  color:#06445b!important;text-decoration:underline!important;
}
body.page-id-69 .fl100-contact-actions :is(a[href^="mailto:"],a[href^="tel:"]):hover {
  color:#fff!important;
}
body.page-id-69 .fl-v271-seo-contact .fl-v271-head {margin-bottom:0}
body.page-id-69 .fl-v271-seo-contact .fl-v271-head p {max-width:800px}

/* Footer legibility and keyboard contrast without changing its columns. */
body:not(.wp-admin) :is(#colophon,.site-footer,.fl-site-footer,#site-footer,[data-elementor-type="footer"])
 :is(a:not(.button),.site-info,.copyright,.footer-legal) {
  font-size:max(12px, .8rem);line-height:1.55;
}
body:not(.wp-admin) :is(#colophon,.site-footer,.fl-site-footer,#site-footer,[data-elementor-type="footer"])
 a:not(.button) {color:#e0edf5;text-underline-offset:3px}
body:not(.wp-admin) :is(#colophon,.site-footer,.fl-site-footer,#site-footer,[data-elementor-type="footer"])
 a:not(.button):hover {color:#9fe8e9;text-decoration:underline}

/* Clear active navigation and focus — no change to routing or menu behavior. */
body:not(.wp-admin) :is(#masthead,.site-header,.main-header,.fl-site-header)
 :is(a,button):focus-visible {outline:3px solid #078fa5!important;outline-offset:3px!important}

@media (max-width:680px) {
  /* A true compact symbol even if the custom-logo PHP filter runs before JS. */
  body:not(.wp-admin) :is(#masthead,.site-header,.main-header,.fl-site-header,[data-elementor-type="header"])
   :is(img.custom-logo,img.fl-exact-logo-582959,.wp-block-site-logo img) {
    max-width:48px!important;max-height:48px!important;object-fit:contain!important;
  }
  body.page-id-69 .fl100-contact-hero {gap:18px!important}
  body.page-id-69 .fl100-contact-aside {min-width:0}
  body.page-id-69 .fl100-contact-aside>a {overflow-wrap:anywhere}
  body:not(.wp-admin) :is(#colophon,.site-footer,.fl-site-footer,#site-footer)
   img.fl-exact-footer-logo-582960 {width:min(280px,100%)!important}
}
@media (prefers-reduced-motion:reduce) {
  body:not(.wp-admin) .fl-v582821-sticky-comfort:is(#masthead,.site-header,header,.wp-block-template-part) {transition:none!important}
}


/* v58.29.64 — last-mile brand alignment based on public desktop screenshots.
   SCOPED to content; never alter cart/Paynow form logic or product imagery. */

/* Brand spectrum on home hero: previous purple endpoint is replaced by the
   supplied FabryLab logo navy -> cyan -> green. Handles inline gradient spans. */
body.home :is(main,#content,.site-main,.entry-content,.wp-block-post-content)
  :is(h1,h2) :is(.gradient,.gradient-text,.text-gradient,[class*="gradient"],em,[style*="linear-gradient"],[style*="background-image"]),
body.front-page :is(main,#content,.site-main,.entry-content,.wp-block-post-content)
  :is(h1,h2) :is(.gradient,.gradient-text,.text-gradient,[class*="gradient"],em,[style*="linear-gradient"],[style*="background-image"]) {
  background-image:linear-gradient(105deg,#1553a6 0%,#078ca7 57%,#19a46d 100%)!important;
  background-clip:text!important;-webkit-background-clip:text!important;
  color:#126e87!important;-webkit-text-fill-color:transparent!important;
}
/* Common home hero text often lives in a separate generated section. Keep it
   narrow to words already marked by theme as gradients, not arbitrary headings. */
body.home :is(.fl-v30-hero,.fl100-hero-frame--home,.fl-v30-home-hero)
  :is(h1,h2) :is([class*="gradient"],[class*="accent"],[style*="gradient"]) {
  background:linear-gradient(105deg,#1553a6 0%,#078ca7 57%,#19a46d 100%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
}

/* Contact: target the actual contact information links (which can be outside
   .entry-content on certain WP themes); do not recolor header, footer or CTAs. */
body.page-id-69 :is(main,#content,#primary,.site-main,article,.entry-content,.wp-block-post-content)
  a[href^="mailto:"]:not(.button):not(.fl100-contact-primary),
body.page-id-69 :is(main,#content,#primary,.site-main,article,.entry-content,.wp-block-post-content)
  a[href^="tel:"]:not(.button):not(.fl100-contact-primary) {
  color:#086c80!important;text-decoration-color:rgba(8,108,128,.55)!important;
  text-underline-offset:3px;overflow-wrap:anywhere;
}
body.page-id-69 :is(main,#content,#primary,.site-main,article,.entry-content,.wp-block-post-content)
  a:is([href^="mailto:"],[href^="tel:"]):not(.button):not(.fl100-contact-primary):hover {
  color:#064961!important;text-decoration-color:currentColor!important;
}
/* Keep the main mailto action white on navy despite the preceding selector. */
body.page-id-69 .fl100-contact-actions a.fl100-contact-primary,
body.page-id-69 .fl100-contact-actions a.fl100-contact-primary:hover {
  color:#fff!important;text-decoration:none!important;
}
body.page-id-69 .fl100-contact-aside a:is([href^="mailto:"],[href^="tel:"]) {
  color:#0a5b70!important;font-weight:800;text-decoration:none!important;
}
body.page-id-69 .fl100-contact-aside a:is([href^="mailto:"],[href^="tel:"]):hover {
  color:#065c6b!important;text-decoration:underline!important;
}
body.page-id-69 .fl100-contact-actions a:not(.fl100-contact-primary) {
  color:#143547!important;background:#fff!important;text-decoration:none!important;
  border-color:#1a3543!important;
}
body.page-id-69 .fl100-contact-actions a:not(.fl100-contact-primary):hover {
  color:#084e62!important;border-color:#078fa5!important;
}

/* Footer links and disclaimer remain readable on navy; avoid overflow and
   reduce line-wrap trouble for long email addresses at 320px. */
body:not(.wp-admin) :is(footer,#colophon,#site-footer,.site-footer,.fl-site-footer,[data-elementor-type="footer"])
  :is(a,p,small,li,.site-info,.copyright,.footer-legal) {
  overflow-wrap:anywhere;
}
body:not(.wp-admin) :is(footer,#colophon,#site-footer,.site-footer,.fl-site-footer,[data-elementor-type="footer"])
  :is(a,li,p):not(.fl-store-btn) {
  line-height:1.6;
}
body:not(.wp-admin) :is(footer,#colophon,#site-footer,.site-footer,.fl-site-footer,[data-elementor-type="footer"])
  :is(a:not(.button),.site-info,.copyright,.footer-legal) {
  font-size:max(13px,.82rem)!important;
}
body:not(.wp-admin) :is(footer,#colophon,#site-footer,.site-footer,.fl-site-footer,[data-elementor-type="footer"])
  a:is([href^="mailto:"],[href^="tel:"]) {
  color:#ecf7f8!important;
}
/* Clear visible keyboard focus without affecting state/behavior. */
body:not(.wp-admin) :is(a,button,summary):focus-visible {
  outline:3px solid #078fa5!important;outline-offset:3px!important;
}

/* Mobile spacing: contain hero, contact fields and footer within viewport,
   without hiding any menus or changing the widget-controlled navigation. */
@media(max-width:767px) {
  body.page-id-69 .fl100-contact-hero {width:min(100% - 20px,1180px)!important;padding:23px 18px!important;gap:18px!important}
  body.page-id-69 .fl100-contact-hero :is(h1,h2) {font-size:clamp(29px,7.7vw,40px)!important;line-height:1.12!important;hyphens:auto}
  body.page-id-69 .fl100-contact-aside {min-width:0!important}
  body.page-id-69 :is(.fl100-contact-main,.fl100-contact-aside,.entry-content,.wp-block-post-content) {min-width:0}
  body:not(.wp-admin) :is(#colophon,.site-footer,.fl-site-footer,#site-footer) :is(p,li,a) {font-size:13px!important}
  body:not(.wp-admin) :is(#masthead,.site-header,.main-header,.fl-site-header) img.fl-logo-is-symbol582961 {width:45px!important;height:45px!important;max-height:45px!important;aspect-ratio:1!important;object-fit:contain!important}
  body:not(.wp-admin) :is(main,.entry-content,.wp-block-post-content) img {max-width:100%;height:auto}
}
@media(max-width:390px) {
  body.page-id-69 .fl100-contact-actions a {width:100%!important;max-width:100%;white-space:normal!important}
  body:not(.wp-admin) :is(#colophon,.site-footer,.fl-site-footer,#site-footer) img.fl-exact-footer-logo-582960 {width:min(250px,100%)!important}
}
@media(prefers-reduced-motion:reduce){
  body:not(.wp-admin) :is(a,button,summary) {scroll-behavior:auto!important}
}


/* v58.29.65 — phone/desktop closeout from actual 02.11 screenshots.
   Decorative brand colors and placement only. Does not modify tracking,
   preferences, legal wording, commerce or customer data. */

/* The legacy homecards script still injects 4 decorative accents inline.
   Override the old purple and gold using higher-priority brand variables;
   retain distinct identities for cards (navy, teal, green, steel blue). */
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="1"] {--fl81-accent:#115f96!important}
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="2"] {--fl81-accent:#078aa2!important}
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="3"] {--fl81-accent:#15946e!important}
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="4"] {--fl81-accent:#237a94!important}
:where(body.home,body.front-page) .fl81-process-card[data-fl81-card="4"] {--fl81-accent:#227f87!important}
:where(body.home,body.front-page) :is(.fl81-service-section,.fl81-process-section) h2::after{
 background:linear-gradient(90deg,#0b4d83 0%,#0d96a7 58%,#20a578 100%)!important;
}
:where(body.home,body.front-page) .fl81-process-grid::before{
 background:linear-gradient(90deg,#a8d7e4,#0d96a7,#77c6b0)!important;
}
/* Interior icon tiles are the leading small rounded container; keep text/cards intact. */
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="1"] > :first-child:not(:is(h1,h2,h3,h4,a,p)){
 background:#edf5fb!important;color:#115f96!important;
}
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="3"] > :first-child:not(:is(h1,h2,h3,h4,a,p)){
 background:#e8f7f0!important;color:#188b69!important;
}
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="2"] > :first-child:not(:is(h1,h2,h3,h4,a,p)){
 background:#eaf8fa!important;color:#08798e!important;
}
:where(body.home,body.front-page) .fl81-service-card[data-fl81-card="4"] > :first-child:not(:is(h1,h2,h3,h4,a,p)){
 background:#eef7fb!important;color:#236a87!important;
}
:where(body.home,body.front-page) .fl81-service-card a:not(.fl81-service-card){
 color:#096a84!important;text-decoration:none!important;text-underline-offset:3px;
}
:where(body.home,body.front-page) .fl81-service-card a:not(.fl81-service-card):hover{
 color:#075164!important;text-decoration:underline!important;
}
:where(body.home,body.front-page) .fl81-process-card[data-fl81-card="4"] .fl81-process-num{
 background:#e9f5f6!important;color:#176477!important;border-color:#bddfe3!important;
}

/* Keep consent withdrawal reachable while avoiding collision with the first
   words of headings and footer legal links on narrow phone screens. */
@media(max-width:767px){
 body:not(.wp-admin) #fl-ga4-settings.fl-ga4-settings:not([hidden]){
  left:auto!important;right:max(12px,env(safe-area-inset-right,0px))!important;
  bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;
  padding:7px 11px!important;font-size:12px!important;line-height:1.25!important;
  max-width:min(190px,48vw)!important;white-space:normal!important;
  background:#102c3d!important;border:1px solid #397080!important;
  box-shadow:0 7px 18px rgba(2,21,31,.20)!important;
 }
 /* Deliberate breathing room so the last footer links can be scrolled above
    the fixed settings control. No hide/deactivate and no analytics change. */
 body:not(.wp-admin) :is(footer#colophon,#colophon,footer.site-footer,.site-footer,#site-footer,.fl-site-footer){
  padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;
 }
}
@media(max-width:390px){
 body:not(.wp-admin) #fl-ga4-settings.fl-ga4-settings:not([hidden]){
  font-size:11px!important;padding:7px 10px!important;
 }
}
