/* FabryLab 360 v58.28.2 — public UX coherence audit (scoped, no business logic). */
:root{--fl82-ink:#0e2636;--fl82-navy:#103344;--fl82-teal:#0b989b;--fl82-copper:#ca9255;--fl82-edge:#cadfe4;--fl82-muted:#526b78;--fl82-shadow:0 15px 32px rgba(8,48,65,.075)}
/* One language for public hero panels; not a full-screen dark layout. */
:is(.fl-v272-visual .fl-v272-hero,.fl-v25-cad .fl-v25-cad-hero,.fl-v583-wrap .fl-v583-hero,.fl-store .fl-store-hero,.flp4 .fl96-hero,.fl100-contact-hero){border-radius:clamp(18px,2.2vw,25px)!important;border:1px solid #bfd9df!important;background:linear-gradient(130deg,#f2f9fb 0%,#fff 52%,#effbf6 100%)!important;box-shadow:0 18px 36px rgba(8,48,65,.075)!important;max-width:100%;min-width:0}
:is(.fl-v272-hero,.fl-v25-cad-hero,.fl-v583-hero,.fl-store-hero,.fl96-hero,.fl100-contact-hero) :is(h1,h2){text-wrap:balance;overflow-wrap:break-word}
:is(.fl-v272-visual,.fl-v25-cad,.fl-v583-wrap,.fl-store,.flp4,.fl100-contact-hero,.fl-v510-product,.fl-v572-product,.fl-v570-shell){min-width:0}
/* Services: consistent clear cards and focus affordances. */
.fl-v272-visual :is(.fl-v272-grid3,.fl-v272-grid4)>article,
.fl-v25-cad .fl-v25-cards>article,
.fl-v583-wrap :is(.fl-v583-use-grid>a,.fl-v583-b2b-grid>article,.fl-v583-mat-card){background:linear-gradient(180deg,#fff,#fbfefe)!important;border:1px solid #d2e2e8!important;border-radius:17px!important;box-shadow:0 10px 24px rgba(8,48,65,.055)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.fl-v272-visual :is(.fl-v272-grid3,.fl-v272-grid4)>article:hover,
.fl-v25-cad .fl-v25-cards>article:hover,
.fl-v583-wrap :is(.fl-v583-use-grid>a,.fl-v583-b2b-grid>article,.fl-v583-mat-card):hover{border-color:#79bfc2!important;box-shadow:0 17px 30px rgba(8,48,65,.085)!important;transform:translateY(-2px)}
/* Price/info panels keep their own state colors and semantics. */
.fl-v272-visual :is(.fl-v272-btn,.fl-v272-final a),.fl-v25-cad .fl-v25-btn,.fl-v583-wrap .fl-v583-actions a,.fl-store .fl-store-btn,.fl100-contact-actions a{min-height:44px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
:is(.fl-v272-visual,.fl-v25-cad,.fl-v583-wrap,.fl-store,.flp4,.fl-v510-product,.fl-v572-product,.fl-v570-shell) :is(a,button,summary,input,textarea,select):focus-visible{outline:3px solid #19a5aa!important;outline-offset:3px}
/* Store: fix cramped/overlapping-looking separation between the hero border and first product. */
.fl-store{overflow:visible!important;isolation:isolate;margin-top:clamp(10px,2vw,24px)!important}
.fl-store>.fl-store-hero{position:relative!important;z-index:1!important;overflow:hidden!important;margin:0!important;display:flow-root!important;float:none!important;transform:none!important;min-height:0!important;height:auto!important}
.fl-store>.fl-store-grid{position:relative!important;z-index:0!important;clear:both!important;margin:clamp(28px,3.2vw,42px) 0 0!important;padding:0!important;align-items:start!important;gap:clamp(16px,2vw,24px)!important}
.fl-store .fl-store-card{position:relative;isolation:isolate;min-width:0;border-color:#cedfe6!important;border-radius:20px!important;box-shadow:var(--fl82-shadow)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.fl-store .fl-store-card:hover{border-color:#76bec1!important;box-shadow:0 20px 42px rgba(8,48,65,.11)!important;transform:translateY(-2px)}
.fl-store .fl-store-media{display:block!important;position:relative;overflow:hidden;border-radius:0!important;aspect-ratio:5/4!important;background:linear-gradient(145deg,#f7fafb,#ecf5f6)!important;padding:clamp(8px,1.2vw,14px)}
.fl-store .fl-store-media img{display:block;max-width:100%;object-fit:contain!important}
.fl-store .fl-store-body{padding:clamp(18px,2vw,25px)!important}
.fl-store .fl-store-card h2{line-height:1.22;overflow-wrap:anywhere}
.fl-store .fl-store-btn{box-shadow:0 8px 16px rgba(8,48,65,.09)}
.fl-store .fl-store-note{margin-top:24px!important}
/* Product detail pages: tighten widths, soften product media edges. No form behavior changed. */
.fl-v510-product .fl-v510-hero-media,.fl-v572-product .fl-v572-main{border:1px solid #d4e3e8!important;border-radius:22px!important;box-shadow:0 16px 34px rgba(8,48,65,.08)!important;overflow:hidden}
.fl-v510-product :is(.fl-v510-hero,.fl-v510-split),.fl-v572-product .fl-v572-hero{min-width:0}
.fl-v510-product img,.fl-v572-product img{max-width:100%}
/* Cart/checkout: preserve original order totals, validation and Paynow controls. */
.fl-v570-shell{max-width:1120px!important;padding-inline:clamp(14px,2.2vw,24px)!important}
.fl-v570-shell :is(.fl-v570-lines,.fl-v570-checkout>div,.fl-v570-form){border-color:#d2e2e7!important;border-radius:18px!important;box-shadow:0 10px 24px rgba(8,48,65,.045)!important}
.fl-v570-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){max-width:100%;min-width:0}
.fl-v570-shell :is(.fl-v570-line,.fl-v570-mini){min-width:0}
.fl-v570-shell .fl-v570-head{margin-bottom:clamp(14px,2vw,22px)}
/* Supporting informational pages: readable typography and spacing; do not hide legal terms. */
body.page-id-79 .entry-content,body.page-id-79 .wp-block-post-content,
body.page-id-80 .entry-content,body.page-id-80 .wp-block-post-content,
body.page-id-253 .entry-content,body.page-id-253 .wp-block-post-content,
body.page-id-254 .entry-content,body.page-id-254 .wp-block-post-content,
body.page-id-255 .entry-content,body.page-id-255 .wp-block-post-content{max-width:900px;margin-inline:auto;line-height:1.7}
:is(body.page-id-79,body.page-id-80,body.page-id-253,body.page-id-254,body.page-id-255) :is(.entry-content,.wp-block-post-content) :is(h1,h2,h3){line-height:1.2;overflow-wrap:anywhere}
:is(body.page-id-79,body.page-id-80,body.page-id-253,body.page-id-254,body.page-id-255) :is(.entry-content,.wp-block-post-content) :is(a){overflow-wrap:anywhere}
:is(body.page-id-79,body.page-id-80,body.page-id-253,body.page-id-254,body.page-id-255) :is(.entry-content,.wp-block-post-content) table{display:block;max-width:100%;overflow-x:auto}
/* Post-payment return: visual polish only, preserve red/green/amber status semantics. */
body.page-id-229 .fl-v511-public{width:min(680px,calc(100% - 30px));margin:clamp(26px,5vw,65px) auto!important;box-shadow:0 16px 34px rgba(8,48,65,.055)!important}
body.page-id-229 .fl-v511-public a{font-weight:760;overflow-wrap:anywhere}
/* Reduce redundant whitespace after theme title removal where module owns its own hero. */
body.page-id-313 .fl-v583-wrap,body.page-id-314 .fl-v583-wrap{padding-top:clamp(12px,2vw,26px)!important}
body.page-id-68 .flp4{margin-top:10px!important}
/* Contact form touch targets and content spacing only. */
body.page-id-69 .fl100-contact-hero{margin-bottom:clamp(22px,3vw,36px)!important}
body.page-id-69 :is(.fl-v271-seo-contact,.fl100-contact-hero)+:is(form,section,div){margin-top:12px}
/* Main page section rhythm. */
.fl-v272-visual .fl-v272-section{padding-block:clamp(32px,4vw,56px)}
.fl-v583-wrap .fl-v583-section{margin-block:clamp(32px,4vw,52px)}
@media(max-width:850px){
 .fl-store>.fl-store-grid{margin-top:25px!important}
 .fl-v272-visual :is(.fl-v272-grid3,.fl-v272-grid4){gap:12px}
}
@media(max-width:620px){
 .fl-store>.fl-store-grid{margin-top:23px!important}
 .fl-store .fl-store-hero{padding:23px 19px!important}
 .fl-store .fl-store-card h2{font-size:clamp(21px,6vw,25px)!important}
 .fl-store .fl-store-actions>a{width:100%;text-align:center}
 .fl-v510-product .fl-v510-hero,.fl-v572-product .fl-v572-hero{grid-template-columns:1fr!important;gap:20px!important}
 .fl-v570-shell .fl-v570-lines{padding:14px!important}
 .fl-v570-shell .fl-v570-line{grid-template-columns:1fr!important;gap:9px!important}
 .fl-v570-shell .fl-v570-line>label{max-width:180px}
 .fl-v570-shell .fl-v570-checkout{min-width:0}
}
@media(prefers-reduced-motion:reduce){
 .fl-v272-visual :is(.fl-v272-grid3,.fl-v272-grid4)>article,
 .fl-v25-cad .fl-v25-cards>article,
 .fl-v583-wrap :is(.fl-v583-use-grid>a,.fl-v583-b2b-grid>article,.fl-v583-mat-card),
 .fl-store .fl-store-card{transition:none!important;transform:none!important}
}
