:root{--app-bg: #f4f4f4;--text-color: #1a1a1a;--primary-color: #ff6421;--font-headings: "Salmond", sans-serif;--font-body: "League Spartan", sans-serif;--bar-height: 5rem}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-body);color:var(--text-color);background:var(--app-bg)}*,*:before,*:after{box-sizing:border-box}#root,.app{min-height:100%}h1,h2,h3,h4,h5,h6{font-family:var(--font-headings);color:var(--text-color);margin:0 0 .5em;line-height:1.2}p,span,li,dt,dd,small,label,input,textarea,button,a,div{font-family:var(--font-body);color:var(--text-color)}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-Thin.ttf) format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-ExtraLight.ttf) format("truetype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-SemiBold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-ExtraBold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/league_spartan/LeagueSpartan-Black.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-Semibold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-Oblique.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-LightOblique.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-MediumOblique.ttf) format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-BoldOblique.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Salmond;src:url(/fonts/salmond/Salmond-SemiboldOblique.ttf) format("truetype");font-weight:600;font-style:italic;font-display:swap}.app{padding:2rem}.zakeke-viewer{height:calc(100vh - 3.5rem - 180px)!important;width:auto!important}.app__layout{display:grid;grid-template-columns:62% 37%;gap:1.5rem;align-items:start}.app__left{position:sticky;top:1.5rem;height:calc(100dvh - 3rem);display:flex;order:1}.app__right{order:2}.summary-root{order:3}.app__viewer-shell{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}@media (max-width: 1024px){.app{padding:0 0 1rem}.app__layout{grid-template-columns:1fr;gap:16px;padding:0rem}.app__left{position:sticky;top:0rem;height:calc(35dvh + 100px);z-index:1;order:1;background:#fff;overflow-x:hidden}.app__right{padding-right:0;order:2;padding:1rem}.zakeke-viewer{height:100%!important}body.has-scroll .app__viewer-shell{box-shadow:0 -3px 8px #0000004a}}.bottom-bar{position:fixed;left:0;right:0;bottom:0;background:var(--app-bg);box-shadow:0 3px 8px #0000004a;min-height:var(--bar-height);z-index:2;transform:translateY(0);transition:transform .2s ease-in-out,opacity .2s ease;opacity:1}.bottom-bar__content{padding:2rem;height:var(--bar-height);display:flex;justify-content:space-between;align-items:center}.bottom-bar--hidden{transform:translateY(100%);opacity:0}.bottom-bar__actions{display:flex;gap:1rem}.summary-divider-bottom{width:1px;height:2.5rem;background-color:#ccc}.summary__price-bottom{display:flex;gap:.75rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}@media (max-width: 1024px){.summary__price-bottom{margin-top:0!important}}@media (max-width: 768px){.bottom-bar__actions{display:none}.summary-bottom{flex-direction:row!important;align-items:center!important;margin-top:0!important;gap:1rem!important;flex-wrap:nowrap!important;display:flex}.bottom-bar__content{padding:1rem;justify-content:center}}.overlay{position:fixed;inset:0;z-index:9999;background:var(--app-bg);display:flex;align-items:center;justify-content:center;padding:16px}.box{display:flex;flex-direction:column;align-items:center;gap:1rem}.label{color:#555;font-size:1.3rem}.spinner{width:3.5rem;height:3.5rem;border:4px solid #e5e7eb;border-top-color:#ff6421;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.image-slider{background:#fff;border-radius:1.2rem;box-shadow:0 2px 6px #0000000a;padding:.75rem;margin-bottom:1.5rem;height:100px;display:flex;align-items:center;overflow:hidden}.image-slider__empty{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:#666;font-style:italic}.image-slider__grid{display:flex;gap:.75rem;width:100%;height:100%;align-items:center;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;margin-bottom:-6px}.image-slider__grid::-webkit-scrollbar{height:4px}.image-slider__grid::-webkit-scrollbar-track{background:transparent}.image-slider__grid::-webkit-scrollbar-thumb{background-color:#0000004d;border-radius:2px;transition:background-color .3s ease}.image-slider__grid::-webkit-scrollbar-thumb:hover{background-color:#00000080}.image-item{position:relative;width:auto;height:100%;aspect-ratio:1;border-radius:.5rem;overflow:hidden;cursor:pointer;background:#f8f9fa;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid #e5e7eb;flex-shrink:0;min-width:0}.image-item__wrapper{position:relative;width:100%;height:100%}.image-item__img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .3s ease}.image-item:hover .image-item__img{transform:scale(1.03)}.image-item__overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}@media only screen and (max-width: 1024px){.image-slider{margin-bottom:0;padding:.5rem;max-width:100%;overflow-x:hidden}.image-slider__grid{max-width:100%}}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports (outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports (outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0}.image-modal-backdrop{position:fixed;inset:0;background:#11182780;display:flex;align-items:center;justify-content:center;z-index:20;animation-duration:.26s;animation-timing-function:ease-out;animation-fill-mode:both;pointer-events:auto}.image-modal-backdrop--in{animation-name:image-backdrop-fade-in}.image-modal-backdrop--out{animation-name:image-backdrop-fade-out}@keyframes image-backdrop-fade-in{0%{opacity:0}to{opacity:1}}@keyframes image-backdrop-fade-out{0%{opacity:1}to{opacity:0}}.image-modal{background:var(--app-bg);border-radius:1.2rem;width:min(90vw,800px);max-height:90vh;overflow:hidden;box-shadow:0 .6rem 1.8rem #0003;padding:0;animation-duration:.2s;animation-fill-mode:both;will-change:transform,opacity;position:relative}.image-modal--in{animation-name:image-modal-zoom-in;animation-timing-function:cubic-bezier(.2,.8,.2,1)}.image-modal--out{animation-name:image-modal-zoom-out;animation-timing-function:ease-in}.image-modal__close{position:absolute;top:15px;right:14px;background:var(--primary-color);border-radius:999px;width:2.2rem;height:2.2rem;border:none;cursor:pointer;padding-top:4px}.image-modal__image{width:100%;height:auto;max-height:90vh;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:1.2rem}.image-modal__content{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000c);color:#fff;padding:40px 20px 20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:0 0 1.2rem 1.2rem}@keyframes image-modal-zoom-in{0%{opacity:0;transform:translateY(0) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes image-modal-zoom-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(4px) scale(.98)}}@media (max-width: 768px){.image-modal{border-radius:1.2rem 1.2rem 0 0;width:100%;max-height:90vh;position:absolute;bottom:0;animation-duration:.2s}.image-modal--in{animation-name:image-bottomsheet-in}.image-modal--out{animation-name:image-bottomsheet-out}.image-modal__image{border-radius:1.2rem 1.2rem 0 0}@keyframes image-bottomsheet-in{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes image-bottomsheet-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:.6}}}.summary{background:#fff;border-radius:1.2rem;box-shadow:0 2px 6px #0000000a;padding:1.5rem;margin-top:1rem}.summary__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.summary__title{font-size:1.5rem;font-weight:700;color:#111827;margin:0;line-height:1.2}.summary__price{display:flex;gap:.75rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.divider{width:1px;height:2.5rem;background-color:#ccc}.summary__box{display:grid;grid-template-columns:1fr 1px 1fr;gap:1.5rem;align-items:start;margin-top:1rem}.summary__vertical-divider{background-color:#e5e7eb;width:1px;min-height:100%;display:block}.summary__box-item{min-width:0}.summary__subtitle{font-size:1.2rem;font-weight:700;color:#111827;margin:0 0 .75rem}.options-list{display:flex;flex-direction:column;gap:.5rem}.option-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.5rem 0}.key-name{font-size:.95rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:.5rem;max-width:60%}.key-value{font-weight:600;text-align:right;flex-shrink:0}.empty-state{color:#9ca3af;font-style:italic;padding:.75rem;text-align:center}.summary__actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}@media (max-width: 1024px){.summary{margin:1rem}.summary__box{gap:1rem}.summary__price{margin-top:1.5rem}}@media (max-width: 768px){.summary__box{grid-template-columns:1fr;gap:1rem}.summary__vertical-divider{display:none}.summary__price{display:flex;flex-direction:column;align-items:end;row-gap:1rem}.summary__price .divider{display:none}.key-name{max-width:55%}}.configurator__grid{display:grid;gap:1rem;grid-template-columns:1fr}.configurator__group.group{background:#fff;border-radius:1.2rem;box-shadow:0 2px 6px #0000000a;padding:1.5rem;transition:grid-template-rows .3s linear}.group__header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.group__header--title{font-weight:600;font-size:1.4rem;margin:6px 0 0;flex:1}.group__header--icon{color:#111827;display:none;flex-shrink:0;line-height:1;position:relative}.group__header--icon .icon-plus{display:none}.group__header--icon .icon-minus{display:block}.attribute__subtitle{font-style:italic}.group__body{margin-top:1rem;display:flex;flex-direction:column;gap:1rem;overflow:hidden;max-height:10000px}.group__empty{color:#9ca3af;font-style:italic;padding:.75rem;text-align:center}.attribute__options.options{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(140px,1fr))}.configurator__title{font-size:2.5rem;font-weight:600}@media (min-width: 768px){.configurator__grid{grid-template-columns:1fr}.attribute__options.options{grid-template-columns:repeat(3,minmax(0,1fr))}.price-summary{display:flex;gap:1.2rem;align-items:center;justify-content:start;margin-bottom:1rem}}@media (min-width: 1024px){.configurator__grid{grid-template-columns:1fr}.attribute__options.options{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1300px){.attribute__options.options{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1024px){.group__header{cursor:pointer}.group__header--icon{display:flex;align-items:center;justify-content:center}.group--closed .group__body{max-height:0;margin-top:0}.group--closed .group__header--icon .icon-minus{display:none}.group--closed .group__header--icon .icon-plus{display:block}}.options__item{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;padding:1.2rem 1.8rem;border:1px solid #ddd;cursor:pointer;margin-right:1.2rem;transition:background-color .2s}.options__item:hover{background-color:#eee}.options__item.option{position:relative;border:1px solid #e5e7eb;border-radius:1.2rem;background:#fff;width:100%;display:flex;align-items:start;gap:.75rem;cursor:pointer;justify-content:flex-start;transition:border-color .2s,background-color .2s;padding:1rem 1rem 3rem;box-sizing:border-box}.option--selected .option__dot{background:radial-gradient(circle at center,#000 0 5px,transparent 6px);border-color:#000}.option--selected{background:#ff642161!important}.option--selected .option__label{color:#000}.option__image{width:auto!important;height:5rem!important;object-fit:cover!important;margin:1rem auto}.option__label{font-size:.9rem;text-align:start}.option__radio{position:absolute;inset:0;opacity:0;pointer-events:none}.option__dot{position:absolute;bottom:.75rem;left:.75rem;width:1.1rem;height:1.1rem;border:2px solid #111827;border-radius:50%;background:#fff;box-sizing:border-box}.option{position:relative}.option__info-btn{position:absolute;top:.5rem;right:.5rem;border:none;background:transparent;cursor:pointer}.option__info-btn img{width:1.3rem;height:1.3rem;display:block}.option--pending,.options__item .option--pending{pointer-events:none}.option__spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.option__spinner:after{content:"";width:2rem;height:2rem;border-radius:50%;border:3px solid rgba(0,0,0,.15);border-top-color:var(--primary-color);animation:option-spin .6s linear infinite}.options__item .option__spinner{display:flex}@keyframes option-spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;background:#11182780;display:flex;align-items:center;justify-content:center;z-index:20;animation-duration:.26s;animation-timing-function:ease-out;animation-fill-mode:both;pointer-events:auto}.modal-backdrop--in{animation-name:backdrop-fade-in}.modal-backdrop--out{animation-name:backdrop-fade-out}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-fade-out{0%{opacity:1}to{opacity:0}}.modal{background:var(--app-bg);border-radius:1.2rem;width:min(560px,92vw);max-height:80dvh;overflow:auto;box-shadow:0 .6rem 1.8rem #0003;padding:1rem;animation-duration:.2s;animation-fill-mode:both;will-change:transform,opacity}.modal--in{animation-name:modal-zoom-in;animation-timing-function:cubic-bezier(.2,.8,.2,1)}.modal--out{animation-name:modal-zoom-out;animation-timing-function:ease-in}.modal__media .splide{margin:0}.modal__media .splide__slide img{width:100%;height:18.5rem;object-fit:contain;border-radius:.8rem}.modal__close{color:#1a1a1a;background:var(--primary-color);border-radius:999px;width:2.2rem;height:2.2rem;border:none;cursor:pointer;padding-top:4px}.modal__close img{width:25px;height:auto}.modal__close--over{position:absolute;top:15px;right:15px;z-index:2}.modal__title{font-size:1.2rem;font-weight:600;text-align:left;margin-top:.75rem}.modal__content{font-size:1rem;text-align:left}.modal__footer{margin-top:2rem}.btn-primary{background:var(--primary-color);color:#fff;padding:1rem 1.25rem;border-radius:1.2rem;cursor:pointer;text-align:center;font-weight:600;font-size:1rem;border:none}.btn-primary.btn--block{width:100%;margin-top:1rem}@media (max-width: 768px){.modal{background:var(--app-bg);border-radius:1.2rem 1.2rem 0 0;width:100%;max-height:80dvh;overflow:auto;padding:1rem;position:absolute;bottom:0;animation-duration:.2s}.modal--in{animation-name:bottomsheet-in}.modal--out{animation-name:bottomsheet-out}@keyframes bottomsheet-in{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes bottomsheet-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:.6}}}@keyframes modal-zoom-in{0%{opacity:0;transform:translateY(0) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-zoom-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(4px) scale(.98)}}
