/*!

Theme Name:   Josephine Child Theme

Template:     josephine

Version:      1.0.0



Theme URI:    https://github.com/webmandesign/child-theme/

Author:       WebMan Design

Author URI:   https://www.webmandesign.eu/

License:      GPL-3.0-or-later

License URI:  https://www.gnu.org/licenses/gpl-3.0-standalone.html



This theme, like WordPress, is licensed under the GPL.

Use it to make something cool, have fun, and share what you've learned with others.



IMPORTANT:

Read the instructions in https://github.com/webmandesign/child-theme/blob/master/readme.md



Child theme CSS styles:

*/
/* === 3DFS (2026-09-01): child theme base - rules two or more page families share ===
   Everything below this line is spliced into josephine-child/style.css by
   scripts/deploy_theme_assets.py, replacing from this marker to end of file.
   Page-family rules live in scripts/theme/css/*.css and are enqueued per template
   or slug by the child theme's functions.php. Map: scripts/theme/css/manifest.json.
   Build book: docs/handoffs/CSS.md. */
.has-submenu-gradient-primary-to-secondary .wp-block-navigation__submenu-container.has-background{background:linear-gradient(135deg,#0f0f0f 0%,#2a0d0d 55%,#d32f2f 100%)!important}
hr.is-style-shape,hr.is-style-shape-repeated{-webkit-mask-image:none!important;mask-image:none!important;height:14px;background-color:transparent!important;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20120%2040%22%20preserveAspectRatio%3D%22xMidYMid%20slice%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23202020%22%20stroke-width%3D%224.5%22%20stroke-linecap%3D%22round%22%20d%3D%22M-120%2020%20C-100%201.33333%20-80%201.33333%20-60%2020%20C-40%2038.6667%20-20%2038.6667%200%2020%20C20%201.33333%2040%201.33333%2060%2020%20C80%2038.6667%20100%2038.6667%20120%2020%20C140%201.33333%20160%201.33333%20180%2020%20C200%2038.6667%20220%2038.6667%20240%2020%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23d32f2f%22%20stroke-width%3D%224.5%22%20stroke-linecap%3D%22round%22%20d%3D%22M-80%2020%20C-60%201.33333%20-40%201.33333%20-20%2020%20C0%2038.6667%2020%2038.6667%2040%2020%20C60%201.33333%2080%201.33333%20100%2020%20C120%2038.6667%20140%2038.6667%20160%2020%20C180%201.33333%20200%201.33333%20220%2020%20C240%2038.6667%20260%2038.6667%20280%2020%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%231565c0%22%20stroke-width%3D%224.5%22%20stroke-linecap%3D%22round%22%20d%3D%22M-40%2020%20C-20%201.33333%200%201.33333%2020%2020%20C40%2038.6667%2060%2038.6667%2080%2020%20C100%201.33333%20120%201.33333%20140%2020%20C160%2038.6667%20180%2038.6667%20200%2020%20C220%201.33333%20240%201.33333%20260%2020%20C280%2038.6667%20300%2038.6667%20320%2020%22%2F%3E%3C%2Fsvg%3E");background-repeat:repeat-x;background-size:auto 100%;background-position:center}
.sde-dark-band a{color:var(--wp--preset--color--white)}
.sdetitle{margin:0 auto;max-width:min(94%,22em);text-wrap:balance;text-shadow:0 3px 26px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.35)}
.is-style-page-header .wp-block-cover__inner-container{text-align:center}
.sdefig{margin-block:var(--wp--preset--spacing--xl)}
.sdepoint{background:var(--wp--preset--color--base-alt);border-top:3px solid var(--wp--preset--color--primary);padding:var(--wp--preset--spacing--m);font-size:var(--wp--preset--font-size--s);line-height:1.55}
.wp-block-post-content h2[id]{scroll-margin-top:2rem}
.sdehub p,.sdehub li{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.65}
.sdehub-hero-copy p{margin-bottom:0;color:var(--hub-white);font-style:italic;font-size:clamp(1.05rem,1.35vw,1.22rem);line-height:1.5;text-shadow:0 2px 12px rgba(0,0,0,.8)}
.sdesv h3 a,.sdesv h3 a:hover{color:inherit;text-decoration:none}
.sdesv{container-type:inline-size}
.sdesv .wp-block-cover__inner-container{text-align:center;align-self:stretch;position:relative;display:flex;flex-direction:column;justify-content:center}
.sdesv h3 a::after{content:'';position:absolute;inset:calc(-1 * var(--wp--preset--spacing--m));z-index:3}
.sdesv::before{content:'';position:absolute;inset:0;z-index:1;border-radius:inherit;background:rgba(17,18,20,0.88);pointer-events:none;transform:translateY(100%);transition:transform .55s cubic-bezier(.22,1,.36,1)}
.sdesv::after{content:'';position:absolute;inset:0;box-sizing:border-box;border-radius:inherit;border:3px solid var(--wp--preset--color--primary);opacity:0;pointer-events:none;z-index:4;transition:opacity .3s ease}
.sdesv h3.has-m-font-size{margin:0;font-size:clamp(1.35rem,7.4cqi,2.05rem)!important;line-height:1.08;min-height:2.16em;display:flex;align-items:center;justify-content:center;text-shadow:0 2px 18px rgba(0,0,0,.55);transition:transform .55s cubic-bezier(.22,1,.36,1),color .3s ease,text-shadow .3s ease}
.sdesv-reveal{position:absolute;left:0;right:0;top:calc(50% - 77px);bottom:auto;opacity:0;text-align:left;max-width:min(30rem,88%);margin-inline:auto;transform:translateY(14px);transition:opacity .34s ease .08s,transform .46s cubic-bezier(.22,1,.36,1) .08s}
.sdesv-reveal p{font-size:var(--wp--preset--font-size--s)}
.sdesv-key{position:relative;display:flex;flex-direction:column;justify-content:center;container-type:inline-size}
.sdesv-key h3.has-m-font-size{font-size:clamp(1.35rem,3.2cqi,2.05rem)!important;line-height:1.08}
.sdesv-key p:not(.sdemore){text-align:left;max-width:min(34rem,92%);margin-left:auto;margin-right:auto}
.sdesv-key{transition:box-shadow .3s ease}
@media(min-width:660px){
.sdesv-key{grid-column:span 2}
}
@media(hover:hover){
.sdesv-key:hover,.sdesv-key:focus-within{box-shadow:inset 0 0 0 3px var(--wp--preset--color--primary)}
}
@media(prefers-reduced-motion:reduce){
.sdesv-key{transition:none}
}
@media(hover:hover){
.sdesv:hover::before,.sdesv:focus-within::before{transform:translateY(0)}
.sdesv:hover::after{opacity:1}
.sdesv:hover h3.has-m-font-size,.sdesv:focus-within h3.has-m-font-size{transform:translateY(-100px);text-shadow:none;font-weight:900!important;color:var(--wp--preset--color--primary)}
.sdesv:hover h3 a,.sdesv:focus-within h3 a{color:var(--wp--preset--color--primary)}
.sdesv:hover .sdesv-reveal,.sdesv:focus-within .sdesv-reveal{opacity:1;transform:translateY(0)}
}
.sdesv:focus-within::after{opacity:1}
@media(hover:none){
.sdesv h3.has-m-font-size{transform:none;font-size:var(--wp--preset--font-size--m)!important;text-shadow:none}
.sdesv-reveal{position:static;opacity:1;transform:none;margin-top:var(--wp--preset--spacing--s)}
.sdesv::before{transform:none}
.sdesv-key h3.has-m-font-size{font-size:var(--wp--preset--font-size--m)!important}
}
@media(prefers-reduced-motion:reduce){
.sdesv::before,.sdesv::after,.sdesv h3.has-m-font-size,.sdesv-reveal{transition:none}
}
body:has(.sdecompany-hero) .wp-block-post-content{margin-block:0!important;max-width:none!important}
.sdecompany-hero.alignfull{box-sizing:border-box;display:grid;min-height:clamp(24rem,39vw,34rem);align-items:end;width:auto;max-width:none;margin-block:0!important;margin-left:calc(-1 * var(--wp--style--root--padding-left,0px))!important;margin-right:calc(-1 * var(--wp--style--root--padding-right,0px))!important;padding:clamp(5rem,11vw,9rem) max(32px,calc((100% - 1120px)/2)) clamp(4rem,7vw,6rem)!important;border-bottom:2px solid var(--wp--preset--color--primary,#d32f2f);background-color:#111!important;background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/08/3dfs-hero-master-bkg-darker.jpg')!important;background-position:center 42%!important;background-size:cover!important;color:#fff!important;text-align:left}
.sdecompany-hero h1{max-width:none;margin:0!important;color:#fff!important;font-family:var(--wp--preset--font-family--supplemental,"Barlow Semi Condensed",sans-serif)!important;font-size:clamp(2.6rem,5vw,3.75rem)!important;font-weight:500!important;letter-spacing:-.025em!important;line-height:1!important;overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance;text-transform:uppercase}
.sdecompany-hero p{width:min(760px,100%);max-width:760px;margin:1.6rem 0 0!important;color:rgba(255,255,255,.9)!important;font-size:clamp(1rem,1.25vw,1.16rem)!important;font-style:normal;line-height:1.65!important}
body:has(.sdecompany-hero) #content,
body:has(.sdecompany-hero) #content>div:first-child,
body:has(.sdecompany-hero) .wp-block-post-content{margin-top:0!important;margin-block-start:0!important;padding-top:0!important;padding-block-start:0!important;max-width:none!important}
.sdecompany-hero.sdecompany-partners,.sdecompany-hero.sdecompany-vendors,.sdecompany-hero.sdecompany-vendor-application{position:relative;box-sizing:border-box!important;width:100%!important;max-width:none!important;margin:0!important;min-height:clamp(24rem,31vw,28rem)!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;background-color:#111!important;background-image:url('/wp-content/uploads/2026/08/partners-hero-poster.webp')!important;background-position:center!important;background-size:cover!important;isolation:isolate;overflow:hidden}
.sdepartners-hero-inner h1{width:100%!important;margin:0!important;color:#fff!important;font-family:var(--wp--preset--font-family--supplemental,"Barlow Semi Condensed",sans-serif)!important;font-size:var(--wp--preset--font-size--big,clamp(2rem,5.1vw,4rem))!important;font-weight:900!important;letter-spacing:normal!important;line-height:1.05!important;text-align:center!important;text-transform:uppercase!important;text-shadow:0 3px 26px rgba(0,0,0,.8),0 1px 3px rgba(0,0,0,.5)!important}
@media(max-width:700px){
.sdecompany-hero.alignfull{min-height:22rem;padding:5rem 16px 3.5rem!important;background-position:58% center!important}
.sdecompany-hero h1{font-size:clamp(2.55rem,12vw,3.35rem)!important}
}
@media (max-width:781.98px){.sdestep svg.sdefig{width:calc(100% + 2 * var(--wp--preset--spacing--l));max-width:none;margin-inline:calc(-1 * var(--wp--preset--spacing--l));border-radius:0}.sdestep svg.sdefig g[transform]{transform-origin:1128px 118px}}
@media (max-width:493.98px){.sdestep svg.sdefig>text{font-size:44px}.sdestep svg.sdefig g[transform]{scale:1.69}}
@media (min-width:494px) and (max-width:623.98px){.sdestep svg.sdefig>text{font-size:34px}.sdestep svg.sdefig g[transform]{scale:1.31}}
body.page-id-44548 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/contact-hero.webp')!important}
body.page-id-45743 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/contact-site-analysis-hero.webp')!important}
body.page-id-45745 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/contact-manufacturing-hero.webp')!important}
body.page-id-45747 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/contact-partnerships-hero.webp')!important}
body.page-id-45749 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/contact-jobs-hero.webp')!important}
body.page-id-45751 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/contact-press-hero.webp')!important}
body.page-id-44755 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/careers-hero.webp')!important}
body.page-id-44538 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/press-proof-hero.webp')!important}
body.page-id-44756 .sdecompany-hero.alignfull{background-image:url('/wp-content/uploads/2026/10/vendors-hero.webp')!important}
body.page-id-45323 .sdecompany-hero.alignfull{background-image:url('/wp-content/uploads/2026/10/vendor-application-hero.webp')!important}
body.page-id-44756 .sdepartners-hero-video,body.page-id-45323 .sdepartners-hero-video{display:none!important}
body.page-id-44675 .sdecompany-hero.alignfull{background-image:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.67) 58%,rgba(8,8,8,.48)),url('/wp-content/uploads/2026/10/labs-hero.webp')!important}
body.page-id-44990 .sdemfg-hero .wp-block-cover__video-background{display:none!important}
body.page-id-44990 .sdemfg-hero{background-image:url('/wp-content/uploads/2026/10/cm-hero.webp')!important;background-size:cover!important;background-position:50% 50%!important}
html:has(body.page-id-45003){overflow-x:clip}
body.page-id-45003 .wp-block-post-content>h1:first-of-type{box-sizing:border-box;width:auto;max-width:none;margin:calc(-1*var(--wp--preset--spacing--content)) calc(-1*var(--wp--style--root--padding-right,0px)) var(--wp--preset--spacing--l) calc(-1*var(--wp--style--root--padding-left,0px))!important;padding:clamp(4rem,9vw,7rem) 1.5rem;background-image:linear-gradient(rgba(8,8,8,.62),rgba(8,8,8,.78)),url('/wp-content/uploads/2026/10/terms-hero.webp');background-size:cover;background-position:center;color:#fff!important}
.sdesources-box{margin:var(--wp--preset--spacing--l) 0 0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.sdesources-box>summary{display:inline-block;cursor:pointer;list-style:none!important;font-size:.74rem!important;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#7a7a7a!important}
.sdesources-box>summary::-webkit-details-marker{display:none!important}
.sdesources-box>summary::marker{content:""!important}
.sdesources-box>summary::before{content:'+ ';color:#d32f2f}
.sdesources-box[open]>summary::before{content:'\2212  '}
.sdesources-box ol{margin-top:.6rem!important;color:#6a6a6a;font-size:.82rem!important;line-height:1.5}
.sdesources-box>summary::before{border:0!important;width:auto!important;height:auto!important;transform:none!important;transition:none!important}
@media(max-width:781px){
.wp-block-post-content>table{display:block;max-width:100%;overflow-x:auto}
}
.wp-block-latest-posts__list:not(.is-grid)>li{margin-block-start:0;padding-block:.4375rem}
.wp-block-latest-posts__list:not(.is-grid) .wp-block-latest-posts__post-date{display:block;margin-block-start:.125rem;line-height:1.4}
.wp-block-latest-posts__list:not(.is-grid) .wp-block-latest-posts__post-date:empty{display:none}
.sdeanim:has(>canvas)::after,#pqrd5-container .pqrd-canvas-container::after,.sdeco-model:hover .sdeco-model-photo:has(>.sdeco-card-frame)::after{box-sizing:border-box;width:28px;height:28px;border:2.5px solid rgba(211,47,47,.16);border-top-color:#d32f2f;border-radius:50%;opacity:0;pointer-events:none;animation:sde-loader-in .2s cubic-bezier(.23,1,.32,1) .3s forwards,sde-loader-spin .8s linear 13,sde-loader-out .2s cubic-bezier(.23,1,.32,1) 10s forwards}
.sdeanim:has(>canvas[aria-hidden])::after,#pqrd5-container .pqrd-canvas-container:has(>canvas[width])::after,.sdeco-model:hover .sdeco-model-photo.is-live:has(>.sdeco-card-frame)::after{border-color:transparent;animation-play-state:paused;visibility:hidden;transition:border-color .2s cubic-bezier(.23,1,.32,1),visibility 0s .2s}
#pqrd5-container .pqrd-canvas-container{position:relative}
#pqrd5-container .pqrd-canvas-container::after{content:"";position:absolute;z-index:1;top:50%;left:50%;margin:-14px 0 0 -14px}
@keyframes sde-loader-in{from{opacity:0}to{opacity:1}}
@keyframes sde-loader-spin{to{transform:rotate(360deg)}}
@keyframes sde-loader-out{from{opacity:1}to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){
.sdeanim:has(>canvas)::after,#pqrd5-container .pqrd-canvas-container::after,.sdeco-model:hover .sdeco-model-photo:has(>.sdeco-card-frame)::after{border-color:#d32f2f;border-top-color:transparent;animation:sde-loader-in 0s .3s forwards,sde-loader-out 0s 10s forwards}
.sdeanim:has(>canvas[aria-hidden])::after,#pqrd5-container .pqrd-canvas-container:has(>canvas[width])::after,.sdeco-model:hover .sdeco-model-photo.is-live:has(>.sdeco-card-frame)::after{transition:none}
}
