*, ::before, ::after { box-sizing: border-box; }

h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

main { overflow: visible; }

body { font-family: var(--_typography---font--primary-family); margin: 0px; }

p { font-family: var(--_typography---font--primary-family); }

html { scrollbar-width: thin; scrollbar-color: var(--swatch--brand-500) transparent; background-color: var(--swatch--dark-900); overflow-x: clip; }

html:has(body.u-theme-light), html.u-theme-light-page { background-color: var(--swatch--light-100); }

html:has(body.u-theme-brand) { background-color: var(--swatch--brand-500); scrollbar-color: var(--swatch--light-100) transparent; }

html::-webkit-scrollbar { width: 10px; }

html::-webkit-scrollbar-track { background-color: transparent; margin-top: 4px; margin-bottom: 4px; }

html::-webkit-scrollbar-thumb { background-color: var(--swatch--brand-500); background-clip: padding-box; border-width: 3px; border-style: solid; border-color: transparent; border-radius: 6px; }

html:has(body.u-theme-brand)::-webkit-scrollbar-thumb { background-color: var(--swatch--light-100); }

html::-webkit-scrollbar-corner { background-color: transparent; }

.gl-visor_panel { scrollbar-width: none; }

.gl-visor_panel::-webkit-scrollbar { display: none; }

.gl-legal_table-wrap { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--_theme---text) 20%, transparent) transparent; }

html.gl-preloading { overflow: hidden; }

.gl-preloader { position: fixed; inset: 0px; z-index: 9999; background-color: rgb(11, 11, 11); display: flex; align-items: center; justify-content: center; pointer-events: none; }

.gl-preloader_logo { width: clamp(140px, 18vw, 240px); opacity: 1; }

body.u-theme-dark ::selection { background-color: var(--swatch--brand-500); color: var(--swatch--light-100); }

body.u-theme-light ::selection { background-color: var(--swatch--dark-900); color: var(--swatch--light-100); }

.u-radius-subtle { border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.u-gap-collapse > * { margin-right: calc(var(--border-width--main) * -1); margin-bottom: calc(var(--border-width--main) * -1); }

.u-h-full { min-height: var(--section--height--full); }

.u-h-hero { min-height: var(--section--height--hero); }

.u-h-large { min-height: var(--section--height--large); }

.u-h-medium { min-height: var(--section--height--medium); }

.gl-hero-cap { max-height: var(--section--height--full); overflow: hidden; }

.gl-hero-with-bar { display: flex; flex-direction: column; }

.gl-theme-dark-nobg { color: var(--swatch--light-100); --_theme---text: var(--swatch--light-100); --_theme---background: var(--swatch--dark-900); --_theme---border: var(--swatch--light-100-o20); }

.gl-theme-light-nobg { color: var(--swatch--dark-900); --_theme---text: var(--swatch--dark-900); --_theme---background: var(--swatch--light-100); --_theme---border: var(--swatch--dark-900-o20); }

.gl-link-reset { color: inherit; text-decoration-line: none; }

.gl-mono { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.6; }

.gl-mono_muted { color: color-mix(in srgb, var(--_theme---text) 40%, transparent); }

.gl-mono_label { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.6; color: color-mix(in srgb, var(--_theme---text) 35%, transparent); }

.u-text-style-display { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; line-height: 0.95; letter-spacing: -0.02em; margin: 0px; }

.u-text-style-h1 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h1); font-weight: 200; line-height: 1; letter-spacing: -0.02em; margin: 0px; }

.u-text-style-h2 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1.1; letter-spacing: -0.02em; margin: 0px; }

.u-text-style-h3 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h3); font-weight: 200; line-height: 1.15; letter-spacing: -0.01em; margin: 0px; }

.u-text-style-h4 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h4); font-weight: 200; line-height: 1.2; letter-spacing: -0.01em; margin: 0px; }

.u-text-style-h5 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h5); font-weight: 200; line-height: 1.25; margin: 0px; }

.u-text-style-h6 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h6); font-weight: 200; line-height: 1.3; margin: 0px; }

.u-text-style-large { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-large); font-weight: 300; line-height: 1.4; margin: 0px; }

.u-text-style-main { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-main); font-weight: 300; line-height: 1.6; margin: 0px; }

.u-text-style-small { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-small); font-weight: 300; line-height: 1.6; margin: 0px; }

.u-margin-top-1 { margin-top: var(--_spacing---space--1); }

.u-margin-top-2 { margin-top: var(--_spacing---space--2); }

.u-margin-top-3 { margin-top: var(--_spacing---space--3); }

.u-margin-top-4 { margin-top: var(--_spacing---space--4); }

.u-margin-top-5 { margin-top: var(--_spacing---space--5); }

.u-margin-top-6 { margin-top: var(--_spacing---space--6); }

.u-margin-top-7 { margin-top: var(--_spacing---space--7); }

.u-margin-top-8 { margin-top: var(--_spacing---space--8); }

.u-margin-bottom-1 { margin-bottom: var(--_spacing---space--1); }

.u-margin-bottom-2 { margin-bottom: var(--_spacing---space--2); }

.u-margin-bottom-3 { margin-bottom: var(--_spacing---space--3); }

.u-margin-bottom-4 { margin-bottom: var(--_spacing---space--4); }

.u-margin-bottom-5 { margin-bottom: var(--_spacing---space--5); }

.u-margin-bottom-6 { margin-bottom: var(--_spacing---space--6); }

.u-margin-bottom-7 { margin-bottom: var(--_spacing---space--7); }

.u-margin-bottom-8 { margin-bottom: var(--_spacing---space--8); }

.gl-section-number { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.6; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); display: block; margin-bottom: var(--_spacing---space--1); }

.gl-tag { display: inline-flex; align-self: flex-start; padding: 0.1875rem 0.5rem; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); }

.gl-rule { border-width: 1px 0px 0px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-cell { border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 1 / 1; transition-property: transform; transition-duration: 0.25s; transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1); }

.gl-home_catalog_grid .gl-cell:hover { transform: scale(1.04); }

.gl-cell_filled { background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.gl-cell_empty { border-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-cell_symbol { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 300; line-height: 1; letter-spacing: -0.02em; flex-grow: 1; display: flex; align-items: center; }

.gl-cell_code { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.1em; color: color-mix(in srgb, var(--_theme---text) 35%, transparent); text-transform: uppercase; }

.gl-cell_name { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.06em; color: color-mix(in srgb, var(--_theme---text) 60%, transparent); text-transform: uppercase; }

.gl-spec-row { display: flex; justify-content: space-between; align-items: center; padding-bottom: var(--_spacing---space--1); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-img-placeholder { position: relative; background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); border-width: 1px; border-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); display: flex; align-items: center; justify-content: center; }

.gl-section-border { border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-contain { max-width: var(--max-width--main); margin-left: auto; margin-right: auto; }

.gl-filter-input { background-color: transparent; color: var(--_theme---text); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding: 0.375rem 0.75rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; min-width: 8rem; }

input.gl-filter-input { appearance: none; outline-width: 0px; line-height: 1.2; }

input.gl-filter-input::placeholder { color: color-mix(in srgb, var(--_theme---text) 42%, transparent); }

input.gl-filter-input:focus-visible { border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); }

input.gl-filter-input.is-invalid { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.nl-modal { position: fixed; inset: 0px; z-index: 300; display: flex; align-items: center; justify-content: center; padding: var(--_spacing---space--4); opacity: 0; visibility: hidden; transition-property: opacity, visibility; transition-duration: 0.25s; transition-timing-function: ease; }

.nl-modal.is-open { opacity: 1; visibility: visible; }

.nl-modal_backdrop { position: absolute; inset: 0px; background-color: color-mix(in srgb, rgb(11, 11, 11) 72%, transparent); backdrop-filter: blur(6px); }

.nl-modal_card { position: relative; z-index: 1; width: 100%; max-width: 26rem; display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--3); background-color: var(--swatch--dark-900); border-width: 1px; border-style: solid; border-top-color: var(--swatch--light-100-o20); border-right-color: var(--swatch--light-100-o20); border-bottom-color: var(--swatch--light-100-o20); border-left-color: var(--swatch--light-100-o20); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding-top: var(--_spacing---space--6); padding-right: var(--_spacing---space--6); padding-bottom: var(--_spacing---space--6); padding-left: var(--_spacing---space--6); transform: translateY(12px); transition-property: transform; transition-duration: 0.3s; transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1); }

.nl-modal.is-open .nl-modal_card { transform: translateY(0px); }

.nl-modal_eyebrow { color: var(--swatch--brand-500); }

.nl-modal_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-large); font-weight: 300; line-height: 1.15; color: var(--swatch--light-100); margin-top: 0px; margin-bottom: 0px; }

.nl-modal_text { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-main); font-weight: 300; line-height: 1.5; color: color-mix(in srgb, var(--swatch--light-100) 62%, transparent); margin-top: 0px; margin-bottom: 0px; }

.nl-modal_email { color: var(--swatch--light-100); }

.nl-modal_close { margin-top: var(--_spacing---space--2); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--swatch--dark-900); background-color: var(--swatch--light-100); border-width: 0px; padding: 0.6rem 1.2rem; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); cursor: pointer; transition-property: background-color, color; transition-duration: 0.2s; transition-timing-function: ease; }

.nl-modal_close:hover { background-color: var(--swatch--brand-500); color: var(--swatch--light-100); }

.gl-swatch { width: 1.75rem; height: 1.75rem; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); }

.gl-hero-symbol { font-family: var(--_typography---font--primary-family); font-size: clamp(5rem, 12vw, 10rem); font-weight: 200; line-height: 0.9; letter-spacing: -0.04em; }

.gl-btn_skew_wrap { position: relative; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }

.gl-btn_skew_shape { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; overflow: visible; }

.gl-btn_skew_element { position: relative; display: flex; align-items: center; justify-content: center; padding: 1.1rem 1.75rem 0.65rem 0.75rem; color: var(--_theme---text); background-color: transparent; border-width: 0px; font-family: inherit; text-decoration-line: none; cursor: pointer; }

.gl-btn_skew_text { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-main); font-weight: 300; letter-spacing: 0.25em; text-transform: uppercase; line-height: 1; }

.gl-btn_skew_wrap_filled { color: var(--_theme---text); }

.gl-btn_skew_wrap_filled .gl-btn_skew_element { color: var(--_theme---background); }

.gl-btn_skew_wrap_brand { color: var(--swatch--brand-500); }

.gl-btn_skew_wrap_brand .gl-btn_skew_element { color: var(--swatch--light-100); }

.gl-btn_skew_wrap_brand-outline { color: var(--swatch--brand-500); }

.gl-btn_skew_wrap_brand-outline .gl-btn_skew_element { color: var(--swatch--brand-500); }

.gl-btn_skew_wrap_ghost { color: color-mix(in srgb, var(--_theme---text) 30%, transparent); }

.gl-btn_skew_wrap_ghost .gl-btn_skew_element { color: color-mix(in srgb, var(--_theme---text) 50%, transparent); }

.gl-btn_skew_element_sm { padding: 0.7rem 1.25rem 0.4rem 1rem; }

.gl-btn_skew_text_sm { font-size: var(--_typography---font-size--label); letter-spacing: 0.2em; }

.gl-btn_skew_element_lg { padding: 1.4rem 2.5rem 0.85rem; }

.gl-btn_skew_text_lg { font-size: clamp(1rem, 2vw, 1.375rem); letter-spacing: 0.3em; }

.gl-btn_skew_shape path { d: path("M 16 1 L 239 1 L 239 42 L 224 55 L 1 55 L 1 14 Z"); transition-property: d, fill; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-btn_skew_element { transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-installations_toggle-button .gl-btn_skew_shape path { fill: none; }

.gl-installations_toggle-button.gl-btn_skew_wrap_filled .gl-btn_skew_shape path { fill: currentcolor; }

.gl-btn_skew_wrap:hover .gl-btn_skew_shape path, .gl-btn_skew_wrap:focus-visible .gl-btn_skew_shape path { d: path("M 1 1 L 239 1 L 239 55 L 239 55 L 1 55 L 1 1 Z"); fill: currentcolor; }

.gl-btn_skew_wrap:hover .gl-btn_skew_element, .gl-btn_skew_wrap:focus-visible .gl-btn_skew_element { color: var(--_theme---background); }

.gl-btn_skew_wrap_filled:hover .gl-btn_skew_shape path, .gl-btn_skew_wrap_filled:focus-visible .gl-btn_skew_shape path { fill: none; }

.gl-btn_skew_wrap_filled:hover .gl-btn_skew_element, .gl-btn_skew_wrap_filled:focus-visible .gl-btn_skew_element { color: var(--_theme---text); }

.gl-btn_skew_wrap_brand:hover .gl-btn_skew_shape path, .gl-btn_skew_wrap_brand:focus-visible .gl-btn_skew_shape path { fill: none; }

.gl-btn_skew_wrap_brand:hover .gl-btn_skew_element, .gl-btn_skew_wrap_brand:focus-visible .gl-btn_skew_element { color: var(--swatch--brand-500); }

.gl-btn_skew_wrap_brand-outline:hover .gl-btn_skew_element, .gl-btn_skew_wrap_brand-outline:focus-visible .gl-btn_skew_element { color: var(--swatch--light-100); }

.gl-btn_skew_wrap_ghost { transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-btn_skew_wrap_ghost:hover, .gl-btn_skew_wrap_ghost:focus-visible { color: var(--_theme---text); }

.gl-btn_skew_wrap_ghost:hover .gl-btn_skew_element, .gl-btn_skew_wrap_ghost:focus-visible .gl-btn_skew_element { color: var(--_theme---background); }

.gl-btn_rect { display: inline-flex; align-items: center; justify-content: center; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.14em; text-transform: uppercase; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 22%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 22%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 22%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 22%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); background-color: transparent; color: var(--_theme---text); cursor: pointer; text-decoration-line: none; transition-property: background-color, color, border-color; transition-duration: 0.15s; transition-timing-function: ease; white-space: nowrap; }

.gl-btn_rect:hover, .gl-btn_rect:focus-visible { background-color: var(--_theme---text); color: var(--_theme---background); border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); }

.gl-btn_rect_filled { background-color: var(--_theme---text); color: var(--_theme---background); border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); }

.gl-btn_rect_filled:hover, .gl-btn_rect_filled:focus-visible { background-color: transparent; color: var(--_theme---text); border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); }

.gl-btn_rect_brand { background-color: var(--swatch--brand-500); color: var(--swatch--brand-text); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-btn_rect_brand:hover, .gl-btn_rect_brand:focus-visible { background-color: var(--swatch--light-100); color: var(--swatch--brand-500); border-top-color: var(--swatch--light-100); border-right-color: var(--swatch--light-100); border-bottom-color: var(--swatch--light-100); border-left-color: var(--swatch--light-100); }

.gl-btn_rect_brand-outline { background-color: transparent; color: var(--swatch--brand-500); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-btn_rect_brand-outline:hover, .gl-btn_rect_brand-outline:focus-visible { background-color: var(--swatch--brand-500); color: var(--swatch--brand-text); }

.gl-btn_rect_ghost { background-color: transparent; color: color-mix(in srgb, var(--_theme---text) 55%, transparent); border-top-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); }

.gl-btn_rect_ghost:hover, .gl-btn_rect_ghost:focus-visible { background-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); color: var(--_theme---text); border-top-color: color-mix(in srgb, var(--_theme---text) 28%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 28%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 28%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 28%, transparent); }

.gl-btn_rect_sm { font-size: 0.625rem; letter-spacing: 0.1em; padding-top: var(--_spacing---space--1); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); }

.gl-btn_rect_lg { font-size: var(--_typography---font-size--label); padding-top: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--3); padding-left: var(--_spacing---space--6); padding-right: var(--_spacing---space--6); }

.gl-btn_rect_full { width: 100%; }

.gl-btn_rect[disabled], .gl-btn_rect.is-disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none; }

.gl-home_nav-edge { padding-left: var(--site--margin); padding-right: var(--site--margin); position: relative; z-index: 50; background-color: transparent; backdrop-filter: blur(0px); transition-property: transform, background-color, backdrop-filter; transition-duration: 0.55s; transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1); transition-delay: 0s; }

.gl-home_nav-edge.is-solid { background-color: color-mix(in srgb, var(--_theme---background) 82%, transparent); backdrop-filter: blur(14px); }

.gl-home_nav-edge.is-fixed { position: fixed; top: 0px; left: 0px; right: 0px; }

.gl-home_nav-edge.is-fixed.nav--scroll-hide { transform: translateY(-110%); transition-duration: 0.35s; transition-timing-function: cubic-bezier(0.7, 0, 0.84, 0); }

.gl-home_nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-home_nav_logo { justify-self: start; }

.gl-home_nav_right { justify-self: end; grid-column: 3; }

.gl-home_nav_logo { display: flex; align-items: center; text-decoration-line: none; color: var(--_theme---text); }

.gl-home_nav_logo-img { height: 1.5rem; width: auto; }

.gl-home_nav_links { display: flex; align-items: center; column-gap: var(--_spacing---space--5); }

.gl-home_nav_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); text-decoration-line: none; }

.gl-home_nav_right { display: flex; align-items: center; column-gap: var(--_spacing---space--4); }

.gl-home_nav_group { position: relative; display: flex; align-items: center; }

.gl-home_nav_trigger { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); background-color: transparent; border-width: 0px; padding: 0px; cursor: pointer; display: inline-flex; align-items: center; column-gap: 0.42em; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-home_nav_trigger::after { content: ""; width: 0.34em; height: 0.34em; border-right: 1px solid; border-bottom: 1px solid; transform: translateY(-0.12em) rotate(45deg); transition-property: transform; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-home_nav_group:hover .gl-home_nav_trigger, .gl-home_nav_group:focus-within .gl-home_nav_trigger { color: var(--_theme---text); }

.gl-home_nav_group:hover .gl-home_nav_trigger::after, .gl-home_nav_group:focus-within .gl-home_nav_trigger::after { transform: translateY(0.06em) rotate(225deg); }

.gl-home_nav_popover::before { content: ""; position: absolute; bottom: 100%; left: 0px; right: 0px; height: 1rem; }

.gl-home_nav_popover { position: absolute; top: calc(100% + 1rem); left: 50%; min-width: 12rem; display: flex; flex-direction: column; background-color: color-mix(in srgb, var(--swatch--dark-900) 92%, transparent); backdrop-filter: blur(14px); border-width: 1px; border-style: solid; border-top-color: var(--swatch--light-100-o20); border-right-color: var(--swatch--light-100-o20); border-bottom-color: var(--swatch--light-100-o20); border-left-color: var(--swatch--light-100-o20); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); opacity: 0; transform: translateX(-50%) translateY(-6px); pointer-events: none; z-index: 60; transition-property: opacity, transform; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-home_nav_group:hover .gl-home_nav_popover, .gl-home_nav_group:focus-within .gl-home_nav_popover { opacity: 1; transform: translateX(-50%) translateY(0px); pointer-events: auto; }

.gl-home_nav_popover_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); text-decoration-line: none; padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 6%, transparent); transition-property: color, background-color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-home_nav_popover_link:last-child { border-bottom-width: 0px; }

.gl-home_nav_popover_link:hover { color: var(--swatch--light-100); background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); }

.gl-home_nav_burger { display: none; width: 1.5rem; height: 0.75rem; border-width: 1px 0px; border-top-style: solid; border-top-color: var(--_theme---text); border-bottom-style: solid; border-bottom-color: var(--_theme---text); cursor: pointer; }

.gl-menu { position: fixed; inset: 0px; z-index: 200; background-color: var(--swatch--dark-900); display: flex; flex-direction: column; padding: 0px; visibility: hidden; pointer-events: none; overflow: hidden; }

.gl-menu.is-open { visibility: visible; pointer-events: auto; }

.gl-menu_header { display: flex; align-items: center; justify-content: space-between; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-menu_header-logo { opacity: 0; }

.gl-menu_close { display: flex; align-items: center; column-gap: var(--_spacing---space--2); background-color: transparent; border-width: 0px; color: var(--_theme---text); cursor: pointer; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.1em; text-transform: uppercase; padding: 0px; opacity: 0; }

.gl-menu_close-icon { position: relative; width: 1.25rem; height: 1.25rem; }

.gl-menu_close-icon::before { content: ""; position: absolute; top: 50%; left: 0px; width: 100%; height: 1px; background-color: currentcolor; transform: rotate(45deg); }

.gl-menu_close-icon::after { content: ""; position: absolute; top: 50%; left: 0px; width: 100%; height: 1px; background-color: currentcolor; transform: rotate(-45deg); }

.gl-menu_body { flex-grow: 1; display: flex; align-items: center; justify-content: space-between; column-gap: var(--_spacing---space--6); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-menu_thumbs { display: flex; flex-direction: column; row-gap: var(--_spacing---space--3); width: 12rem; flex-shrink: 0; }

.gl-menu_thumb { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; opacity: 0.82; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.gl-menu_nav { flex-grow: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; }

.gl-menu_items { list-style-type: none; padding: 0px; margin: 0px; width: 100%; }

.gl-menu_item { overflow: hidden; text-align: center; }

.gl-menu_link { display: flex; align-items: center; justify-content: center; column-gap: var(--_spacing---space--2); padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); text-decoration: none; color: var(--_theme---text); will-change: transform; }

.gl-menu_link-num { display: none; }

.gl-menu_link-text { font-family: var(--_typography---font--primary-family); font-size: clamp(2.25rem, 5.5vw, 4.75rem); font-weight: 200; letter-spacing: -0.03em; line-height: 1.05; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-menu_link-arrow { display: none; }

.gl-menu_link:hover .gl-menu_link-text { color: var(--swatch--brand-500); }

.gl-menu_link:hover .gl-menu_link-num { color: var(--swatch--brand-500); }

.gl-menu_link:hover .gl-menu_link-arrow { opacity: 1; transform: translateX(4px); color: var(--swatch--brand-500); }

.gl-menu_footer { display: flex; align-items: flex-end; justify-content: space-between; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); opacity: 0; }

.gl-menu_footer-brand { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.gl-menu_footer-link { color: color-mix(in srgb, var(--_theme---text) 50%, transparent); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; }

.gl-menu_footer-link:hover { color: var(--_theme---text); }

.gl-menu_footer-lang { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; color: color-mix(in srgb, var(--_theme---text) 30%, transparent); }

@media (max-width: 478px) {
  .gl-menu_link-text { font-size: clamp(2rem, 10vw, 3rem); }
}

.gl-home_hero { position: relative; display: grid; grid-template-columns: var(--site--column-split); grid-template-rows: 1fr auto; min-height: 100svh; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); overflow: hidden; }

.gl-home_hero::after { content: ""; position: absolute; left: 0px; right: 0px; bottom: 0px; height: 22rem; background-image: linear-gradient(to bottom, transparent 0%, var(--_theme---background) 100%); pointer-events: none; z-index: 1; }

.gl-home_hero_bg { position: absolute; left: 20%; top: -15%; width: 100%; height: 130%; display: block; z-index: 0; pointer-events: none; background-color: transparent; transform: translateY(var(--hero-parallax, 0%)); will-change: transform; transition-property: opacity; transition-duration: 0.45s; transition-timing-function: ease; }

.gl-home_hero_bg.gl-spline-pending { opacity: 0; }

.gl-hero-poster { position: absolute; left: 20%; top: -15%; width: 100%; height: 130%; z-index: 0; pointer-events: none; background-color: rgb(11, 11, 11); background-image: url("../assets/media/glass-lab/glass-render-hero-poster.jpg"); background-size: cover; background-position: center center; background-repeat: no-repeat; transform: translateY(var(--hero-parallax, 0%)); will-change: transform; }

.gl-home_hero_left { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); }

.gl-home_hero_content { position: relative; z-index: 1; }

.gl-home_hero_sub { margin-top: var(--_spacing---space--4); max-width: 36rem; }

.gl-home_hero_reticle { position: absolute; width: 3rem; height: 3rem; border-width: 1px; border-style: solid; border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); z-index: 1; pointer-events: none; opacity: 0; will-change: left, top; }

.gl-home_hero--tracking .gl-home_hero_reticle { opacity: 1; }

.gl-home_hero_cards { position: relative; width: 100%; max-width: 44rem; border-width: 1px; border-style: solid; border-color: transparent; transition-property: border-top-color, border-right-color, border-bottom-color, border-left-color; transition-duration: 0.25s; transition-timing-function: ease-out; }

.gl-home_hero--tracking .gl-home_hero_cards { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-home_hero_cards-default { transition-property: opacity; transition-duration: 0.25s; transition-timing-function: ease-out; }

.gl-home_hero--tracking .gl-home_hero_cards-default { opacity: 0; }

.gl-home_hero_zoom { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; background-size: 400%; background-repeat: no-repeat; opacity: 0; will-change: background-position; transition-property: opacity; transition-duration: 0.25s; transition-timing-function: ease-out; }

.gl-home_hero--tracking .gl-home_hero_zoom { opacity: 1; }

.gl-home_hero_label { position: absolute; bottom: var(--_spacing---space--4); left: var(--site--margin); }

.gl-home_hero_right { display: flex; align-items: center; justify-content: center; padding-top: calc(var(--_spacing---space--7) + var(--nav--height)); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); }

.gl-home_hero_cards-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-home_manifesto_inner { width: 100%; box-sizing: border-box; display: grid; grid-template-columns: minmax(0px, 1fr) auto minmax(0px, 1fr); align-items: center; column-gap: var(--_spacing---space--6); grid-column: 1 / -1; position: relative; z-index: 2; padding-top: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_craft { padding-top: var(--_spacing---section-space--large); padding-bottom: var(--_spacing---section-space--large); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_craft_inner { display: grid; grid-template-columns: var(--site--column-split); align-items: center; column-gap: var(--_spacing---space--7); }

.gl-home_craft_text { display: flex; flex-direction: column; max-width: 32rem; }

.gl-home_craft_visual { position: relative; width: 100%; max-width: 44rem; aspect-ratio: 4 / 5; justify-self: end; overflow: hidden; }

.gl-home_craft_visual .gl-home_hero_zoom { pointer-events: none; }

.gl-home_craft_visual img { width: 100%; height: 100%; object-fit: cover; display: block; }

.gl-home_manifesto_text { font-family: var(--_typography---font--primary-family); font-size: clamp(0.625rem, 1vw, 0.75rem); font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 35%, transparent); line-height: 1.8; text-align: center; max-width: 64rem; margin: 0px; }

.gl-home_manifesto_corner-r { text-align: right; }

.gl-home_catalog { display: grid; grid-template-columns: var(--site--column-split); min-height: min(90vh, 830px); overflow: hidden; }

.gl-home_catalog_visual { position: relative; overflow: hidden; border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-home_catalog_img { position: absolute; top: 0px; left: 0px; width: 100%; height: calc(100% + 40px); object-fit: cover; object-position: center center; display: block; }

.gl-home_catalog_video { position: absolute; top: 0px; left: 0px; opacity: 0; transition-property: opacity; transition-duration: 0.4s; transition-timing-function: ease; }

.gl-home_catalog_visual.is-playing .gl-home_catalog_video { opacity: 1; }

.gl-home_catalog_grid-area { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--5); }

.gl-home_catalog_header { display: flex; justify-content: space-between; align-items: flex-end; }

.gl-home_catalog_grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0px; }

.gl-home_catalog_cell-meta { display: flex; flex-direction: column; row-gap: 0.125rem; }

.gl-home_statement { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; background-color: var(--swatch--dark-900); overflow: hidden; }

.gl-home_statement_bg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 130%; height: auto; display: block; overflow: visible; }

.gl-bar { transition-property: transform; transition-duration: 0.8s; transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1); transform-box: view-box; }

.gl-bar-r { transform: translateX(65%); }

.gl-bar-l { transform: translateX(-65%); }

.gl-bar.gl-bar-in { transform: translateX(0px); cursor: pointer; }

.gl-bar.gl-bar-in.gl-bar-r:hover { transform: translateX(1%); }

.gl-bar.gl-bar-in.gl-bar-l:hover { transform: translateX(-1%); }

.gl-home_statement_center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; text-align: center; }

.gl-home_statement_quote { font-family: var(--_typography---font--secondary-family); font-size: clamp(0.625rem, 1vw, 0.8125rem); font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 70%, transparent); line-height: 2; }

/* Stays 100vh on purpose: gl-theme-transition.js pins this section and scrubs
   the bar wipe across the full viewport. Capping it makes the wipe fail to
   cover the screen. */
.gl-theme-transition { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; }

.gl-theme-transition.is-to-light { background-color: var(--swatch--dark-900); }

.gl-theme-transition.is-to-dark { background-color: var(--swatch--light-100); }

.gl-tt_bg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 130%; height: auto; display: block; overflow: visible; }

.gl-theme-transition.is-to-light .gl-bar { fill: var(--swatch--light-100); }

.gl-theme-transition.is-to-dark .gl-bar { fill: var(--swatch--dark-900); }

.gl-tt_center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; text-align: center; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-tt_quote { font-family: var(--_typography---font--primary-family); font-size: clamp(0.625rem, 1vw, 0.8125rem); font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; line-height: 2; }

.gl-theme-transition.is-to-light .gl-tt_quote { color: color-mix(in srgb, var(--swatch--light-100) 70%, transparent); }

.gl-theme-transition.is-to-dark .gl-tt_quote { color: color-mix(in srgb, var(--swatch--dark-900) 70%, transparent); }

.gl-home_cinema { position: relative; height: 300vh; }

.gl-home_cinema_sticky { position: sticky; top: 0px; height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; background-color: var(--_theme---background); }

.gl-home_cinema_img { width: var(--cinema-scale, 35%); aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-home_cinema_img--invert { filter: invert(1); mix-blend-mode: darken; }

.gl-home_cinema_bubble { position: absolute; display: inline-flex; align-items: center; justify-content: center; opacity: var(--bubble-opacity, 0); transform: translateY(var(--bubble-y, 8px)); transition-property: opacity, transform; transition-duration: 0.3s; transition-timing-function: ease-out; }

.gl-home_cinema_bubble-text { position: relative; z-index: 1; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; padding: 0.625rem 1.25rem; }

.gl-home_cinema_bubble .gl-btn_skew_shape { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }

.gl-home_cinema_bubble-l { right: min(calc(50% + var(--cinema-half, 17.5%) + 2rem), calc(100% - var(--site--margin) - 18rem)); }

.gl-home_cinema_bubble-r { left: min(calc(50% + var(--cinema-half, 17.5%) + 2rem), calc(100% - var(--site--margin) - 18rem)); }

.gl-home_cinema_bubble::after { content: ""; position: absolute; top: 50%; width: 2rem; height: 0px; border-width: 1px 0px 0px; border-top-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); opacity: var(--bubble-opacity, 0); }

.gl-home_cinema_bubble-l::after { left: 100%; }

.gl-home_cinema_bubble-r::after { right: 100%; }

[data-bubble="1"] { top: 22%; }

[data-bubble="2"] { top: 44%; }

[data-bubble="3"] { top: 66%; }

[data-bubble="4"] { top: 26%; }

[data-bubble="5"] { top: 48%; }

[data-bubble="6"] { top: 70%; }

@media (max-width: 991px) {
  .gl-home_cinema_bubble, .gl-home_cinema_bubble::after { display: none; }
}

.gl-home_cinema_caption { position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; row-gap: 0.25rem; opacity: var(--bubble-opacity, 0); transition-property: opacity; transition-duration: 0.4s; transition-timing-function: ease-out; }

.gl-home_projects { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-home_projects_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_projects_header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: var(--_spacing---space--7); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); margin-bottom: var(--_spacing---space--7); }

.gl-home_projects_grid { display: grid; grid-template-columns: 1.4fr 1fr; row-gap: var(--_spacing---space--5); column-gap: var(--_spacing---space--5); }

.gl-home_projects_card { display: flex; flex-direction: column; overflow: hidden; }

.gl-home_projects_card-img-tall { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-home_projects_card-img-wide { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-home_projects_card-info { padding-top: var(--_spacing---space--2); display: flex; justify-content: space-between; align-items: flex-start; }

.gl-home_projects_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; letter-spacing: 0.02em; line-height: 1.4; margin: 0px; }

.gl-home_projects_tags { display: flex; column-gap: var(--_spacing---space--1); }

.gl-home_projects_right-stack { display: flex; flex-direction: column; row-gap: var(--_spacing---space--5); }

.gl-home_crossbrand { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.gl-home_crossbrand_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--7); align-items: center; }

.gl-home_crossbrand_text { display: flex; flex-direction: column; }

.gl-home_crossbrand_heading { margin-top: var(--_spacing---space--2); }

.gl-home_crossbrand_desc { margin-top: var(--_spacing---space--4); }

.gl-home_crossbrand_cta { margin-top: var(--_spacing---space--5); }

.gl-home_crossbrand_img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }

.gl-home_cta { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.gl-home_cta_inner { display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_cta_heading { max-width: 48rem; }

.gl-home_cta_sub { max-width: 28rem; }

.gl-home_cta_buttons { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); }

.gl-home_footer { padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---space--5); }

.gl-home_footer_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_footer_grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; row-gap: var(--_spacing---space--5); column-gap: var(--_spacing---space--5); }

.gl-home_footer_col { display: flex; flex-direction: column; row-gap: 0.375rem; }

.gl-home_footer_brand { display: flex; align-items: flex-start; }

.gl-home_footer_brand-logo { height: 4rem; width: auto; display: block; }

.gl-home_footer_brand-icon { height: 2rem; width: auto; display: none; }

.gl-home_footer_brand-desc { margin-top: var(--_spacing---space--1); }

.gl-home_footer_col-title { margin-bottom: var(--_spacing---space--1); }

.gl-wavy-bend { position: relative; }

.gl-wavy-bend_canvas { display: block; transition: opacity 0.2s; }

.gl-blur-bottom { position: fixed; left: 0px; right: 0px; bottom: 0px; height: 144px; z-index: 49; pointer-events: none; }

.gl-blur-bottom_layer { position: absolute; inset: 0px; pointer-events: none; }

.gl-blur-bottom_layer.is-1 { backdrop-filter: blur(48px); mask-image: linear-gradient(to top, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 10%, transparent 30%); }

.gl-blur-bottom_layer.is-2 { backdrop-filter: blur(25.26px); mask-image: linear-gradient(to top, transparent 0%, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 20%, transparent 40%); }

.gl-blur-bottom_layer.is-3 { backdrop-filter: blur(13.3px); mask-image: linear-gradient(to top, transparent 0%, rgb(0, 0, 0) 20%, rgb(0, 0, 0) 30%, transparent 50%); }

.gl-blur-bottom_layer.is-4 { backdrop-filter: blur(7px); mask-image: linear-gradient(to top, transparent 10%, rgb(0, 0, 0) 30%, rgb(0, 0, 0) 40%, transparent 60%); }

.gl-blur-bottom_layer.is-5 { backdrop-filter: blur(3.68px); mask-image: linear-gradient(to top, transparent 20%, rgb(0, 0, 0) 40%, rgb(0, 0, 0) 50%, transparent 70%); }

.gl-blur-bottom_layer.is-6 { backdrop-filter: blur(1.94px); mask-image: linear-gradient(to top, transparent 30%, rgb(0, 0, 0) 50%, rgb(0, 0, 0) 60%, transparent 80%); }

.gl-blur-bottom_layer.is-7 { backdrop-filter: blur(1.02px); mask-image: linear-gradient(to top, transparent 40%, rgb(0, 0, 0) 60%, rgb(0, 0, 0) 70%, transparent 90%); }

.gl-blur-bottom_layer.is-8 { backdrop-filter: blur(0.54px); mask-image: linear-gradient(to top, transparent 50%, rgb(0, 0, 0) 70%, rgb(0, 0, 0) 80%, transparent 100%); }

.gl-blur-bottom_layer.is-9 { backdrop-filter: blur(0.28px); mask-image: linear-gradient(to top, transparent 60%, rgb(0, 0, 0) 80%, rgb(0, 0, 0) 90%, transparent 100%); }

.gl-blur-bottom_layer.is-10 { backdrop-filter: blur(0.15px); mask-image: linear-gradient(to top, transparent 70%, rgb(0, 0, 0) 90%, transparent 100%); }

.gl-home_footer_col-title_spaced { margin-top: var(--_spacing---space--2); }

.gl-home_footer_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); }

.gl-home_footer_newsletter { display: flex; align-items: flex-end; justify-content: space-between; margin-top: var(--_spacing---space--7); padding-top: var(--_spacing---space--5); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-home_footer_newsletter-desc { margin-top: var(--_spacing---space--1); }

.gl-home_footer_newsletter-form { display: flex; column-gap: var(--_spacing---space--1); }

.gl-home_footer_newsletter-input { width: 16rem; }

.gl-home_footer_bottom { display: flex; justify-content: space-between; align-items: center; padding-top: var(--_spacing---space--5); margin-top: var(--_spacing---space--5); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-404 { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 100vh; position: relative; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-404_code { font-family: var(--_typography---font--primary-family); font-size: clamp(8rem, 20vw, 16rem); font-weight: 100; letter-spacing: -0.04em; line-height: 1; color: var(--_theme---text); padding-right: 91px; }

.gl-404_message { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); margin-top: var(--_spacing---space--4); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.gl-404_buttons { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); margin-top: var(--_spacing---space--7); }

.gl-404_corner { position: absolute; bottom: var(--_spacing---space--4); }

.gl-404_corner-left { left: var(--site--margin); }

.gl-404_corner-right { right: var(--site--margin); text-align: right; }

.gl-shared_nav-edge { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-shared_nav { display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); position: relative; }

.gl-shared_nav_logo { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 300; letter-spacing: 0.25em; text-transform: uppercase; }

.gl-shared_nav_logo-link { color: var(--_theme---text); }

.gl-shared_nav_logo-sep { color: color-mix(in srgb, var(--_theme---text) 25%, transparent); margin: 0px 0.25em; }

.gl-shared_nav_lang { position: absolute; right: 0px; top: 50%; transform: translateY(-50%); }

.gl-legal_header { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); text-align: center; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-legal_header_label { display: block; margin-bottom: var(--_spacing---space--2); }

.gl-legal_header_title { font-family: var(--_typography---font--primary-family); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-legal_header_date { margin-top: var(--_spacing---space--2); }

.gl-legal_content { max-width: 42rem; margin: 0px auto; padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-legal_section { margin-bottom: var(--_spacing---space--8); }

.gl-legal_section-last { margin-bottom: 0px; }

.gl-legal_h2 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 300; letter-spacing: 0.02em; line-height: 1.3; margin-top: 0px; margin-bottom: var(--_spacing---space--3); margin-left: 0px; margin-right: 0px; padding-bottom: var(--_spacing---space--2); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-legal_text { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label); font-weight: 400; line-height: 1.8; letter-spacing: 0.02em; color: color-mix(in srgb, var(--_theme---text) 60%, transparent); margin: 0px; }

.gl-legal_text-spaced { margin-top: var(--_spacing---space--3); }

.gl-legal_table-wrap { margin-top: var(--_spacing---space--4); overflow: auto visible; }

.gl-legal_table { width: 100%; border-width: 1px 0px 0px 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-left-style: solid; border-left-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); }

.gl-legal_table-th { padding: 0.625rem 0.75rem; border-width: 0px 1px 1px 0px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); text-align: left; vertical-align: top; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 35%, transparent); background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); }

.gl-legal_table-td { padding: 0.625rem 0.75rem; border-width: 0px 1px 1px 0px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); text-align: left; vertical-align: top; font-size: var(--_typography---font-size--label-lg); line-height: 1.6; color: color-mix(in srgb, var(--_theme---text) 60%, transparent); }

.gl-legal_table-name { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; color: var(--_theme---text); }

.gl-shared_footer { padding-top: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); display: flex; justify-content: space-between; align-items: center; }

.gl-shared_footer_links { display: flex; column-gap: var(--_spacing---space--5); }

.gl-shared_footer_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); }

.gl-modal_page-header { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-modal_page-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h3); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: var(--_spacing---space--2); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.gl-modal_page-desc { margin-top: var(--_spacing---space--2); max-width: 40rem; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); font-size: var(--_typography---font-size--text-small); line-height: 1.6; }

.gl-modal_ref { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-modal_ref_header { margin-bottom: var(--_spacing---space--5); }

.gl-modal_ref_header-label { display: block; margin-bottom: var(--_spacing---space--1); }

.gl-modal_ref_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-modal_ref_desc { display: block; margin-top: var(--_spacing---space--1); }

.gl-modal_backdrop { position: relative; background-color: color-mix(in srgb, var(--_theme---text) 3%, transparent); border-width: 1px; border-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); min-height: 28rem; display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--5); }

.gl-modal_backdrop-bottom { align-items: flex-end; padding-bottom: 0px; }

.gl-modal_backdrop_label { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

.gl-modal_card { width: 100%; max-width: 28rem; background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--5); position: relative; }

.gl-modal_card-wide { max-width: 32rem; }

.gl-modal_card_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: 0px; margin-bottom: var(--_spacing---space--2); margin-left: 0px; margin-right: 0px; }

.gl-modal_card_desc { margin-bottom: var(--_spacing---space--5); }

.gl-modal_close { position: absolute; top: var(--_spacing---space--3); right: var(--_spacing---space--3); width: 1.5rem; height: 1.5rem; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); display: flex; align-items: center; justify-content: center; font-size: var(--_typography---font-size--label-lg); color: color-mix(in srgb, var(--_theme---text) 50%, transparent); cursor: pointer; }

.gl-modal_form { display: flex; flex-direction: column; row-gap: var(--_spacing---space--3); }

.gl-modal_form-field { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.gl-modal_form-input { width: 100%; height: 2.25rem; background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); padding: 0px 0.75rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); color: color-mix(in srgb, var(--_theme---text) 30%, transparent); display: flex; align-items: center; }

.gl-modal_form-select { width: 100%; height: 2.25rem; background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); padding: 0px 0.75rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); color: color-mix(in srgb, var(--_theme---text) 30%, transparent); display: flex; align-items: center; justify-content: space-between; }

.gl-modal_form-textarea { width: 100%; min-height: 5rem; background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); padding: 0.5rem 0.75rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); color: color-mix(in srgb, var(--_theme---text) 30%, transparent); }

.gl-modal_form-submit { margin-top: var(--_spacing---space--2); }

.gl-modal_banner { width: 100%; background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); border-width: 1px 0px 0px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); padding-top: var(--_spacing---space--4); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--5); display: flex; align-items: center; justify-content: space-between; column-gap: var(--_spacing---space--5); }

.gl-modal_banner_text { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); flex: 1 1 0%; }

.gl-modal_banner_actions { display: flex; column-gap: var(--_spacing---space--2); flex-shrink: 0; }

@media (max-width: 1024px) {
  .gl-home_nav_links { display: none; }
  .gl-home_nav_right > .gl-mono { display: none; }
  .gl-home_nav_right > .gl-btn_skew_wrap { display: none; }
  .gl-home_nav_burger { display: flex; }
}

@media (max-width: 991px) {
  .gl-404_code { font-size: clamp(6rem, 18vw, 12rem); }
  .gl-legal_content { max-width: 36rem; }
  .gl-modal_banner { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--3); }
  .gl-home_hero { grid-template-columns: 1fr; min-height: auto; }
  .gl-home_hero_bg, .gl-hero-poster { left: 0px; width: 100%; }
  .gl-home_hero_left { min-height: 60vh; border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .gl-home_hero_right { padding-left: var(--site--margin); padding-top: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); }
  .gl-home_catalog { grid-template-columns: 1fr; }
  .gl-home_catalog_visual { min-height: 50vh; border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .gl-home_catalog_grid-area { padding-left: var(--site--margin); }
  .gl-home_catalog_grid { grid-template-columns: repeat(3, 1fr); }
  .gl-home_projects_grid { grid-template-columns: 1fr 1fr; }
  .gl-home_footer_grid { grid-template-columns: repeat(2, 1fr); }
  .gl-home_craft_inner { grid-template-columns: 1fr; row-gap: var(--_spacing---space--6); }
  .gl-home_craft_text { max-width: none; }
  .gl-home_craft_visual { max-width: 32rem; justify-self: start; }
  .gl-home_manifesto_inner { grid-template-columns: 1fr; row-gap: var(--_spacing---space--3); }
  .gl-home_manifesto_inner > .gl-mono { display: none; }
  .gl-home_manifesto_text { max-width: none; }
  .gl-home_interlude_inner { z-index: 60; }
}

@media (max-width: 767px) {
  .gl-404_buttons { flex-direction: column; align-items: center; width: 100%; }
  .gl-404_corner { position: static; margin-top: var(--_spacing---space--5); text-align: center; }
  .gl-404_corner-right { text-align: center; }
  .gl-shared_footer { flex-direction: column; row-gap: var(--_spacing---space--2); text-align: center; }
  .gl-shared_footer_links { column-gap: var(--_spacing---space--3); }
  .gl-modal_backdrop { min-height: 22rem; }
  .gl-modal_banner { padding-left: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); }
  .gl-modal_card { padding-top: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--3); padding-left: var(--_spacing---space--3); }
  .gl-home_catalog_grid { grid-template-columns: repeat(2, 1fr); }
  .gl-home_statement { min-height: 100svh; }
  .gl-theme-transition { min-height: 100svh; }
  .gl-home_crossbrand_inner { grid-template-columns: 1fr; row-gap: var(--_spacing---space--5); }
  .gl-home_crossbrand { overflow-x: hidden; }
  .gl-home_projects_grid { grid-template-columns: 1fr; }
  .gl-home_footer_grid { grid-template-columns: 1fr; }
  .gl-home_footer_bottom { flex-direction: column; row-gap: var(--_spacing---space--2); text-align: center; }
  .gl-home_footer_newsletter { flex-direction: column; row-gap: var(--_spacing---space--4); align-items: flex-start; }
  .gl-home_footer_newsletter-form { width: 100%; }
  .gl-home_footer_newsletter-input { width: auto; flex-grow: 1; flex-shrink: 1; min-width: 0px; }
  .gl-home_footer_brand-logo { display: none; }
  .gl-home_footer_brand-icon { display: block; }
  .pg-footer_brand-logo { display: none; }
  .pg-footer_brand-icon { display: block; }
}

@media (max-width: 478px) {
  .gl-404_code { font-size: clamp(5rem, 25vw, 8rem); }
  .gl-shared_footer_links { flex-direction: column; row-gap: var(--_spacing---space--1); }
  .gl-modal_backdrop { min-height: 18rem; }
  .gl-modal_banner_actions { flex-direction: column; row-gap: var(--_spacing---space--1); width: 100%; }
  .gl-home_catalog_grid { grid-template-columns: repeat(2, 1fr); }
  .gl-home_cta_heading { font-size: clamp(1.75rem, 8vw, 2.5rem); }
  .gl-home_cta_buttons { flex-direction: column; width: 100%; }
  .gl-home_projects_header { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--4); }
}

.gl-catalogo_hero-scroll { position: relative; height: 600vh; background-color: var(--swatch--dark-900); }

.gl-catalogo_hero-scroll_sticky { position: sticky; top: 0px; width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; }

.gl-catalogo_hero-scroll_vid { width: 100%; height: 100%; aspect-ratio: auto; overflow: hidden; }

.gl-catalogo_hero-scroll_video { width: 100%; height: 100%; object-fit: cover; }

.gl-catalogo_bubble { position: absolute; display: inline-flex; align-items: center; justify-content: center; opacity: var(--bubble-opacity, 0); transform: translateY(var(--bubble-y, 8px)); transition-property: opacity, transform; transition-duration: 0.3s; transition-timing-function: ease-out; }

.gl-catalogo_bubble-text { position: relative; z-index: 1; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; padding: 0.625rem 1.25rem; }

.gl-catalogo_bubble .gl-btn_skew_shape { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }

.gl-catalogo_bubble-l { right: min(calc(50% + 28% + 2rem), calc(100% - var(--site--margin) - 18rem)); }

.gl-catalogo_bubble-r { left: min(calc(50% + 28% + 2rem), calc(100% - var(--site--margin) - 18rem)); }

.gl-catalogo_bubble::after { content: ""; position: absolute; top: 50%; width: 2rem; height: 0px; border-width: 1px 0px 0px; border-top-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); opacity: var(--bubble-opacity, 0); }

.gl-catalogo_bubble-l::after { left: 100%; }

.gl-catalogo_bubble-r::after { right: 100%; }

[data-cat-bubble="1"] { top: 25%; }

[data-cat-bubble="2"] { top: 43%; }

[data-cat-bubble="3"] { top: 61%; }

[data-cat-bubble="4"] { top: 30%; }

[data-cat-bubble="5"] { top: 48%; }

[data-cat-bubble="6"] { top: 66%; }

@media (max-width: 991px) {
  .gl-catalogo_bubble, .gl-catalogo_bubble::after { display: none; }
}

.gl-catalogo_hero-caption { position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; row-gap: 0.25rem; opacity: var(--bubble-opacity, 0); transition-property: opacity; transition-duration: 0.4s; transition-timing-function: ease-out; }

.gl-catalogo_hero-hotspot { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(56vw, 46rem); height: min(58vh, 34rem); display: flex; align-items: center; justify-content: center; pointer-events: none; z-index: 2; }

.gl-catalogo_hero-hotspot.is-armed { pointer-events: auto; cursor: pointer; }

a.gl-catalogo_hero-caption { text-decoration-line: none; }

.gl-catalogo_hero-caption_btn { position: relative; top: auto; bottom: auto; left: auto; transform: none; opacity: 0; pointer-events: none; cursor: pointer; row-gap: 0px; padding: 0.85rem 2.25rem 1.05rem; max-width: min(92vw, 42rem); transition-property: opacity; transition-duration: 0.28s; transition-timing-function: ease-out; }

.gl-catalogo_hero-hotspot.is-armed:hover .gl-catalogo_hero-caption_btn, .gl-catalogo_hero-caption_btn:focus-visible { opacity: 1; pointer-events: auto; }

.gl-catalogo_hero-caption_btn .gl-btn_skew_shape path { fill: color-mix(in srgb, var(--swatch--dark-900) 80%, transparent); stroke: color-mix(in srgb, var(--swatch--light-100) 45%, transparent); stroke-width: 1.5; transition-property: fill, stroke; transition-duration: 0.25s; transition-timing-function: ease; }

.gl-catalogo_hero-caption_inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; row-gap: 0.3rem; }

.gl-catalogo_hero-caption_btn .gl-mono_label { color: var(--swatch--light-100); }

.gl-catalogo_hero-caption_btn .gl-mono_muted { color: color-mix(in srgb, var(--swatch--light-100) 74%, transparent); }

.gl-catalogo_hero-caption_cta { margin-top: 0.4rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--swatch--light-100); opacity: 0.85; transition-property: opacity; transition-duration: 0.25s; transition-timing-function: ease; }

.gl-catalogo_hero-caption_btn:hover .gl-btn_skew_shape path, .gl-catalogo_hero-caption_btn:focus-visible .gl-btn_skew_shape path { fill: var(--swatch--brand-500); stroke: var(--swatch--brand-500); }

.gl-catalogo_hero-caption_btn:hover .gl-catalogo_hero-caption_cta, .gl-catalogo_hero-caption_btn:focus-visible .gl-catalogo_hero-caption_cta { opacity: 1; }

.gl-catalogo_hero-fade { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; background-color: var(--swatch--dark-900); opacity: var(--fade-opacity, 0); pointer-events: none; }

.gl-catalogo_hero-final { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; row-gap: 0.75rem; text-align: center; opacity: var(--final-opacity, 0); transition-property: opacity; transition-duration: 0.4s; transition-timing-function: ease-out; }

.gl-catalogo_hero-final_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; color: var(--_theme---text); }

.gl-catalogo_header { position: relative; min-height: 100svh; padding-top: calc(var(--_spacing---section-space--main) + var(--nav--height)); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); box-sizing: border-box; overflow: hidden; }

.gl-catalogo_header::after { content: ""; position: absolute; left: 0px; right: 0px; bottom: 0px; height: 22rem; background-image: linear-gradient(to bottom, transparent 0%, var(--_theme---background) 100%); pointer-events: none; z-index: 1; }

.gl-catalogo_header .gl-blur-bottom { position: absolute; z-index: 2; }

.gl-catalogo_header_inner { flex: 0 0 auto; display: flex; justify-content: space-between; align-items: flex-end; margin-top: auto; position: relative; z-index: 3; }

.gl-catalogo_header .gl-home_hero_bg { transform: none; }

.gl-catalogo_header .gl-hero-poster { transform: none; }

.gl-catalogo_header_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-catalogo_header_desc { margin-top: var(--_spacing---space--3); max-width: 32rem; }

.gl-catalogo_monogram-wrap--bottom { margin-bottom: 0px; position: relative; z-index: 3; }

.gl-catalogo_filters { display: contents; }

.gl-catalogo_filters-grid { flex: 0 0 auto; max-width: 44rem; display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--_spacing---space--2); }

.gl-filter-input_search { grid-column: 1 / -1; padding: 0px; }

.gl-filter-cat-pill { grid-column: span 2; }

.gl-catalogo_tags-area { flex: 1 1 0%; display: flex; flex-wrap: wrap; place-content: flex-start flex-end; align-items: flex-start; row-gap: var(--_spacing---space--2); column-gap: var(--_spacing---space--2); }

.gl-catalogo_active-filters { display: contents; }

.gl-catalogo_filter-hint { display: inline-flex; align-items: center; padding: 0.375rem 0.75rem; border-width: 1px; border-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 30%, transparent); cursor: default; white-space: nowrap; transition-property: color, border-color, background-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-catalogo_filter-hint.is-active { border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); color: var(--_theme---text); cursor: pointer; }

.gl-catalogo_grid-section { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-catalogo_grid { display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)) var(--_spacing---space--3) repeat(15, minmax(0px, 1fr)); grid-template-rows: repeat(7, auto) var(--_spacing---space--3) repeat(2, auto); gap: 0px; position: relative; }

.gl-catalogo_grid .gl-cell { min-width: 0px; overflow: hidden; padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--1); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--1); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-catalogo_grid .gl-cell_symbol { font-size: clamp(0.75rem, 1.15vw, 1.375rem); }

.gl-catalogo_grid .gl-cell_name { font-size: clamp(0.5rem, 0.62vw, 0.6875rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.gl-catalogo_grid .gl-cell_code { font-size: clamp(0.4375rem, 0.55vw, 0.5625rem); }

.gl-catalogo_grid .gl-cell_badge { font-size: clamp(0.4375rem, 0.55vw, 0.5625rem); letter-spacing: 0.04em; padding: 0.1em 0.35em; }

.gl-cell[data-r="1"] { grid-row: 1; }

.gl-cell[data-r="2"] { grid-row: 2; }

.gl-cell[data-r="3"] { grid-row: 3; }

.gl-cell[data-r="4"] { grid-row: 4; }

.gl-cell[data-r="5"] { grid-row: 5; }

.gl-cell[data-r="6"] { grid-row: 6; }

.gl-cell[data-r="7"] { grid-row: 7; }

.gl-cell[data-r="8"] { grid-row: 9; }

.gl-cell[data-r="9"] { grid-row: 10; }

.gl-cell[data-c="1"] { grid-column: 1; }

.gl-cell[data-c="2"] { grid-column: 2; }

.gl-cell[data-c="3"] { grid-column: 3; }

.gl-cell[data-c="4"] { grid-column: 5; }

.gl-cell[data-c="5"] { grid-column: 6; }

.gl-cell[data-c="6"] { grid-column: 7; }

.gl-cell[data-c="7"] { grid-column: 8; }

.gl-cell[data-c="8"] { grid-column: 9; }

.gl-cell[data-c="9"] { grid-column: 10; }

.gl-cell[data-c="10"] { grid-column: 11; }

.gl-cell[data-c="11"] { grid-column: 12; }

.gl-cell[data-c="12"] { grid-column: 13; }

.gl-cell[data-c="13"] { grid-column: 14; }

.gl-cell[data-c="14"] { grid-column: 15; }

.gl-cell[data-c="15"] { grid-column: 16; }

.gl-cell[data-c="16"] { grid-column: 17; }

.gl-cell[data-c="17"] { grid-column: 18; }

.gl-cell[data-c="18"] { grid-column: 19; }

.gl-cell_filtered-out { opacity: 0.15; filter: grayscale(0.6); pointer-events: none; transition: opacity 180ms, filter 180ms; }

.gl-catalogo_filters .gl-filter-input.pg-filter-item_active { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); color: var(--swatch--brand-500); }

.gl-cell_numbered-empty { background-color: transparent; border-style: solid; }

.gl-cell_numbered-empty .gl-cell_code { color: color-mix(in srgb, var(--_theme---text) 25%, transparent); }

.gl-catalogo_monogram-wrap { display: flex; align-items: flex-start; column-gap: var(--_spacing---space--3); margin-bottom: var(--_spacing---space--3); }

.gl-catalogo_monogram-cell { flex: 1 1 0%; display: flex; align-items: flex-start; }

.gl-catalogo_monogram { width: calc((100vw - 2 * var(--site--margin)) / 18); height: calc((100vw - 2 * var(--site--margin)) / 18); overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); border-width: 1px; border-style: solid; border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.gl-cell_badge { display: inline-block; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; padding: 0.0625rem 0.25rem; border-width: 1px; border-style: solid; color: color-mix(in srgb, var(--_theme---text) 70%, transparent); border-top-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); }

.gl-catalogo_monogram_top { display: flex; justify-content: space-between; align-items: flex-start; }

.gl-catalogo_monogram_atomic { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); color: color-mix(in srgb, var(--_theme---text) 60%, transparent); }

.gl-catalogo_monogram_logo { width: 60%; margin-left: auto; margin-right: auto; }

.gl-catalogo_monogram_formula { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); color: color-mix(in srgb, var(--_theme---text) 60%, transparent); }

.gl-catalogo_section-label { writing-mode: vertical-rl; transform: rotate(180deg); position: absolute; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.25em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); }

.gl-catalogo_section-label_colores { left: calc(-1 * var(--_spacing---space--3)); bottom: 0px; height: calc(77.7778%); }

.gl-catalogo_section-label_inserciones { right: calc(-1 * var(--_spacing---space--3)); top: 0px; height: calc(77.7778%); }

.gl-catalogo_section-label_reflectivos { right: calc(-1 * var(--_spacing---space--3)); bottom: 0px; height: calc(22.2222%); }

.gl-catalogo_legend { display: flex; align-items: center; justify-content: space-between; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-catalogo_legend_items { display: flex; align-items: center; column-gap: var(--_spacing---space--5); }

.gl-catalogo_legend_item { display: flex; align-items: center; column-gap: var(--_spacing---space--1); cursor: pointer; }

.gl-catalogo_legend_swatch { width: 0.75rem; height: 0.75rem; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); }

.gl-catalogo_legend_swatch_filled { background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.gl-catalogo_proximas { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-catalogo_proximas_inner { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--8); align-items: center; }

.gl-catalogo_proximas_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: var(--_spacing---space--3); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.gl-catalogo_proximas_desc { font-size: var(--_typography---font-size--text-main); line-height: 1.7; color: color-mix(in srgb, var(--_theme---text) 55%, transparent); margin-top: var(--_spacing---space--4); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; max-width: 36rem; }

.gl-catalogo_proximas_right { display: flex; flex-direction: column; row-gap: var(--_spacing---space--5); }

.gl-catalogo_proximas_cells { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0px; }

.gl-catalogo_proximas_cell { opacity: 0.4; }

.gl-catalogo_proximas_symbol { font-family: var(--_typography---font--primary-family); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 200; line-height: 1; letter-spacing: -0.02em; color: color-mix(in srgb, var(--_theme---text) 25%, transparent); }

.gl-catalogo_proximas_cta { display: inline-flex; align-items: center; padding-bottom: var(--_spacing---space--1); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); transition-property: border-bottom-color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-catalogo_proximas_cta:hover { border-bottom-color: var(--_theme---text); }

@media (max-width: 991px) {
  .gl-catalogo_grid { grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); grid-template-rows: none; }
  .gl-catalogo_grid > .gl-cell { grid-area: auto; }
  .gl-catalogo_grid .gl-cell_symbol { font-size: var(--_typography---font-size--h4); }
  .gl-catalogo_section-label { display: none; }
  .gl-catalogo_monogram-wrap { flex-direction: column; }
  .gl-catalogo_monogram-cell { flex: 0 0 auto; }
  .gl-catalogo_monogram { width: 6rem; height: 6rem; }
  .gl-catalogo_filters { display: block; margin-top: var(--_spacing---space--4); }
  .gl-catalogo_filters-grid { flex: 0 0 auto; max-width: 100%; }
  .gl-catalogo_tags-area { flex: 0 0 auto; justify-content: flex-start; margin-top: var(--_spacing---space--3); }
}

@media (max-width: 767px) {
  .gl-catalogo_grid { grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr)); }
  .gl-catalogo_grid .gl-cell_symbol { font-size: var(--_typography---font-size--h5); }
  .gl-catalogo_filters { flex-direction: column; align-items: stretch; }
}

@media (max-width: 478px) {
  .gl-catalogo_grid { grid-template-columns: repeat(auto-fit, minmax(4.5rem, 1fr)); }
}

.gl-vidrio_back { display: inline-flex; align-items: center; column-gap: var(--_spacing---space--1); color: color-mix(in srgb, var(--_theme---text) 35%, transparent); text-decoration-line: none; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: var(--_spacing---space--4); transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-vidrio_back:hover { color: var(--_theme---text); }

.gl-vidrio_hero { display: grid; grid-template-columns: minmax(0px, 1.4fr) minmax(0px, 1fr); grid-template-rows: auto; min-height: 0px; max-height: none; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-vidrio_hero_visual { display: grid; grid-template-rows: auto auto; grid-template-columns: minmax(0px, 1fr); row-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); min-width: 0px; min-height: 0px; overflow: hidden; }

.gl-vidrio_hero_slider { width: 100%; height: auto; aspect-ratio: 5 / 4; min-width: 0px; min-height: 0px; display: flex; flex-flow: row; overflow: auto hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); outline: none; background-color: color-mix(in srgb, var(--_theme---text) 3%, transparent); }

.gl-vidrio_hero_slider::-webkit-scrollbar { display: none; }

.gl-vidrio_hero_slide { flex: 0 0 100%; min-width: 100%; width: 100%; height: 100%; max-height: 100%; scroll-snap-align: center; scroll-snap-stop: always; margin: 0px; padding: 0px; display: flex; align-items: center; justify-content: center; overflow: hidden; }

.gl-vidrio_hero_img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: cover; object-position: center center; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); display: block; }

.gl-vidrio_hero_controls { display: flex; flex-direction: row; align-items: center; justify-content: center; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--2); padding-bottom: 0px; min-height: 1.75rem; }

.gl-vidrio_hero_controls[hidden] { display: none; }

.gl-vidrio_hero_arrow { width: 1.75rem; height: 1.75rem; display: inline-flex; align-items: center; justify-content: center; background-color: transparent; color: color-mix(in srgb, var(--_theme---text) 55%, transparent); border-width: 0px; padding: 0px; cursor: pointer; transition-property: color, opacity, transform; transition-duration: 180ms; transition-timing-function: ease; }

.gl-vidrio_hero_arrow:hover { color: var(--_theme---text); transform: translateX(0px) scale(1.08); }

.gl-vidrio_hero_arrow--prev:hover { transform: translateX(-2px) scale(1.08); }

.gl-vidrio_hero_arrow--next:hover { transform: translateX(2px) scale(1.08); }

.gl-vidrio_hero_arrow:disabled { opacity: 0.2; cursor: not-allowed; transform: none; }

.gl-vidrio_hero_dots { display: inline-flex; flex-direction: row; align-items: center; column-gap: var(--_spacing---space--2); }

.gl-vidrio_hero_dot { width: 0.375rem; height: 0.375rem; border-radius: 999px; background-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-width: 0px; padding: 0px; cursor: pointer; transition-property: background-color, transform; transition-duration: 180ms; transition-timing-function: ease; }

.gl-vidrio_hero_dot:hover { background-color: color-mix(in srgb, var(--_theme---text) 55%, transparent); }

.gl-vidrio_hero_dot.is-active { background-color: var(--_theme---text); transform: scale(1.4); }

.gl-vidrio_hero_counter { letter-spacing: 0.12em; font-variant-numeric: tabular-nums; margin-left: var(--_spacing---space--2); white-space: nowrap; }

.gl-vidrio_hero_info { display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--5); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); }

.gl-vidrio_hero_name { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 300; letter-spacing: -0.01em; margin-top: var(--_spacing---space--2); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.gl-vidrio_hero_tags { display: flex; column-gap: var(--_spacing---space--1); }

.gl-vidrio_hero_specs { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.gl-vidrio_hero_actions { display: flex; column-gap: var(--_spacing---space--2); }

.gl-vidrio_props { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-vidrio_props_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0px; margin-top: var(--_spacing---space--7); }

.gl-vidrio_prop-card { padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--5); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.gl-vidrio_prop-card_value { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 300; letter-spacing: -0.01em; }

.gl-vidrio_gallery { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-vidrio_gallery_row { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: var(--_spacing---space--2); margin-top: var(--_spacing---space--7); }

.gl-vidrio_gallery_img { width: 100%; aspect-ratio: 3 / 4; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-vidrio_related { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-vidrio_related_row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0px; margin-top: var(--_spacing---space--7); }

.gl-vidrio_cta { display: flex; justify-content: space-between; align-items: center; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-vidrio_cta_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 200; letter-spacing: -0.02em; margin: 0px; }

.gl-vidrio_cta_actions { display: flex; column-gap: var(--_spacing---space--2); }

@media (max-width: 991px) {
  .gl-vidrio_hero { grid-template-columns: 1fr; min-height: auto; }
  .gl-vidrio_hero_visual { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .gl-vidrio_hero_slider { aspect-ratio: 1 / 1; }
  .gl-vidrio_hero_info { padding-left: var(--site--margin); }
  .gl-vidrio_props_grid { grid-template-columns: repeat(2, 1fr); }
  .gl-vidrio_gallery_row { grid-template-columns: repeat(2, 1fr); row-gap: var(--_spacing---space--2); }
  .gl-vidrio_related_row { grid-template-columns: repeat(3, 1fr); }
  .gl-vidrio_props_grid.u-radius-inner-3 > :nth-child(2) { border-top-right-radius: var(--radius--subtle); }
  .gl-vidrio_props_grid.u-radius-inner-3 > :nth-child(3) { border-top-right-radius: 0px; }
  .gl-vidrio_props_grid.u-radius-inner-3 > :nth-last-child(3) { border-bottom-left-radius: 0px; }
  .gl-vidrio_props_grid.u-radius-inner-3 > :nth-last-child(2) { border-bottom-left-radius: var(--radius--subtle); }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-child(3) { border-top-right-radius: var(--radius--subtle); }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-child(5) { border-top-right-radius: 0px; }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-last-child(5) { border-bottom-left-radius: 0px; }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-last-child(3) { border-bottom-left-radius: var(--radius--subtle); }
}

@media (max-width: 767px) {
  .gl-vidrio_hero_slider { aspect-ratio: 4 / 5; }
  .gl-vidrio_props_grid { grid-template-columns: 1fr; }
  .gl-vidrio_gallery_row { grid-template-columns: repeat(2, 1fr); }
  .gl-vidrio_related_row { grid-template-columns: repeat(2, 1fr); }
  .gl-vidrio_cta { flex-direction: column; row-gap: var(--_spacing---space--4); text-align: center; }
  .gl-vidrio_props_grid.u-radius-inner-3 > :nth-child(2) { border-top-right-radius: 0px; }
  .gl-vidrio_props_grid.u-radius-inner-3 > :nth-last-child(2) { border-bottom-left-radius: 0px; }
  .gl-vidrio_props_grid.u-radius-inner-3 > :first-child { border-top-right-radius: var(--radius--subtle); }
  .gl-vidrio_props_grid.u-radius-inner-3 > :last-child { border-bottom-left-radius: var(--radius--subtle); }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-child(3) { border-top-right-radius: 0px; }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-child(2) { border-top-right-radius: var(--radius--subtle); }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-last-child(3) { border-bottom-left-radius: 0px; }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-last-child(2) { border-bottom-left-radius: var(--radius--subtle); }
}

@media (max-width: 478px) {
  .gl-vidrio_gallery_row { grid-template-columns: 1fr; }
  .gl-vidrio_related_row { grid-template-columns: 1fr; }
  .gl-vidrio_cta_actions { flex-direction: column; width: 100%; }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-child(2) { border-top-right-radius: 0px; }
  .gl-vidrio_related_row.u-radius-inner-5 > :nth-last-child(2) { border-bottom-left-radius: 0px; }
  .gl-vidrio_related_row.u-radius-inner-5 > :first-child { border-top-right-radius: var(--radius--subtle); }
  .gl-vidrio_related_row.u-radius-inner-5 > :last-child { border-bottom-left-radius: var(--radius--subtle); }
}

.gl-visor_viewer { display: grid; grid-template-columns: 1fr 24rem; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-visor_scene { position: relative; display: flex; align-items: center; justify-content: center; border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-visor_scene_img { width: 100%; height: 100%; min-height: 60vh; display: block; }

.gl-visor_scene_label { position: absolute; bottom: var(--_spacing---space--4); left: var(--_spacing---space--4); }

.gl-visor_scene_controls { position: absolute; top: var(--_spacing---space--4); right: var(--_spacing---space--4); display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.gl-visor_panel { display: flex; flex-direction: column; overflow: hidden auto; }

.gl-visor_panel_header { padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-visor_panel_info { padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.gl-visor_panel_info_top { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--2); }

.gl-visor_panel_info_symbol { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h); font-weight: 200; line-height: 1; }

.gl-visor_panel_info_tags { display: flex; column-gap: var(--_spacing---space--1); row-gap: var(--_spacing---space--1); flex-wrap: wrap; }

.gl-visor_panel_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0px; }

.gl-visor_panel_grid .gl-cell { min-width: 0px; overflow: hidden; }

.gl-visor_panel_grid .gl-cell_name { overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap; }

.gl-visor_cell_active { border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); background-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-visor_panel_controls { padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); display: flex; flex-direction: column; row-gap: var(--_spacing---space--4); margin-top: auto; }

.gl-visor_control_row { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.gl-visor_control_header { display: flex; justify-content: space-between; }

.gl-visor_slider { width: 100%; height: 2px; background-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); position: relative; }

.gl-visor_slider_fill { position: absolute; top: 0px; left: 0px; width: 60%; height: 100%; background-color: var(--_theme---text); }

.gl-visor_slider_fill_75 { width: 75%; }

.gl-visor_slider_thumb { position: absolute; top: -4px; left: 60%; width: 10px; height: 10px; background-color: var(--_theme---text); }

.gl-visor_slider_thumb_75 { left: 75%; }

.gl-visor_control_buttons { display: flex; column-gap: var(--_spacing---space--2); margin-top: var(--_spacing---space--2); }

@media (max-width: 991px) {
  .gl-visor_viewer { grid-template-columns: 1fr 20rem; }
}

@media (max-width: 767px) {
  .gl-visor_viewer { grid-template-columns: 1fr; min-height: auto; }
  .gl-visor_scene { min-height: 50vh; border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }
  .gl-visor_panel_grid { grid-template-columns: repeat(6, 1fr); }
}

@media (max-width: 478px) {
  .gl-visor_panel_grid { grid-template-columns: repeat(4, 1fr); }
}

.gl-proyectos_header { padding-top: calc(var(--_spacing---section-space--main) + var(--nav--height)); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-proyectos_header_top { display: flex; justify-content: space-between; align-items: flex-end; }

.gl-proyectos_header_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-proyectos_header_desc { margin-top: var(--_spacing---space--2); max-width: 32rem; }

.gl-proyectos_header_filters { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); flex-wrap: wrap; margin-top: var(--_spacing---space--5); }

.gl-proyectos_masonry { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); display: grid; grid-template-columns: 1.4fr 1fr; row-gap: var(--_spacing---space--5); column-gap: var(--_spacing---space--5); }

.gl-proyectos_load { grid-column: 1 / -1; display: flex; justify-content: center; padding-top: var(--_spacing---space--5); }

.gl-proyectos_map { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-proyectos_map_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h3); font-weight: 200; letter-spacing: -0.02em; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.gl-proyectos_map_img { width: 100%; aspect-ratio: 21 / 9; }

.gl-proyectos_map_tags { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); flex-wrap: wrap; margin-top: var(--_spacing---space--5); }

.gl-proyectos_map_note { display: flex; justify-content: flex-end; margin-top: var(--_spacing---space--4); }

@media (max-width: 991px) {
  .gl-proyectos_masonry { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
  .gl-proyectos_masonry { grid-template-columns: 1fr; }
  .gl-proyectos_header_top { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--4); }
}

@media (max-width: 478px) {
  .gl-proyectos_header_filters { flex-direction: column; }
}

.gl-proyecto_hero { position: relative; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-proyecto_hero_img { width: 100%; height: 100%; object-fit: cover; border-width: 0px; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-proyecto_hero_overlay { position: absolute; bottom: 0px; left: 0px; width: 100%; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); background-image: linear-gradient(to top, rgba(11, 11, 11, 0.9), transparent); }

.gl-proyecto_hero_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h1); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-proyecto_hero_meta { display: flex; column-gap: var(--_spacing---space--5); margin-top: var(--_spacing---space--2); }

.gl-proyecto_hero_tags { display: flex; column-gap: var(--_spacing---space--1); margin-top: var(--_spacing---space--2); }

.gl-proyecto_desc { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); max-width: 42rem; margin-left: auto; margin-right: auto; }

.gl-proyecto_desc_text { line-height: 1.8; color: color-mix(in srgb, var(--_theme---text) 70%, transparent); margin: 0px; }

.gl-proyecto_desc_text_spaced { margin-top: var(--_spacing---space--4); }

.gl-proyecto_gallery { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); display: flex; flex-direction: column; row-gap: var(--_spacing---space--5); }

.gl-proyecto_gallery_pair { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--5); }

.gl-proyecto_gallery_img-pano { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-proyecto_gallery_img-wide { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-proyecto_gallery_img-portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-proyecto_glass { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-proyecto_glass_row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0px; margin-top: var(--_spacing---space--7); }

.gl-proyecto_prevnext { display: grid; grid-template-columns: 1fr 1fr; }

.gl-proyecto_prevnext_item { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); color: var(--_theme---text); }

.gl-proyecto_prevnext_item_next { border-left-width: 1px; border-left-style: solid; border-left-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); text-align: right; align-items: flex-end; }

.gl-proyecto_prevnext_name { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 300; letter-spacing: -0.01em; }

@media (max-width: 991px) {
  .gl-proyecto_glass_row { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 767px) {
  .gl-proyecto_hero { min-height: 60vh; }
  .gl-proyecto_hero_img { min-height: 60vh; }
  .gl-proyecto_gallery_pair { grid-template-columns: 1fr; row-gap: var(--_spacing---space--5); }
  .gl-proyecto_glass_row { grid-template-columns: repeat(2, 1fr); }
  .gl-proyecto_prevnext { grid-template-columns: 1fr; }
  .gl-proyecto_prevnext_item_next { border-left-width: 0px; text-align: left; align-items: flex-start; border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }
}

@media (max-width: 478px) {
  .gl-proyecto_glass_row { grid-template-columns: 1fr; }
  .gl-proyecto_hero_meta { flex-direction: column; row-gap: var(--_spacing---space--1); }
}

.gl-lab_hero { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; position: relative; overflow: hidden; }

.gl-lab_hero_content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-lab_hero_float { position: absolute; inset: 0px; pointer-events: none; z-index: 1; }

.gl-lab_hero_float_img { position: absolute; object-fit: cover; display: block; opacity: 0.85; }

.gl-lab_hero_float_img--1 { width: clamp(180px, 18vw, 260px); aspect-ratio: 2 / 3; top: -8%; left: -2vw; }

.gl-lab_hero_float_img--2 { width: clamp(150px, 14vw, 210px); aspect-ratio: 3 / 4; top: 6%; right: 5vw; }

.gl-lab_hero_float_img--3 { width: clamp(110px, 10vw, 155px); aspect-ratio: 1 / 1; top: 42%; left: 8vw; opacity: 0.7; }

.gl-lab_hero_float_img--4 { width: clamp(170px, 16vw, 240px); aspect-ratio: 3 / 4; bottom: -10%; right: 2vw; }

.gl-lab_hero_float_img--5 { width: clamp(130px, 12vw, 190px); aspect-ratio: 4 / 3; bottom: 14%; left: 19vw; opacity: 0.75; }

.gl-lab_hero_heading { font-family: var(--_typography---font--primary-family); font-size: clamp(2.5rem, 7vw, 6rem); font-weight: 200; letter-spacing: -0.03em; line-height: 1.05; max-width: 56rem; margin: 0px; }

.gl-lab_hero_sub { color: color-mix(in srgb, var(--_theme---text) 50%, transparent); max-width: 36rem; margin-top: var(--_spacing---space--5); }

.gl-lab_editorial { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-lab_editorial_block { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--7); row-gap: var(--_spacing---space--7); align-items: center; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.gl-lab_editorial_block_last { border-bottom-width: 0px; }

.gl-lab_editorial_text { display: flex; flex-direction: column; row-gap: var(--_spacing---space--4); }

.gl-lab_editorial_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 200; letter-spacing: -0.02em; line-height: 1.2; margin: 0px; }

.gl-lab_editorial_body { line-height: 1.8; color: color-mix(in srgb, var(--_theme---text) 60%, transparent); margin: 0px; }

.gl-lab_editorial_img { width: 100%; aspect-ratio: 4 / 3; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-lab_process { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-lab_process_steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0px; margin-top: var(--_spacing---space--7); }

.gl-lab_process_step { padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--5); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); display: flex; flex-direction: column; row-gap: var(--_spacing---space--4); }

.gl-lab_process_step_num { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1; color: color-mix(in srgb, var(--_theme---text) 15%, transparent); }

.gl-lab_process_step_title { font-family: var(--_typography---font--primary-family); font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 300; }

.gl-lab_stats { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-lab_stats_grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--_spacing---space--5); margin-top: var(--_spacing---space--7); }

.gl-lab_stat { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); padding-top: var(--_spacing---space--5); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-lab_stat_number { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1; letter-spacing: -0.02em; }

.gl-lab_cta { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--5); }

.gl-lab_cta_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-lab_cta_sub { max-width: 28rem; }

.gl-lab_cta_buttons { display: flex; column-gap: var(--_spacing---space--2); }

@media (max-width: 991px) {
  .gl-lab_process_steps { grid-template-columns: repeat(2, 1fr); }
  .gl-lab_stats_grid { grid-template-columns: repeat(3, 1fr); row-gap: var(--_spacing---space--5); }
  .gl-lab_process_steps.u-radius-inner-4 > :nth-child(2) { border-top-right-radius: var(--radius--subtle); }
  .gl-lab_process_steps.u-radius-inner-4 > :nth-child(4) { border-top-right-radius: 0px; }
  .gl-lab_process_steps.u-radius-inner-4 > :nth-last-child(4) { border-bottom-left-radius: 0px; }
  .gl-lab_process_steps.u-radius-inner-4 > :nth-last-child(2) { border-bottom-left-radius: var(--radius--subtle); }
}

@media (max-width: 767px) {
  .gl-lab_hero { min-height: 60vh; }
  .gl-lab_hero_float { display: none; }
  .gl-lab_editorial_block { grid-template-columns: 1fr; }
  .gl-lab_process_steps { grid-template-columns: 1fr; }
  .gl-lab_stats_grid { grid-template-columns: repeat(2, 1fr); }
  .gl-lab_process_steps.u-radius-inner-4 > :nth-child(2) { border-top-right-radius: 0px; }
  .gl-lab_process_steps.u-radius-inner-4 > :nth-last-child(2) { border-bottom-left-radius: 0px; }
  .gl-lab_process_steps.u-radius-inner-4 > :first-child { border-top-right-radius: var(--radius--subtle); }
  .gl-lab_process_steps.u-radius-inner-4 > :last-child { border-bottom-left-radius: var(--radius--subtle); }
}

@media (max-width: 478px) {
  .gl-lab_stats_grid { grid-template-columns: 1fr; }
  .gl-lab_cta_heading { font-size: clamp(1.5rem, 8vw, 2rem); }
}

.gl-contacto_header { padding-top: calc(var(--_spacing---section-space--main) + var(--nav--height)); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-contacto_header_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-contacto_header_desc { margin-top: var(--_spacing---space--2); max-width: 32rem; }

.gl-contacto_split { display: grid; grid-template-columns: 1.2fr 1fr; min-height: min(70vh, 650px); padding-left: var(--site--margin); padding-right: var(--site--margin); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-contacto_form { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-right: var(--_spacing---space--7); display: flex; flex-direction: column; row-gap: var(--_spacing---space--4); position: sticky; top: var(--_spacing---space--4); align-self: start; }

.gl-contacto_form_double { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--4); }

.gl-contacto_form_row { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.gl-contacto_form_input { background-color: transparent; color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-width: 0px 0px 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); padding: 0.5rem 0px; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-lg); letter-spacing: 0.04em; width: 100%; }

.gl-contacto_form_textarea { background-color: transparent; color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); padding: 0.75rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-lg); letter-spacing: 0.04em; line-height: 1.6; width: 100%; min-height: 8rem; }

.gl-contacto_form_submit { padding-top: var(--_spacing---space--2); }

.gl-contacto_info { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--7); display: flex; flex-direction: column; row-gap: var(--_spacing---space--7); border-left-width: 1px; border-left-style: solid; border-left-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.gl-contacto_info_group { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.gl-contacto_info_value { color: color-mix(in srgb, var(--_theme---text) 70%, transparent); margin: 0px; }

.gl-contacto_info_map { width: 100%; aspect-ratio: 16 / 10; }

.gl-contacto_info_wa { margin-top: var(--_spacing---space--1); }

.gl-map { position: relative; overflow: hidden; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.gl-map .leaflet-container { width: 100%; height: 100%; background-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); font-family: inherit; }

.gl-map .leaflet-control-attribution { display: none; }

.gl-map .leaflet-bar { border-width: 0px; box-shadow: none; }

.gl-map .leaflet-bar a { background-color: var(--swatch--brand-500); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); color: var(--swatch--brand-text); }

.gl-map .leaflet-bar a:hover { background-color: var(--swatch--brand-text); color: var(--swatch--brand-500); }

.gl-map_marker { position: relative; }

.gl-map_marker_dot { position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; margin-top: -6px; margin-left: -6px; border-radius: 50%; background-color: var(--swatch--brand-500); box-shadow: 0px 0px 0px 2px var(--swatch--light-100), 0px 0px 0px 5px color-mix(in srgb, var(--swatch--brand-500) 30%, transparent); }

.gl-map_marker_ring { position: absolute; top: 50%; left: 50%; width: 22px; height: 22px; margin-top: -11px; margin-left: -11px; border-radius: 50%; border-width: 1.5px; border-style: solid; border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); animation-name: gl-map-pulse; animation-duration: 2.4s; animation-timing-function: ease-out; animation-iteration-count: infinite; }

@keyframes gl-map-pulse { 
  0% { transform: scale(0.6); opacity: 0.9; }
  100% { transform: scale(2.2); opacity: 0; }
}

.gl-map_gmaps { position: absolute; right: 16px; bottom: 16px; z-index: 500; width: auto; --_theme---text: var(--swatch--light-100); --_theme---background: var(--swatch--dark-900); }

.gl-map[data-map-theme="light"] .gl-map_gmaps { --_theme---text: var(--swatch--dark-900); --_theme---background: var(--swatch--light-100); }

.gl-map .gl-btn_skew_element { color: var(--_theme---text); -webkit-text-fill-color: currentcolor; }

.gl-map_gmaps .gl-btn_skew_shape path { fill: color-mix(in srgb, var(--_theme---background) 82%, transparent); stroke: color-mix(in srgb, var(--_theme---text) 45%, transparent); }

.gl-map_gmaps:hover .gl-btn_skew_shape path, .gl-map_gmaps:focus-within .gl-btn_skew_shape path { fill: var(--swatch--brand-500); stroke: var(--swatch--brand-500); }

.gl-map_gmaps:hover .gl-btn_skew_element, .gl-map_gmaps:focus-within .gl-btn_skew_element { color: var(--swatch--brand-text); }

.gl-map_pin { cursor: pointer; }

.leaflet-tooltip.gl-map_tip { padding: 6px 10px; border-width: 0px; border-style: solid; border-color: transparent; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); background-color: var(--swatch--dark-900); color: var(--swatch--light-100); font-family: var(--_typography---font--secondary-family); font-size: 12px; font-weight: 400; line-height: 1.35; letter-spacing: 0.02em; white-space: nowrap; box-shadow: 0px 8px 24px color-mix(in srgb, var(--swatch--dark-900) 30%, transparent); }

.leaflet-tooltip-top.gl-map_tip::before { border-top-color: var(--swatch--dark-900); }

.gl-map_tip_city { display: block; margin-top: 3px; color: var(--swatch--brand-500); font-size: 10px; letter-spacing: 0.06em; }

@media (max-width: 991px) {
  .gl-contacto_split { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
  .gl-contacto_split { grid-template-columns: 1fr; min-height: auto; }
  .gl-contacto_form { position: static; padding-right: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-bottom: var(--_spacing---space--7); }
  .gl-contacto_info { padding-left: 0px; border-left-width: 0px; }
  .gl-contacto_form_double { grid-template-columns: 1fr; row-gap: var(--_spacing---space--4); }
}

@media (max-width: 478px) {
  .gl-contacto_header_title { font-size: clamp(1.75rem, 8vw, 2.5rem); }
}

.gl-blog_header { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-blog_header_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-blog_header_desc { margin-top: var(--_spacing---space--2); max-width: 32rem; }

.gl-blog_grid-section { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-blog_grid { display: grid; grid-template-columns: repeat(3, 1fr); row-gap: var(--_spacing---space--7); column-gap: var(--_spacing---space--5); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---section-space--main); }

.gl-blog_card { display: flex; flex-direction: column; color: var(--_theme---text); }

.gl-blog_card_img { width: 100%; aspect-ratio: 16 / 9; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-blog_card_body { padding-top: var(--_spacing---space--2); display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.gl-blog_card_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; letter-spacing: 0.02em; line-height: 1.4; margin: 0px; }

.gl-blog_card_excerpt { font-size: var(--_typography---font-size--label-lg); color: color-mix(in srgb, var(--_theme---text) 45%, transparent); line-height: 1.6; margin: 0px; }

.gl-blog_load { display: flex; justify-content: center; padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

@media (max-width: 991px) {
  .gl-blog_grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .gl-blog_grid { grid-template-columns: 1fr; }
}

.gl-post_breadcrumb { padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-post_header-section { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-post_header { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---space--7); max-width: 42rem; margin-left: auto; margin-right: auto; }

.gl-post_header_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h3); font-weight: 200; letter-spacing: -0.02em; line-height: 1.15; margin: 0px; }

.gl-post_header_meta { display: flex; column-gap: var(--_spacing---space--4); align-items: center; margin-top: var(--_spacing---space--5); }

.gl-post_hero { padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-post_hero_img { width: 100%; aspect-ratio: 16 / 9; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-post_body-section { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-post_body { max-width: 42rem; margin-left: auto; margin-right: auto; padding-bottom: var(--_spacing---section-space--main); }

.gl-post_body_text { line-height: 1.8; color: color-mix(in srgb, var(--_theme---text) 70%, transparent); margin: 0px; }

.gl-post_body_text_spaced { margin-top: var(--_spacing---space--4); }

.gl-post_body_h2 { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 200; letter-spacing: -0.02em; line-height: 1.2; margin-top: var(--_spacing---space--7); margin-bottom: var(--_spacing---space--4); margin-left: 0px; margin-right: 0px; }

.gl-post_pullquote { border-width: 0px 0px 0px 2px; border-left-style: solid; border-left-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); padding-left: var(--_spacing---space--5); margin-top: var(--_spacing---space--7); margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.gl-post_pullquote_text { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; font-style: italic; line-height: 1.6; color: color-mix(in srgb, var(--_theme---text) 60%, transparent); margin: 0px; }

.gl-post_glass { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-post_glass_row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0px; margin-top: var(--_spacing---space--7); }

@media (max-width: 767px) {
  .gl-post_glass_row { grid-template-columns: repeat(2, 1fr); }
  .gl-post_header_meta { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--1); }
}

@media (max-width: 478px) {
  .gl-post_glass_row { grid-template-columns: 1fr; }
}

.pg-nav-edge { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-nav { display: flex; align-items: center; justify-content: space-between; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-nav_logo { display: flex; align-items: center; }

.pg-nav_logo-img { height: clamp(1.125rem, 2vw, 1.5rem); width: auto; }

.pg-nav_links { display: flex; align-items: center; column-gap: var(--_spacing---space--5); }

.pg-nav_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); text-decoration-line: none; }

.pg-nav_right { display: flex; align-items: center; column-gap: var(--_spacing---space--4); }

.pg-nav_group { position: relative; display: flex; align-items: center; }

.pg-nav_trigger { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); background-color: transparent; border-width: 0px; padding: 0px; cursor: pointer; display: inline-flex; align-items: center; column-gap: 0.42em; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-nav_trigger::after { content: ""; width: 0.34em; height: 0.34em; border-right: 1px solid; border-bottom: 1px solid; transform: translateY(-0.12em) rotate(45deg); transition-property: transform; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-nav_group:hover .pg-nav_trigger, .pg-nav_group:focus-within .pg-nav_trigger { color: var(--_theme---text); }

.pg-nav_group:hover .pg-nav_trigger::after, .pg-nav_group:focus-within .pg-nav_trigger::after { transform: translateY(0.06em) rotate(225deg); }

.pg-nav_popover::before { content: ""; position: absolute; bottom: 100%; left: 0px; right: 0px; height: 1rem; }

.pg-nav_popover { position: absolute; top: calc(100% + 1rem); left: 50%; min-width: 12rem; display: flex; flex-direction: column; background-color: color-mix(in srgb, var(--_theme---background) 94%, transparent); backdrop-filter: blur(14px); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); opacity: 0; transform: translateX(-50%) translateY(-6px); pointer-events: none; z-index: 60; transition-property: opacity, transform; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-nav_group:hover .pg-nav_popover, .pg-nav_group:focus-within .pg-nav_popover { opacity: 1; transform: translateX(-50%) translateY(0px); pointer-events: auto; }

.pg-nav_popover_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; color: color-mix(in srgb, var(--_theme---text) 55%, transparent); text-decoration-line: none; padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); transition-property: color, background-color; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-nav_popover_link:last-child { border-bottom-width: 0px; }

.pg-nav_popover_link:hover { color: var(--_theme---text); background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); }

.pg-nav_burger { display: none; width: 1.5rem; height: 0.75rem; border-width: 1px 0px; border-top-style: solid; border-top-color: var(--_theme---text); border-bottom-style: solid; border-bottom-color: var(--_theme---text); }

.pg-footer { padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---space--5); }

.pg-footer_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-footer_grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; row-gap: var(--_spacing---space--5); column-gap: var(--_spacing---space--5); }

.pg-footer_col { display: flex; flex-direction: column; row-gap: 0.375rem; }

.pg-footer_brand { display: flex; align-items: flex-start; }

.pg-footer_brand-logo { height: 4rem; width: auto; display: block; }

.pg-footer_brand-icon { height: 2rem; width: auto; display: none; }

.pg-footer_brand-desc { margin-top: var(--_spacing---space--1); }

.pg-footer_col-title { margin-bottom: var(--_spacing---space--1); }

.pg-footer_col-title_spaced { margin-top: var(--_spacing---space--2); }

.pg-footer_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); }

.pg-footer_newsletter { display: flex; align-items: flex-end; justify-content: space-between; margin-top: var(--_spacing---space--7); padding-top: var(--_spacing---space--5); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-footer_newsletter-desc { font-size: var(--_typography---font-size--text-small); color: color-mix(in srgb, var(--_theme---text) 50%, transparent); margin-top: var(--_spacing---space--1); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.pg-footer_newsletter-form { display: flex; column-gap: var(--_spacing---space--1); }

.pg-footer_newsletter-input { width: 16rem; }

.pg-footer_bottom { display: flex; justify-content: space-between; align-items: center; padding-top: var(--_spacing---space--5); margin-top: var(--_spacing---space--5); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-page-header { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---space--7); }

.pg-page-header_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-page-header_top { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: var(--_spacing---space--5); }

.pg-page-header_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-page-header_desc { margin-top: var(--_spacing---space--2); max-width: 36rem; }

.pg-filter-bar { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); flex-wrap: wrap; margin-top: var(--_spacing---space--5); }

.pg-filter-item_active { background-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); color: var(--_theme---text); border-top-color: color-mix(in srgb, var(--_theme---text) 30%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 30%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 30%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 30%, transparent); }

.pg-index_hero { position: relative; display: grid; grid-template-columns: 47% 53%; align-items: stretch; min-height: 100svh; overflow: hidden; background-color: var(--swatch--light-100); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-index_hero_text { position: relative; z-index: 2; }

.pg-index_hero_media-wrap { position: relative; z-index: 1; overflow: hidden; }

.pg-index_hero_media { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition-property: opacity; transition-duration: 0.6s; transition-timing-function: ease; }

.pg-index_hero_media.is-active { opacity: 1; }

.pg-index_hero_scrim { position: absolute; top: 0px; left: 0px; bottom: 0px; width: 42%; z-index: 1; pointer-events: none; background-image: linear-gradient(to right, var(--swatch--light-100), color-mix(in srgb, var(--swatch--light-100) 50%, transparent) 50%, transparent); }

.pg-index_hero_center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 3; width: 64%; text-align: center; pointer-events: none; }

.pg-index_hero_sub { max-width: 44rem; margin-top: var(--_spacing---space--3); margin-right: auto; margin-bottom: 0px; margin-left: auto; }

.pg-index_hero_nav { position: absolute; left: var(--site--margin); bottom: var(--site--margin); z-index: 4; display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.pg-index_hero_nav a { color: color-mix(in srgb, var(--_theme---text) 55%, transparent); text-decoration: none; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-index_hero_nav a:hover { color: var(--_theme---text); }

.pg-index_hero_card { position: absolute; left: var(--_spacing---space--5); right: var(--_spacing---space--5); margin-left: auto; margin-right: auto; bottom: var(--_spacing---space--5); z-index: 4; display: flex; column-gap: var(--_spacing---space--3); align-items: stretch; max-width: 27rem; padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); background-color: color-mix(in srgb, var(--swatch--light-100) 95%, transparent); border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_border---divider-color); border-right-color: var(--_border---divider-color); border-bottom-color: var(--_border---divider-color); border-left-color: var(--_border---divider-color); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.pg-index_hero_card-img { width: 9rem; flex-shrink: 0; align-self: stretch; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.pg-index_hero_card-body { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.pg-index_hero_card-btn { margin-top: var(--_spacing---space--2); }

.pg-index_hero_dots { position: absolute; bottom: var(--_spacing---space--5); left: 73.5%; transform: translateX(-50%); z-index: 4; display: flex; column-gap: var(--_spacing---space--1); }

.pg-index_hero_dot { width: var(--_spacing---space--1); height: var(--_spacing---space--1); padding: 0px; border-width: 0px; border-style: none; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); background-color: color-mix(in srgb, var(--swatch--light-100) 55%, transparent); cursor: pointer; transition-property: background-color, width; transition-duration: 0.3s; transition-timing-function: ease; }

.pg-index_hero_dot.is-active { width: var(--_spacing---space--4); background-color: var(--swatch--light-100); }

.pg-index_find { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-index_find_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-index_find_search { display: flex; align-items: center; justify-content: center; margin-top: var(--_spacing---space--2); }

.pg-index_find_input { width: 100%; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; text-align: center; color: var(--swatch--dark-900); background-color: transparent; padding: 0px; border-width: 0px; border-style: none; outline-width: 0px; outline-style: none; }

.pg-index_find_input::placeholder { color: color-mix(in srgb, var(--swatch--dark-900) 32%, transparent); opacity: 1; }

.pg-index_find_bar { display: flex; justify-content: space-between; align-items: baseline; margin-top: var(--_spacing---space--6); margin-bottom: var(--_spacing---space--4); }

.pg-index_find_all { color: color-mix(in srgb, var(--swatch--dark-900) 55%, transparent); text-decoration: none; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-index_find_all:hover { color: var(--swatch--dark-900); }

.pg-index_find_swiper { width: 100%; overflow: hidden; padding-left: var(--site--margin); padding-right: var(--site--margin); cursor: grab; touch-action: pan-y; user-select: none; }

.pg-index_find_swiper:active { cursor: grabbing; }

.pg-index_find_track { display: flex; align-items: flex-start; width: max-content; will-change: transform; }

.pg-index_find_card { width: 20rem; height: auto; flex: 0 0 auto; display: flex; flex-direction: column; color: inherit; text-decoration: none; margin-right: 1rem; }

.pg-index_find_card.is-down { margin-top: var(--_spacing---space--7); }

.pg-index_find_card-img { width: 100%; object-fit: cover; display: block; pointer-events: none; -webkit-user-drag: none; user-select: none; border-top-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-width: var(--border-width--main); border-right-color: var(--_theme---button-secondary--border); border-bottom-width: var(--border-width--main); border-bottom-color: var(--_theme---button-secondary--border); border-left-width: var(--border-width--main); border-left-color: var(--_theme---button-secondary--border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.pg-index_find_card.is-h-tall .pg-index_find_card-img { aspect-ratio: 3 / 4; }

.pg-index_find_card.is-h-portrait .pg-index_find_card-img { aspect-ratio: 2 / 3; }

.pg-index_find_card.is-h-xtall .pg-index_find_card-img { aspect-ratio: 5 / 8; }

.pg-index_find_card.is-h-square .pg-index_find_card-img { aspect-ratio: 1 / 1; }

.pg-index_find_card.is-h-wide .pg-index_find_card-img { aspect-ratio: 4 / 3; }

.pg-find_preview { position: fixed; pointer-events: none; z-index: 1000; width: 17.5rem; padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); background-color: var(--swatch--light-100); border-top-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-width: var(--border-width--main); border-right-color: var(--_theme---button-secondary--border); border-bottom-width: var(--border-width--main); border-bottom-color: var(--_theme---button-secondary--border); border-left-width: var(--border-width--main); border-left-color: var(--_theme---button-secondary--border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); color: var(--swatch--dark-900); display: none; opacity: 0; transition-property: opacity; transition-duration: 0.15s; transition-timing-function: ease; box-shadow: rgba(11, 11, 11, 0.16) 0px 16px 48px; }

.pg-find_preview_media { width: 100%; aspect-ratio: 3 / 4; overflow: hidden; margin-bottom: var(--_spacing---space--2); background-color: rgb(255, 255, 255); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-find_preview_img { width: 100%; height: 100%; object-fit: cover; display: block; }

.pg-find_preview_name { display: block; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); letter-spacing: 0.02em; line-height: 1.3; margin-bottom: var(--_spacing---space--1); }

.pg-find_preview_sub { display: block; margin-bottom: var(--_spacing---space--2); }

.pg-find_preview_tags { display: flex; column-gap: var(--_spacing---space--1); row-gap: var(--_spacing---space--1); flex-wrap: wrap; }

.pg-index_find_card-info { padding-top: var(--_spacing---space--2); display: flex; justify-content: space-between; align-items: flex-start; column-gap: var(--_spacing---space--2); }

.pg-index_find_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; letter-spacing: 0.02em; line-height: 1.4; margin: 0px; }

.pg-index_find_card-tags { display: flex; column-gap: var(--_spacing---space--1); flex-shrink: 0; }

.pg-index_find_card.is-filtered { display: none; }

.pg-index_find_empty { flex-direction: column; align-items: center; row-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); text-align: center; }

.pg-index_find_empty.is-shown { display: flex; }

.pg-index_find_empty-reset { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--swatch--dark-900); background-color: transparent; cursor: pointer; padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--3); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--dark-900) 25%, transparent); border-right-color: color-mix(in srgb, var(--swatch--dark-900) 25%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--dark-900) 25%, transparent); border-left-color: color-mix(in srgb, var(--swatch--dark-900) 25%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); transition-property: background-color, color; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-index_find_empty-reset:hover { background-color: var(--swatch--dark-900); color: var(--swatch--light-100); }

.pg-index_systems { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-index_systems_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-index_systems_header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: var(--_spacing---space--7); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); margin-bottom: var(--_spacing---space--7); }

.pg-index_systems_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-index_systems_grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--5); }

.pg-index_systems_card { display: flex; flex-direction: column; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); overflow: hidden; }

.pg-index_systems_card-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-index_systems_card-body { padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--5); display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--2); }

.pg-index_systems_card-title { margin-top: var(--_spacing---space--1); }

.pg-index_systems_card-link { margin-top: var(--_spacing---space--3); }

.pg-index_systems_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-index_systems_card-link { color: color-mix(in srgb, var(--_theme---text) 60%, transparent); }

.pg-index_featured { display: grid; grid-template-columns: 1.2fr 1fr; min-height: min(80vh, 740px); }

.pg-index_featured_visual { position: relative; display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-index_featured_img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-index_featured_media { position: relative; width: 100%; max-width: 36rem; margin-left: auto; margin-right: auto; cursor: pointer; }

.pg-index_featured_video { position: absolute; top: 0px; left: 0px; opacity: 0; transition-property: opacity; transition-duration: 0.4s; transition-timing-function: ease; pointer-events: none; }

.pg-index_featured_media.is-playing .pg-index_featured_video { opacity: 1; }

.pg-index_featured_info { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--5); }

.pg-index_featured_tag { display: inline-flex; margin-bottom: var(--_spacing---space--2); }

.pg-index_featured_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-index_featured_specs { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.pg-index_featured_colors-label { display: block; margin-bottom: var(--_spacing---space--1); }

.pg-index_featured_swatches { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.pg-index_projects { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-index_projects_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-index_projects_header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: var(--_spacing---space--7); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); margin-bottom: var(--_spacing---space--7); }

.pg-index_projects_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-index_projects_grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--5); }

.pg-index_projects_card { display: flex; flex-direction: column; }

.pg-index_projects_card-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-index_projects_card-info { padding-top: var(--_spacing---space--2); display: flex; justify-content: space-between; align-items: flex-start; }

.pg-index_projects_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; letter-spacing: 0.02em; line-height: 1.4; margin: 0px; }

.pg-index_stats { display: grid; grid-template-columns: repeat(4, 1fr); }

.pg-index_stats_item { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--1); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-index_stats_number { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1; }

.pg-index_cta { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-index_cta_inner { display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-index_cta_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; max-width: 48rem; margin: 0px; }

.pg-index_cta_sub { max-width: 32rem; }

.pg-index_cta_buttons { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); }

.pg-sistemas_grid-section { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistemas_grid { display: grid; grid-template-columns: 1fr 1fr; row-gap: var(--_spacing---space--5); column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---section-space--main); max-width: 140vh; margin-left: auto; margin-right: auto; }

.pg-sistemas_card { display: flex; flex-direction: column; }

.pg-sistemas_card-img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-color: var(--_theme---button-secondary--border); border-bottom-color: var(--_theme---button-secondary--border); border-left-color: var(--_theme---button-secondary--border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistemas_card-img_empty { width: 100%; aspect-ratio: 1 / 1; display: block; background-color: color-mix(in srgb, var(--_theme---text) 5%, transparent); border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-color: var(--_theme---button-secondary--border); border-bottom-color: var(--_theme---button-secondary--border); border-left-color: var(--_theme---button-secondary--border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistemas_card-body { padding-top: var(--_spacing---space--2); display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.pg-sistemas_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-sistemas_card-specs { display: flex; column-gap: var(--_spacing---space--3); margin-top: var(--_spacing---space--1); }

.pg-sistemas_card-link { color: color-mix(in srgb, var(--_theme---text) 60%, transparent); margin-top: var(--_spacing---space--1); }

.pg-sistema_hero { padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---space--7); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-sistema_hero_head { padding-left: var(--site--margin); padding-right: var(--site--margin); margin-bottom: var(--_spacing---space--6); }

.pg-sistema_hero_breadcrumb { display: block; margin-bottom: var(--_spacing---space--4); color: color-mix(in srgb, var(--_theme---text) 45%, transparent); }

.pg-sistema_hero_breadcrumb-link { color: inherit; }

.pg-sistema_hero_titlerow { display: flex; align-items: baseline; justify-content: space-between; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--2); flex-wrap: wrap; padding-bottom: var(--_spacing---space--3); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); }

.pg-sistema_hero_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.02em; line-height: 1.05; color: var(--_theme---text); margin: 0px; }

.pg-sistema_hero_tag { display: inline-flex; flex-shrink: 0; }

.pg-sistema_hero_metarow { display: flex; align-items: flex-start; justify-content: space-between; column-gap: var(--_spacing---space--7); row-gap: var(--_spacing---space--3); flex-wrap: wrap; margin-top: var(--_spacing---space--3); }

.pg-sistema_hero_subtitle { max-width: 46ch; color: color-mix(in srgb, var(--_theme---text) 65%, transparent); margin-top: 0px; margin-bottom: 0px; }

.pg-sistema_hero_facts { display: flex; flex-direction: column; align-items: flex-end; row-gap: var(--_spacing---space--1); text-align: right; }

.pg-sistema_hero_media-wrap { margin-left: var(--site--margin); margin-right: var(--site--margin); overflow: hidden; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistema_hero_media { width: 100%; aspect-ratio: 16 / 9; max-height: 68vh; object-fit: cover; display: block; }

.pg-sistema_hero.is-placeholder .pg-sistema_hero_media-wrap { background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); }

.pg-sistema_hero_placeholder { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; max-height: 68vh; letter-spacing: 0.18em; text-transform: uppercase; pointer-events: none; }

@media (max-width: 767px) {
  .pg-sistema_hero { padding-top: var(--_spacing---space--6); }
  .pg-sistema_hero_metarow { flex-direction: column; }
  .pg-sistema_hero_facts { align-items: flex-start; text-align: left; }
  .pg-sistema_hero_media { aspect-ratio: 4 / 3; }
}

.pg-sistema_overview { display: grid; grid-template-columns: 1fr 1fr; min-height: min(80vh, 740px); }

.pg-sistema_overview_text { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--5); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-sistema_overview_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-sistema_overview_desc { margin-top: var(--_spacing---space--3); max-width: 32rem; }

.pg-sistema_overview_visual { display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); }

.pg-sistema_overview_img { width: 100%; max-width: 36rem; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistema_overview_img.is-landscape { max-width: 46rem; aspect-ratio: 5 / 4; }

.pg-sistema_features { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.pg-sistema_feature-item { display: flex; align-items: flex-start; column-gap: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.pg-sistema_feature-bullet { width: 0.375rem; height: 0.375rem; min-width: 0.375rem; background-color: color-mix(in srgb, var(--_theme---text) 30%, transparent); margin-top: 0.25rem; }

.pg-sistema_specs { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_specs_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_specs_label { text-align: center; }

.pg-sistema_specs_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; text-align: center; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.pg-sistema_specs_table { display: flex; flex-direction: column; max-width: 48rem; margin-left: auto; margin-right: auto; }

.pg-sistema_specs_row { display: grid; grid-template-columns: 1fr 1fr; padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.pg-mueble_specs_split { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--7); row-gap: var(--_spacing---space--6); align-items: center; max-width: 68rem; margin-left: auto; margin-right: auto; }

.pg-mueble_diagram { display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); }

.pg-mueble_diagram_img { width: 100%; max-width: 22rem; height: auto; display: block; opacity: 0.85; }

.pg-mueble_specs_split .pg-sistema_specs_table { max-width: none; margin-left: 0px; margin-right: 0px; }

@media (max-width: 767px) {
  .pg-mueble_specs_split { grid-template-columns: 1fr; }
  .pg-mueble_diagram_img { max-width: 16rem; }
}

.pg-sistema_apps { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_apps_head { max-width: var(--max-width--main); margin-top: 0px; margin-right: auto; margin-bottom: var(--_spacing---space--6); margin-left: auto; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_apps_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1.1; letter-spacing: -0.02em; color: var(--swatch--dark-900); margin-top: var(--_spacing---space--2); margin-right: 0px; margin-bottom: 0px; margin-left: 0px; }

.pg-sistema_apps_sub { margin-top: var(--_spacing---space--2); margin-right: 0px; margin-bottom: 0px; margin-left: 0px; max-width: 40rem; }

.pg-sistema_apps_grid { max-width: var(--max-width--main); margin: 0px auto; padding-left: var(--site--margin); padding-right: var(--site--margin); display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--site--gutter); row-gap: var(--site--gutter); }

.pg-sistema_apps_item { margin: 0px; overflow: hidden; aspect-ratio: 4 / 3; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); background-color: color-mix(in srgb, var(--_theme---text) 4%, transparent); }

.pg-sistema_apps_img { width: 100%; height: 100%; object-fit: cover; display: block; transition-property: transform; transition-duration: 0.6s; transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }

.pg-sistema_apps_item:hover .pg-sistema_apps_img { transform: scale(1.04); }

@media (max-width: 991px) {
  .pg-sistema_apps_grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .pg-sistema_apps_grid { grid-template-columns: 1fr; }
}

.pg-sistema_colors { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_colors_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_colors_label { text-align: center; }

.pg-sistema_colors_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; text-align: center; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.pg-sistema_swatches { display: flex; flex-wrap: wrap; column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--3); justify-content: center; }

.pg-sistema_swatch-item { display: flex; flex-direction: column; align-items: center; row-gap: var(--_spacing---space--1); }

.pg-sistema_swatch-block { width: 3rem; height: 3rem; }

.pg-sistema_swatch-item { display: flex; flex-direction: column; align-items: center; row-gap: var(--_spacing---space--1); width: 11rem; }

.pg-sistema_swatch-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-color: var(--_theme---button-secondary--border); border-bottom-color: var(--_theme---button-secondary--border); border-left-color: var(--_theme---button-secondary--border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-swatch-link { display: block; line-height: 0; }

.gl-swatch-img { width: 3.25rem; height: 1.85rem; object-fit: cover; display: block; border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-color: var(--_theme---button-secondary--border); border-bottom-color: var(--_theme---button-secondary--border); border-left-color: var(--_theme---button-secondary--border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); transition-property: transform; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-swatch-link:hover .gl-swatch-img { transform: scale(1.06); }

@media (max-width: 767px) {
  .pg-sistema_swatch-item { width: 8.5rem; }
}

.pg-sistema_video { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_video_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_video_placeholder { width: 100%; aspect-ratio: 16 / 9; margin-top: var(--_spacing---space--3); object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistema_video_caption { font-size: var(--_typography---font-size--text-small); color: color-mix(in srgb, var(--_theme---text) 40%, transparent); margin-top: var(--_spacing---space--2); }

.pg-sistema_gallery { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_gallery_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_gallery_grid { display: grid; grid-template-columns: 1fr 1fr; row-gap: var(--_spacing---space--3); column-gap: var(--_spacing---space--3); margin-top: var(--_spacing---space--5); }

.pg-sistema_gallery_img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistema_downloads { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_downloads_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_downloads_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.pg-sistema_downloads_grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--3); }

.pg-sistema_download-card { border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--3); display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.pg-sistema_download-card_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-sistema_download-btn { margin-top: var(--_spacing---space--2); }

.pg-sistema_related { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-sistema_related_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sistema_related_grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--3); margin-top: var(--_spacing---space--5); }

.pg-sistema_related_card { display: flex; flex-direction: column; color: inherit; }

.pg-sistema_related_card-img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-sistema_related_card-info { padding-top: var(--_spacing---space--2); }

.pg-sistema_related_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; margin-top: var(--_spacing---space--1); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.pg-sistema_cta { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); }

.pg-sistema_cta_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); display: flex; justify-content: space-between; align-items: center; }

.pg-sistema_cta_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-proyectos_grid-section { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-proyectos_grid { display: grid; grid-template-columns: 1.4fr 1fr; row-gap: var(--_spacing---space--5); column-gap: var(--_spacing---space--5); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---section-space--main); }

.pg-proyectos_card { display: flex; flex-direction: column; color: inherit; }

.pg-proyectos_card-img-tall { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-proyectos_card-img-wide { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-proyectos_card-info { padding-top: var(--_spacing---space--2); display: flex; justify-content: space-between; align-items: flex-start; }

.pg-proyectos_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; letter-spacing: 0.02em; line-height: 1.4; margin: 0px; }

.pg-proyectos_card-tags { display: flex; column-gap: var(--_spacing---space--1); }

.pg-proyectos_map { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-proyectos_map_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-proyectos_map_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.pg-proyectos_map_img { width: 100%; aspect-ratio: 16 / 9; }

.pg-proyectos_map_tags { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); flex-wrap: wrap; margin-top: var(--_spacing---space--5); }

.pg-proyectos_map_note { display: flex; justify-content: flex-end; margin-top: var(--_spacing---space--3); }

@media (max-width: 767px) {
  .pg-proyectos_map_img { aspect-ratio: 3 / 2; }
}

@media (max-width: 478px) {
  .pg-proyectos_map_img { aspect-ratio: 4 / 5; }
}

.pg-reel { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-reel_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); margin-bottom: var(--_spacing---space--7); }

.pg-reel_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-reel_marquee { overflow: hidden; width: 100%; cursor: grab; touch-action: pan-y; user-select: none; }

.pg-reel_marquee:active { cursor: grabbing; }

.pg-reel_track { display: flex; width: max-content; will-change: transform; }

.pg-reel_card { position: relative; overflow: hidden; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-top-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---button-secondary--border); border-right-width: var(--border-width--main); border-right-color: var(--_theme---button-secondary--border); border-bottom-width: var(--border-width--main); border-bottom-color: var(--_theme---button-secondary--border); border-left-width: var(--border-width--main); border-left-color: var(--_theme---button-secondary--border); flex: 0 0 auto; width: 18vw; margin-right: var(--_spacing---space--3); }

.pg-reel_video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; display: block; pointer-events: none; user-select: none; -webkit-user-drag: none; }

.pg-reel_sound { position: absolute; inset: 0px; background-image: linear-gradient(to top, rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0.04)); transition-property: opacity; transition-duration: 0.3s; transition-timing-function: ease; pointer-events: none; }

.pg-reel_card:hover .pg-reel_sound { opacity: 0; }

@media (max-width: 991px) {
  .pg-reel_card { width: 30vw; }
}

@media (max-width: 767px) {
  .pg-reel_card { width: 40vw; }
}

@media (max-width: 478px) {
  .pg-reel_card { width: 62vw; }
}

.pg-proyecto_hero { padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---space--7); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-proyecto_hero_head { max-width: var(--max-width--main); margin-left: auto; margin-right: auto; padding-left: var(--site--margin); padding-right: var(--site--margin); margin-bottom: var(--_spacing---space--6); }

.pg-proyecto_hero_breadcrumb { display: block; margin-bottom: var(--_spacing---space--4); color: color-mix(in srgb, var(--_theme---text) 45%, transparent); }

.pg-proyecto_hero_breadcrumb-link { color: inherit; }

.pg-proyecto_hero_titlerow { display: flex; align-items: baseline; justify-content: space-between; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--2); flex-wrap: wrap; padding-bottom: var(--_spacing---space--3); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); }

.pg-proyecto_hero_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.02em; line-height: 1.05; color: var(--_theme---text); margin: 0px; }

.pg-proyecto_hero_tags { display: flex; flex-shrink: 0; column-gap: var(--_spacing---space--1); }

.pg-proyecto_hero_metarow { display: flex; align-items: flex-start; justify-content: space-between; column-gap: var(--_spacing---space--7); row-gap: var(--_spacing---space--3); flex-wrap: wrap; margin-top: var(--_spacing---space--3); }

.pg-proyecto_hero_location { color: color-mix(in srgb, var(--_theme---text) 55%, transparent); margin-top: 0px; margin-bottom: 0px; }

/* Capped like every other image container on the site (see .gl-contain and
   .pg-mob_gallery_grid). This wrap is the rounded/clipped image box itself, so
   it takes the page gutter as width rather than padding — otherwise the radius
   and overflow would sit outside the photo. */
.pg-proyecto_hero_media-wrap { width: calc(100% - 2 * var(--site--margin)); max-width: calc(var(--max-width--main) - 2 * var(--site--margin)); margin-left: auto; margin-right: auto; overflow: hidden; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-proyecto_hero_media { width: 100%; aspect-ratio: 16 / 9; max-height: 68vh; object-fit: cover; display: block; }

@media (max-width: 767px) {
  .pg-proyecto_hero { padding-top: var(--_spacing---space--6); }
  .pg-proyecto_hero_metarow { flex-direction: column; }
  .pg-proyecto_hero_media { aspect-ratio: 4 / 3; }
}

.pg-proyecto_description { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-proyecto_description_inner { max-width: var(--max-width--main); margin-left: auto; margin-right: auto; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-proyecto_description_content { max-width: 40rem; margin-left: auto; margin-right: auto; }

.pg-proyecto_description_text { line-height: 1.8; color: color-mix(in srgb, var(--_theme---text) 75%, transparent); margin: 0px; }

.pg-proyecto_description_text_spaced { margin-top: var(--_spacing---space--3); }

.pg-proyecto_gallery { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

/* Was the only gallery on the site with no max-width, so on a wide display it
   ran edge to edge and each half-image rendered ~1800px wide (4/3 => ~1350px
   tall). Same cap + centring as .pg-mob_gallery_grid / .pg-sistema_apps_grid. */
.pg-proyecto_gallery_inner { max-width: var(--max-width--main); margin-left: auto; margin-right: auto; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-proyecto_gallery_grid { display: flex; flex-direction: column; row-gap: var(--_spacing---space--3); margin-top: var(--_spacing---space--5); }

.pg-proyecto_gallery_row { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--3); }

.pg-proyecto_gallery_img-pano { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-proyecto_gallery_img-half { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-proyecto_systems { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-proyecto_systems_inner { max-width: var(--max-width--main); margin-left: auto; margin-right: auto; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-proyecto_systems_row { display: flex; column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--3); flex-wrap: wrap; margin-top: var(--_spacing---space--5); }

.pg-proyecto_system-ref { display: flex; flex-direction: column; width: 14rem; color: inherit; }

.pg-proyecto_system-ref_img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-proyecto_system-ref_info { padding-top: var(--_spacing---space--1); }

.pg-proyecto_system-ref_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-small); font-weight: 400; margin-top: var(--_spacing---space--1); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; }

.pg-proyecto_prevnext { display: grid; grid-template-columns: 1fr 1fr; }

.pg-proyecto_prevnext_item { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); color: inherit; }

.pg-proyecto_prevnext_item-prev { padding-left: var(--site--margin); padding-right: var(--_spacing---space--3); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-proyecto_prevnext_item-next { padding-left: var(--_spacing---space--3); padding-right: var(--site--margin); text-align: right; }

.pg-proyecto_prevnext_title { }

.pg-recursos_grid-section { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-recursos_grid { display: grid; grid-template-columns: repeat(3, 1fr); row-gap: var(--_spacing---space--3); column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---section-space--main); }

.pg-recursos_card { border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); display: flex; flex-direction: column; overflow: hidden; }

.pg-recursos_card-thumb { aspect-ratio: 4 / 3; object-fit: cover; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-recursos_card-thumb_section { object-fit: contain; background-color: rgb(255, 255, 255); padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); }

.pg-recursos_card-body { padding-top: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--3); padding-left: var(--_spacing---space--3); display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); flex-grow: 1; }

.pg-recursos_card-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-recursos_card-meta { margin-top: auto; }

.pg-recursos_card-btn { margin-top: var(--_spacing---space--2); }

.pg-recursos_general { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-recursos_general_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-recursos_general_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.pg-recursos_general_list { display: flex; flex-direction: column; }

.pg-recursos_general_item { display: flex; justify-content: space-between; align-items: center; padding-top: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--3); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 6%, transparent); }

.pg-recursos_general_item-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 400; margin: 0px; }

.pg-nosotros_hero { display: grid; grid-template-columns: 1fr 1fr; min-height: min(70vh, 650px); }

.pg-nosotros_hero_visual { display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-nosotros_hero_img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-nosotros_hero_text { display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--5); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); }

.pg-nosotros_hero_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-nosotros_hero_desc { max-width: 36rem; margin-top: var(--_spacing---space--3); }

.pg-nosotros_mission { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-nosotros_mission_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-nosotros_mission_content { max-width: 40rem; margin-left: auto; margin-right: auto; text-align: center; display: flex; flex-direction: column; row-gap: var(--_spacing---space--7); }

.pg-nosotros_mission_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin-top: 0px; margin-bottom: var(--_spacing---space--3); margin-left: 0px; margin-right: 0px; }

.pg-nosotros_mission_text { line-height: 1.8; color: color-mix(in srgb, var(--_theme---text) 70%, transparent); }

.pg-nosotros_lab { display: grid; grid-template-columns: 1fr 1fr; }

.pg-nosotros_lab_visual { display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }

.pg-nosotros_lab_img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-nosotros_lab_text { display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--5); padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); }

.pg-nosotros_lab_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-nosotros_lab_desc { line-height: 1.8; color: color-mix(in srgb, var(--_theme---text) 70%, transparent); margin-top: var(--_spacing---space--3); }

.pg-nosotros_certs { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-nosotros_certs_inner { padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-nosotros_certs_label { text-align: center; }

.pg-nosotros_certs_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; text-align: center; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: 0px; margin-right: 0px; }

.pg-nosotros_certs_grid { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--3); }

.pg-nosotros_cert-item { border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--3); display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--2); }

.pg-nosotros_cert-icon { width: 3rem; height: 3rem; }

.pg-nosotros_cert-title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-nosotros_cta { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-nosotros_cta_inner { display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-nosotros_cta_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.pg-nosotros_cta_sub { max-width: 32rem; }

.pg-contacto_split { display: grid; grid-template-columns: 1.2fr 1fr; }

.pg-contacto_form { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--_spacing---space--5); border-right-width: 1px; border-right-style: solid; border-right-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); display: flex; flex-direction: column; row-gap: var(--_spacing---space--3); }

.pg-contacto_form-label { margin-bottom: var(--_spacing---space--2); }

.pg-contacto_form-row { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--3); }

.pg-contacto_form-field { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.pg-contacto_form-field_label { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); }

.pg-contacto_form-input { padding: 0.625rem 0.75rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); color: var(--_theme---text); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-lg); }

.pg-contacto_form-select { padding: 0.625rem 0.75rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); color: var(--_theme---text); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-lg); }

.pg-contacto_form-tags { display: flex; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); }

.pg-contacto_form-textarea { padding: 0.625rem 0.75rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); color: var(--_theme---text); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-lg); min-height: 6rem; }

.pg-contacto_form-upload { padding-top: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--3); padding-left: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); border-width: 1px; border-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); text-align: center; }

.pg-contacto_form-upload_hint { display: block; margin-top: var(--_spacing---space--1); }

.pg-contacto_form-submit { align-self: flex-start; }

.pg-contacto_info { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--_spacing---space--5); padding-right: var(--site--margin); display: flex; flex-direction: column; row-gap: var(--_spacing---space--5); }

.pg-contacto_info-block { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

.pg-contacto_info-label { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 35%, transparent); margin-bottom: var(--_spacing---space--1); }

.pg-contacto_info-text { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--label-lg); font-weight: 300; color: color-mix(in srgb, var(--_theme---text) 70%, transparent); line-height: 1.6; }

.pg-contacto_info-map { width: 100%; aspect-ratio: 16 / 10; }

.pg-contacto_info-showroom { padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); border-width: 1px; border-style: dashed; border-top-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 15%, transparent); }

@media (max-width: 991px) {
  .pg-index_systems_grid { grid-template-columns: 1fr 1fr; }
  .pg-index_featured { grid-template-columns: 1fr 1fr; min-height: auto; }
  .pg-index_projects_grid { grid-template-columns: repeat(2, 1fr); }
  .pg-index_stats { grid-template-columns: repeat(2, 1fr); }
  .pg-sistemas_grid { grid-template-columns: 1fr 1fr; }
  .pg-sistema_downloads_grid { grid-template-columns: repeat(3, 1fr); }
  .pg-sistema_related_grid { grid-template-columns: repeat(2, 1fr); }
  .pg-proyectos_grid { grid-template-columns: 1fr 1fr; }
  .pg-recursos_grid { grid-template-columns: repeat(2, 1fr); }
  .pg-nosotros_hero { grid-template-columns: 1fr; }
  .pg-nosotros_hero_visual { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); min-height: 55vh; }
  .pg-nosotros_hero_text { padding-left: var(--site--margin); }
  .pg-nosotros_lab { grid-template-columns: 1fr; }
  .pg-nosotros_lab_visual { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); min-height: 45vh; }
  .pg-nosotros_lab_text { padding-left: var(--site--margin); }
  .pg-index_featured { grid-template-columns: 1fr; }
  .pg-index_featured_visual { min-height: 50vh; border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .pg-index_featured_info { padding-left: var(--site--margin); }
  .pg-sistema_overview { grid-template-columns: 1fr; min-height: auto; }
  .pg-sistema_overview_text { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .pg-sistema_overview_visual { padding-left: var(--site--margin); }
  .pg-nosotros_certs_grid { grid-template-columns: repeat(2, 1fr); }
  .pg-contacto_split { grid-template-columns: 1fr 1fr; }
  .pg-footer_grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .pg-nav_links { display: none; }
  .pg-nav_right > .gl-mono { display: none; }
  .pg-nav_right > .gl-btn_skew_wrap { display: none; }
  .pg-nav_burger { display: block; }
  .pg-nav-edge { max-width: 100vw; }
  .pg-index_hero { grid-template-columns: 1fr; }
  .pg-index_hero_media-wrap { min-height: 60svh; }
  .pg-index_hero_center { width: 86%; }
  .pg-index_hero_nav { display: none; }
  .pg-index_find_card { width: 15rem; }
  .pg-index_find_card.is-down { margin-top: var(--_spacing---space--5); }
  .gl-menu_thumbs { display: none; }
  .gl-menu_body { column-gap: 0px; }
  .pg-index_systems_grid { grid-template-columns: 1fr; }
  .pg-index_featured { grid-template-columns: 1fr; }
  .pg-index_projects_grid { grid-template-columns: 1fr; }
  .pg-index_stats { grid-template-columns: 1fr 1fr; }
  .pg-sistemas_grid { grid-template-columns: 1fr; }
  .pg-page-header_top { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--3); }
  .pg-sistema_hero { min-height: 50vh; }
  .pg-sistema_hero_media { min-height: 50vh; }
  .pg-sistema_gallery_grid { grid-template-columns: 1fr; }
  .pg-sistema_downloads_grid { grid-template-columns: 1fr; }
  .pg-sistema_related_grid { grid-template-columns: 1fr; }
  .pg-sistema_cta_inner { flex-direction: column; row-gap: var(--_spacing---space--3); text-align: center; }
  .pg-proyectos_grid { grid-template-columns: 1fr; }
  .pg-proyecto_hero { min-height: 55vh; }
  .pg-proyecto_hero_media { min-height: 55vh; }
  .pg-proyecto_hero_overlay { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--2); }
  .pg-proyecto_gallery_row { grid-template-columns: 1fr; }
  .pg-proyecto_systems_row { flex-direction: column; }
  .pg-proyecto_system-ref { width: 100%; }
  .pg-proyecto_prevnext { grid-template-columns: 1fr; }
  .pg-proyecto_prevnext_item-prev { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .pg-proyecto_prevnext_item-next { padding-left: var(--site--margin); text-align: left; }
  .pg-recursos_grid { grid-template-columns: 1fr; }
  .pg-recursos_general_item { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--2); }
  .pg-nosotros_certs_grid { grid-template-columns: 1fr 1fr; }
  .pg-contacto_split { grid-template-columns: 1fr; }
  .pg-contacto_form { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); padding-right: var(--site--margin); }
  .pg-contacto_info { padding-left: var(--site--margin); }
  .pg-contacto_form-row { grid-template-columns: 1fr; row-gap: var(--_spacing---space--3); }
  .pg-footer_grid { grid-template-columns: 1fr; }
  .pg-footer_bottom { flex-direction: column; row-gap: var(--_spacing---space--2); text-align: center; }
  .pg-footer_newsletter { flex-direction: column; row-gap: var(--_spacing---space--4); align-items: flex-start; }
  .pg-footer_newsletter-form { width: 100%; }
  .pg-footer_newsletter-input { width: auto; flex-grow: 1; flex-shrink: 1; min-width: 0px; }
  .pg-index_cta_heading { font-size: clamp(1.75rem, 7vw, 2.75rem); }
}

@media (max-width: 478px) {
  .pg-index_hero_card { left: var(--_spacing---space--3); right: var(--_spacing---space--3); bottom: var(--_spacing---space--3); max-width: none; }
  .pg-index_hero_dots { left: 50%; }
  .pg-index_stats { grid-template-columns: 1fr; }
  .pg-index_stats_item { border-right-width: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); }
  .pg-index_cta_buttons { flex-direction: column; width: 100%; }
  .pg-index_projects_header { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--4); }
  .pg-filter-bar { flex-direction: column; }
  .pg-sistema_hero { min-height: 45vh; }
  .pg-sistema_hero_media { min-height: 45vh; }
  .pg-sistema_specs_row { grid-template-columns: 1fr; row-gap: var(--_spacing---space--1); }
  .pg-sistema_swatch-block { width: 2.25rem; height: 2.25rem; }
  .pg-proyecto_hero { min-height: 45vh; }
  .pg-proyecto_hero_media { min-height: 45vh; }
  .pg-nosotros_certs_grid { grid-template-columns: 1fr; }
}

.u-sr-only { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px 0px 0px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; }

.gl-dock { position: fixed; bottom: var(--dock--bottom-offset); left: 50%; z-index: 50; opacity: 0; pointer-events: none; transform: translateX(-50%) translateY(1.5rem); transition-property: opacity, transform; transition-duration: 0.4s; transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1); }

.gl-dock.is-visible { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0px); }

.gl-dock_inner { display: flex; align-items: center; gap: var(--_spacing---space--2); padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); background-color: color-mix(in srgb, var(--swatch--dark-900) 82%, transparent); backdrop-filter: blur(14px); border-width: 1px; border-style: solid; border-top-color: var(--swatch--light-100-o20); border-right-color: var(--swatch--light-100-o20); border-bottom-color: var(--swatch--light-100-o20); border-left-color: var(--swatch--light-100-o20); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-dock_logo { display: flex; align-items: center; height: 1.125rem; padding-left: var(--_spacing---space--1); padding-right: var(--_spacing---space--2); }

.gl-dock_logo img { height: 100%; width: auto; display: block; }

.gl-dock_divider { width: 1px; align-self: stretch; background-color: color-mix(in srgb, var(--swatch--light-100) 14%, transparent); }

.gl-dock_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); text-decoration-line: none; padding: 0.375rem 0.625rem; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-dock_link:hover, .gl-dock_link:focus-visible { color: var(--swatch--light-100); }

.gl-dock_toggle { position: relative; display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.5rem; cursor: pointer; background-color: transparent; border-width: 0px; color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-dock_toggle:hover, .gl-dock_toggle:focus-visible { color: var(--swatch--light-100); }

.gl-dock_toggle_icon { display: block; width: 1rem; height: 0.625rem; background-image: linear-gradient(currentcolor, currentcolor), linear-gradient(currentcolor, currentcolor), linear-gradient(currentcolor, currentcolor); background-size: 100% 1px; background-position: 0px 0px, 0px 50%, 0px 100%; background-repeat: no-repeat; }

.gl-dock_toggle_wrap { position: relative; display: flex; align-items: center; }

.gl-dock_popover::before { content: ""; position: absolute; top: 100%; left: 0px; right: 0px; height: 1.25rem; }

.gl-dock_popover { position: absolute; bottom: calc(100% + 1.25rem); left: 50%; min-width: 12rem; display: flex; flex-direction: column; background-color: color-mix(in srgb, var(--swatch--dark-900) 92%, transparent); backdrop-filter: blur(14px); border-width: 1px; border-style: solid; border-top-color: var(--swatch--light-100-o20); border-right-color: var(--swatch--light-100-o20); border-bottom-color: var(--swatch--light-100-o20); border-left-color: var(--swatch--light-100-o20); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); opacity: 0; transform: translateX(-50%) translateY(6px); pointer-events: none; transition-property: opacity, transform; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-dock_toggle_wrap:hover .gl-dock_popover, .gl-dock_toggle_wrap:focus-within .gl-dock_popover { opacity: 1; transform: translateX(-50%) translateY(0px); pointer-events: auto; }

.gl-dock_popover_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); text-decoration-line: none; padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 6%, transparent); transition-property: color, background-color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-dock_popover_link:last-child { border-bottom-width: 0px; }

.gl-dock_popover_link:hover { color: var(--swatch--light-100); background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); }

.gl-vitrina { position: absolute; bottom: calc(100% + 0.75rem); left: 50%; transform: translateX(-50%); pointer-events: none; }

.gl-vitrina_panel { position: absolute; bottom: 0px; left: 50%; transform: translateX(-50%); background-color: color-mix(in srgb, var(--swatch--dark-900) 92%, transparent); backdrop-filter: blur(20px); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding-top: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--4); pointer-events: auto; }

.gl-vitrina_panel[data-vitrina="catalogo"] { width: 26rem; }

.gl-vitrina_panel[data-vitrina="visor"] { width: 18rem; }

.gl-vitrina_panel[data-vitrina="contacto"] { width: 20rem; }

.gl-vitrina_header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--_spacing---space--3); }

.gl-vitrina_title { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); }

.gl-vitrina_header_link { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); text-decoration-line: none; transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-vitrina_header_link:hover { color: var(--swatch--light-100); }

.gl-vitrina_cells { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; }

.gl-vitrina_cell { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); text-decoration-line: none; transition-property: background-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-vitrina_cell:hover { background-color: color-mix(in srgb, var(--swatch--light-100) 9%, transparent); }

.gl-vitrina_cell_code { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.1em; color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); }

.gl-vitrina_cell_symbol { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h4); font-weight: 300; color: var(--swatch--light-100); line-height: 1; }

.gl-vitrina_cell_name { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); }

.gl-vitrina_desc { color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); margin-bottom: var(--_spacing---space--4); }

.gl-vitrina_cta { display: inline-flex; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; color: var(--swatch--light-100); text-decoration-line: none; padding-bottom: 1px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); transition-property: border-bottom-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-vitrina_cta:hover { border-bottom-color: var(--swatch--light-100); }

.gl-vitrina_form { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.gl-vitrina_input { background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); color: var(--swatch--light-100); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.04em; padding: 0.5rem 0.625rem; outline-width: 0px; }

.gl-vitrina_input::placeholder { color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); }

.gl-vitrina_textarea { background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); color: var(--swatch--light-100); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.04em; padding: 0.5rem 0.625rem; outline-width: 0px; resize: none; }

.gl-vitrina_textarea::placeholder { color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); }

.gl-vitrina_submit { align-self: flex-start; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; color: var(--swatch--light-100); background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); padding: 0.375rem 0.75rem; cursor: pointer; transition-property: background-color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-vitrina_submit:hover { background-color: color-mix(in srgb, var(--swatch--light-100) 8%, transparent); border-top-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); }

.gl-vitrina_panel[data-vitrina="lente"] { width: 18rem; }

.gl-lp-intro { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.02em; line-height: 1.45; color: color-mix(in srgb, var(--swatch--light-100) 65%, transparent); margin-top: 0px; margin-bottom: var(--_spacing---space--3); }

.gl-lp-presets { display: grid; grid-template-columns: 1fr; row-gap: 2px; margin-bottom: var(--_spacing---space--3); max-height: 15.5rem; overflow: hidden auto; padding-right: 3px; scrollbar-width: thin; }

.gl-lp-presets::-webkit-scrollbar { width: 6px; }

.gl-lp-presets::-webkit-scrollbar-thumb { background-color: color-mix(in srgb, var(--swatch--light-100) 22%, transparent); border-radius: 3px; }

.gl-lp-preset[hidden] { display: none; }

.gl-lp-filterbar { display: flex; flex-direction: column; row-gap: 0.4rem; margin-bottom: 0.5rem; }

.gl-lp-search { width: 100%; box-sizing: border-box; padding: 0.4rem 0.55rem; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.04em; color: var(--swatch--light-100); background-color: color-mix(in srgb, var(--swatch--dark-900) 65%, transparent); border-width: 1px; border-style: solid; border-color: color-mix(in srgb, var(--swatch--light-100) 14%, transparent); border-radius: 6px; outline: none; }

.gl-lp-search::placeholder { color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); text-transform: none; }

.gl-lp-search:focus { border-color: var(--swatch--brand-500); }

.gl-lp-cats { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.gl-lp-cat { padding: 0.2rem 0.5rem; font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 55%, transparent); background-color: transparent; border-width: 1px; border-style: solid; border-color: color-mix(in srgb, var(--swatch--light-100) 16%, transparent); border-radius: 999px; cursor: pointer; transition-property: color, background-color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lp-cat:hover { color: var(--swatch--light-100); }

.gl-lp-cat.is-active { color: var(--swatch--dark-900); background-color: var(--swatch--brand-500); border-color: var(--swatch--brand-500); }

.gl-lp-empty { padding: 0.7rem; text-align: center; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); }

.gl-lp-empty[hidden] { display: none; }

.gl-lp-preset { width: 100%; justify-content: flex-start; }

.gl-lp-preset .gl-le-preset-name { font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.06em; text-transform: none; }

.gl-lp-spawn-wrap { display: flex; width: 100%; }

.gl-lp-spawn-wrap .gl-btn_skew_element { width: 100%; justify-content: center; }

.gl-lente_select-wrap { position: relative; margin-bottom: var(--_spacing---space--3); }

.gl-lente_select-trigger { display: flex; align-items: center; column-gap: 0.5rem; width: 100%; background-color: color-mix(in srgb, var(--swatch--light-100) 5%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); padding: 0.5rem 0.625rem; cursor: pointer; text-align: left; }

.gl-lente_select-trigger:hover { border-top-color: color-mix(in srgb, var(--swatch--light-100) 28%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 28%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 28%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 28%, transparent); }

.gl-lente_select-arrow { font-size: 0.5rem; color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); margin-left: auto; }

.gl-lente_dropdown { position: absolute; bottom: calc(100% + 4px); left: 0px; right: 0px; background-color: color-mix(in srgb, var(--swatch--dark-900) 95%, transparent); backdrop-filter: blur(20px); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); max-height: 12rem; overflow-y: auto; z-index: 10; display: none; }

.gl-lente_dropdown.is-open { display: block; }

.gl-lente_dropdown.opens-down { bottom: auto; top: calc(100% + 4px); }

.gl-lente_opt { display: flex; align-items: center; column-gap: 0.5rem; padding: 0.375rem 0.625rem; cursor: pointer; transition-property: background-color; transition-duration: 0.1s; transition-timing-function: ease; }

.gl-lente_opt:hover { background-color: color-mix(in srgb, var(--swatch--light-100) 7%, transparent); }

.gl-lente_opt-dot { width: 0.625rem; height: 0.625rem; min-width: 0.625rem; border-radius: 50%; display: block; }

.gl-lente_opt-name { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.06em; color: var(--swatch--light-100); flex-shrink: 0; }

.gl-lente_opt-sub { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); margin-left: auto; }

.gl-lente_section-label { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); margin-bottom: var(--_spacing---space--1); }

.gl-lente_swatches { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: var(--_spacing---space--3); }

.gl-lente_swatch { width: 1.125rem; height: 1.125rem; border-radius: 50%; cursor: pointer; border-width: 1px; border-style: solid; border-color: rgba(255, 255, 255, 0.12); transition-property: transform, border-color; transition-duration: 0.12s; transition-timing-function: ease; }

.gl-lente_swatch:hover { transform: scale(1.2); }

.gl-lente_swatch.is-active { border-color: rgba(255, 255, 255, 0.7); transform: scale(1.15); }

.gl-lente_controls { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); margin-bottom: var(--_spacing---space--4); }

.gl-lente_control { display: flex; flex-direction: column; row-gap: 4px; }

.gl-lente_control-row { display: flex; justify-content: space-between; align-items: baseline; }

.gl-lente_label { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); }

.gl-lente_val { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); }

.gl-lente_slider { appearance: none; width: 100%; height: 2px; background-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); outline-width: 0px; cursor: pointer; }

.gl-lente_slider::-webkit-slider-thumb { appearance: none; width: 10px; height: 10px; border-radius: 50%; background-color: var(--swatch--light-100); cursor: pointer; }

.gl-lente_launch-btn { width: 100%; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.12em; text-transform: uppercase; color: var(--swatch--light-100); background-color: color-mix(in srgb, var(--swatch--light-100) 8%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 25%, transparent); padding: 0.625rem 0.75rem; cursor: pointer; transition-property: background-color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente_launch-btn:hover { background-color: color-mix(in srgb, var(--swatch--light-100) 15%, transparent); border-top-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); }

.gl-lente_swatch--grad, .gl-lente-editor_swatch--grad { width: 2rem; height: 1.125rem; }

.gl-lente_grad-input, .gl-lente-editor_grad-input { width: 100%; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); color: var(--swatch--light-100); font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.04em; padding: 0.375rem 0.5rem; outline-width: 0px; margin-top: 0.375rem; margin-bottom: var(--_spacing---space--2); }

.gl-lente_grad-input::placeholder, .gl-lente-editor_grad-input::placeholder { color: color-mix(in srgb, var(--swatch--light-100) 28%, transparent); }

.gl-lente_launch-wrap, .gl-lente-editor_launch-wrap { position: relative; width: 100%; margin-top: var(--_spacing---space--1); color: var(--swatch--light-100); }

.gl-lente-editor_launch-wrap .gl-btn_skew_element, .gl-lente_launch-wrap .gl-btn_skew_element { width: 100%; justify-content: center; }

.gl-lente-canvas { position: fixed; inset: 0px; z-index: 198; pointer-events: none; }

.gl-lente-overlay { position: absolute; inset: 0px; background-color: rgba(0, 0, 0, 0.14); opacity: 0; pointer-events: auto; }

.gl-lente-circle { position: absolute; border-radius: 20px; cursor: grab; pointer-events: auto; box-shadow: rgba(255, 255, 255, 0.04) -16px -16px 32px, rgba(0, 0, 0, 0.88) 16px 16px 40px, rgba(0, 0, 0, 0.65) 0px 6px 20px, rgba(255, 255, 255, 0.06) 0px 0px 0px 1px; }

.gl-lente-base, .gl-lente-glass, .gl-lente-tint, .gl-lente-extra-tint, .gl-lente-specular, .gl-lente-light, .gl-lente-ring { position: absolute; inset: 0px; border-radius: 20px; pointer-events: none; }

.gl-lente-canvas-view { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; pointer-events: none; z-index: 0; opacity: 0; }

.gl-lente-editor_refresh { width: 100%; background-color: transparent; border-width: 0px; color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; padding-top: 0.375rem; padding-bottom: 0.375rem; text-align: center; transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-editor_refresh:hover { color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); }

.gl-lente-ring { position: absolute; inset: 0px; border-radius: 20px; pointer-events: none; }

.gl-lente-base { z-index: 0; }

.gl-lente-glass { z-index: 1; }

.gl-lente-layer.is-reeded::after { content: ""; position: absolute; inset: 0px; pointer-events: none; z-index: 6; border-radius: inherit; background-image: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.1) 0px, rgba(255, 255, 255, 0.05) 4px, rgba(255, 255, 255, 0.14) 6.5px, rgba(255, 255, 255, 0.05) 9px, rgba(0, 0, 0, 0.1) 13px); mix-blend-mode: soft-light; }

.gl-lente-layer.is-reeded-deep::after { background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0) 0px, rgba(255, 255, 255, 0.16) 3px, rgba(255, 255, 255, 0.3) 6.5px, rgba(0, 0, 0, 0.12) 9.5px, rgba(255, 255, 255, 0) 13px); }

.gl-lente-tint { z-index: 2; }

.gl-lente-skin { position: absolute; inset: -21%; pointer-events: none; z-index: 4; opacity: 0; background-repeat: repeat; background-position: center center; transform: rotate(var(--lente-pattern-rotation, 0deg)); transform-origin: center center; transition-property: opacity; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-le-skin-row { margin-top: var(--_spacing---space--2); margin-bottom: var(--_spacing---space--1); }

.gl-le-skin-label { display: flex; align-items: center; justify-content: space-between; column-gap: 0.6rem; width: 100%; font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); cursor: pointer; user-select: none; transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-le-skin-label:hover { color: var(--swatch--light-100); }

.gl-le-skin-label input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.gl-le-skin-switch { position: relative; flex-shrink: 0; width: 1.7rem; height: 0.85rem; border-radius: 999px; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); transition-property: background-color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-le-skin-switch::after { content: ""; position: absolute; top: 1px; left: 1px; width: 0.6rem; height: 0.6rem; border-radius: 50%; background-color: color-mix(in srgb, var(--swatch--light-100) 55%, transparent); transition-property: transform, background-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-le-skin-label input:checked ~ .gl-le-skin-switch { background-color: color-mix(in srgb, var(--swatch--brand-500) 28%, transparent); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-le-skin-label input:checked ~ .gl-le-skin-switch::after { transform: translateX(0.82rem); background-color: var(--swatch--brand-500); }

.gl-lente-refract { position: absolute; inset: -20px; z-index: 3; pointer-events: none; opacity: 0; background-image: linear-gradient(145deg, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0.08) 18%, transparent 40%), linear-gradient(325deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.04) 22%, transparent 45%), radial-gradient(at 30% 25%, rgba(255, 255, 255, 0.14) 0%, transparent 55%); filter: url("#gl-lente-texture"); }

.gl-lente-edge-bd { position: absolute; inset: 0px; z-index: 3; pointer-events: none; opacity: 0; mask-image: linear-gradient(black 0%, transparent 18%), linear-gradient(to top, black 0%, transparent 15%), linear-gradient(to right, black 0%, transparent 14%), linear-gradient(to left, black 0%, transparent 13%); mask-composite: add; }

.gl-lente-edge { position: absolute; inset: 0px; z-index: 4; pointer-events: none; opacity: 0; mix-blend-mode: screen; background-image: linear-gradient(rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.18) 3%, rgba(255, 255, 255, 0.04) 8%, transparent 18%), linear-gradient(to right, rgba(255, 255, 255, 0.38) 0%, rgba(255, 255, 255, 0.1) 3%, rgba(255, 255, 255, 0.02) 7%, transparent 15%), linear-gradient(to top, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0.05) 3%, transparent 10%), linear-gradient(to left, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0.04) 3%, transparent 9%), radial-gradient(60% 50% at 0% 0%, rgba(255, 255, 255, 0.45) 0%, rgba(255, 255, 255, 0.14) 22%, transparent 52%), radial-gradient(40% 35% at 100% 0%, rgba(255, 255, 255, 0.18) 0%, transparent 45%), radial-gradient(40% 35% at 0% 100%, rgba(255, 255, 255, 0.14) 0%, transparent 42%), radial-gradient(30% 25% at 100% 100%, rgba(255, 255, 255, 0.1) 0%, transparent 38%); }

.gl-lente-specular { z-index: 6; overflow: hidden; }

.gl-lente-light { z-index: 5; background-image: radial-gradient(at 40% 35%, rgba(255, 215, 100, 0.65) 0%, rgba(255, 165, 40, 0.3) 45%, transparent 75%); mix-blend-mode: screen; opacity: 0; }

.gl-lente-ring { z-index: 6; box-shadow: rgba(255, 255, 255, 0.55) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.45) 1px 1px 0px inset, rgba(0, 0, 0, 0.35) -1px -1px 0px inset, rgba(0, 0, 0, 0.28) 0px 0px 18px inset, rgba(0, 0, 0, 0.18) 0px 0px 6px inset; }

.gl-lente-specular::before { content: ""; position: absolute; top: 0px; left: 0px; width: 65%; height: 45%; background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.28) 28%, rgba(255, 255, 255, 0.06) 55%, transparent 72%); filter: blur(4px); mix-blend-mode: screen; border-top-left-radius: 20px; }

.gl-lente-close { position: absolute; z-index: 220; width: 1.5rem; height: 1.5rem; border-radius: 50%; background-color: rgba(0, 0, 0, 0.62); border-width: 1px; border-style: solid; border-color: rgba(255, 255, 255, 0.22); color: rgba(255, 255, 255, 0.78); font-size: 0.5rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition-property: background-color; transition-duration: 0.15s; transition-timing-function: ease; pointer-events: auto; }

.gl-lente-close:hover { background-color: rgba(0, 0, 0, 0.88); }

.gl-lente-glass--tx-noise::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.5  0 0 0 0 0.5  0 0 0 0 0.5  0 0 0 0.65 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); background-size: calc(160px * var(--lente-scale, 1)) calc(160px * var(--lente-scale, 1)); opacity: 0.7; }

.gl-lente-glass--tx-linen::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='l'><feTurbulence type='turbulence' baseFrequency='0.04 0.7' numOctaves='2' seed='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.65  0 0 0 0 0.6  0 0 0 0 0.52  0 0 0 0.5 0'/></filter><filter id='l2'><feTurbulence type='turbulence' baseFrequency='0.7 0.04' numOctaves='2' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.55  0 0 0 0 0.5  0 0 0 0 0.42  0 0 0 0.45 0'/></filter><rect width='100%25' height='100%25' filter='url(%23l)'/><rect width='100%25' height='100%25' filter='url(%23l2)' style='mix-blend-mode:multiply'/></svg>"); background-size: calc(220px * var(--lente-scale, 1)) calc(220px * var(--lente-scale, 1)); opacity: 0.75; }

.gl-lente-glass--tx-leather::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='c'><feTurbulence type='fractalNoise' baseFrequency='0.025' numOctaves='3' seed='11' stitchTiles='stitch'/><feDisplacementMap in='SourceGraphic' scale='10'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.3  0 0 0 0 0.22  0 0 0 1 0'/></filter><filter id='c2'><feTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.2  0 0 0 0 0.13  0 0 0 0 0.08  0 0 0 0.4 0'/></filter><rect width='100%25' height='100%25' filter='url(%23c)'/><rect width='100%25' height='100%25' filter='url(%23c2)' style='mix-blend-mode:multiply'/></svg>"); background-size: calc(260px * var(--lente-scale, 1)) calc(260px * var(--lente-scale, 1)); opacity: 0.72; }

.gl-lente-glass--tx-marble::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='m'><feTurbulence type='turbulence' baseFrequency='0.012' numOctaves='3' seed='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.92  0 0 0 0 0.9  0 0 0 0 0.86  0 0 0 4 -2'/></filter><filter id='m2'><feTurbulence type='turbulence' baseFrequency='0.045' numOctaves='2' seed='6' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.6  0 0 0 0 0.55  0 0 0 0 0.48  0 0 0 0.25 0'/></filter><rect width='100%25' height='100%25' fill='%23dcd6cd'/><rect width='100%25' height='100%25' filter='url(%23m)'/><rect width='100%25' height='100%25' filter='url(%23m2)' style='mix-blend-mode:multiply'/></svg>"); background-size: calc(320px * var(--lente-scale, 1)) calc(320px * var(--lente-scale, 1)); opacity: 0.7; }

.gl-lente-glass--tx-eva-w::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='ew'><feTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='2' seed='17' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.96  0 0 0 0 0.95  0 0 0 0 0.92  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' fill='%23f1ebe0'/><rect width='100%25' height='100%25' filter='url(%23ew)'/></svg>"); background-size: calc(220px * var(--lente-scale, 1)) calc(220px * var(--lente-scale, 1)); opacity: 0.95; }

.gl-lente-glass--tx-eva-k::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='ek'><feTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='2' seed='21' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.15  0 0 0 0 0.14  0 0 0 0 0.13  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' fill='%2316151a'/><rect width='100%25' height='100%25' filter='url(%23ek)'/></svg>"); background-size: calc(220px * var(--lente-scale, 1)) calc(220px * var(--lente-scale, 1)); opacity: 0.92; }

.gl-lente-glass--tx-velvet::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='v'><feTurbulence type='turbulence' baseFrequency='1.5 0.05' numOctaves='3' seed='9' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.25  0 0 0 0 0.15  0 0 0 0 0.18  0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' fill='%23231424'/><rect width='100%25' height='100%25' filter='url(%23v)' style='transform:rotate(30deg);transform-origin:center'/></svg>"); background-size: calc(260px * var(--lente-scale, 1)) calc(260px * var(--lente-scale, 1)); opacity: 0.85; }

.gl-lente-glass--tx-concrete::after { content: ""; position: absolute; inset: 0px; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='h'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' seed='9' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.6  0 0 0 0 0.58  0 0 0 0 0.55  0 0 0 0.7 0'/></filter><filter id='h2'><feTurbulence type='fractalNoise' baseFrequency='0.05' numOctaves='3' seed='13' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.34  0 0 0 0 0.32  0 0 0 0.3 0'/></filter><rect width='100%25' height='100%25' filter='url(%23h)'/><rect width='100%25' height='100%25' filter='url(%23h2)' style='mix-blend-mode:multiply'/></svg>"); background-size: calc(180px * var(--lente-scale, 1)) calc(180px * var(--lente-scale, 1)); opacity: 0.78; }

.gl-lente-glass--ve::after { content: ""; position: absolute; inset: 0px; background-image: radial-gradient(circle, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0.06) 70%, rgba(255, 255, 255, 0.02) 100%); pointer-events: none; }

.gl-lente-glass--va::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(90deg,
    transparent 0px,
    transparent calc((7px - 2px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* leading shadow edge — glass refraction, softer than metal */
    rgba(8,14,22,0.22)    calc((7px - 2px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* bright specular at ~1/3 — glass collects more light than metal */
    rgba(255,255,255,0.42) calc((7px - 1.4px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* mid body — slightly transparent because light passes through */
    rgba(255,255,255,0.12) calc((7px - 0.8px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* trailing shadow edge */
    rgba(0,0,0,0.18)       calc(7px * var(--lente-scale, 1)),
    transparent calc(7px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-glass--vd::after { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.1) 25%, transparent 25%, transparent 75%, rgba(255, 255, 255, 0.1) 75%), linear-gradient(45deg, rgba(255, 255, 255, 0.1) 25%, transparent 25%, transparent 75%, rgba(255, 255, 255, 0.1) 75%), linear-gradient(45deg, rgba(0, 0, 0, 0.07) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.07) 75%); background-size: calc(20px * var(--lente-scale,1)) calc(20px * var(--lente-scale,1)), calc(20px * var(--lente-scale,1)) calc(20px * var(--lente-scale,1)), calc(10px * var(--lente-scale,1)) calc(10px * var(--lente-scale,1)); background-position: 0 0, calc(10px * var(--lente-scale,1)) calc(10px * var(--lente-scale,1)), calc(5px * var(--lente-scale,1)) calc(5px * var(--lente-scale,1)); pointer-events: none; }

.gl-lente-glass--gra::before { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(to right, transparent 0%, rgba(255, 255, 255, 0) 22%, rgba(255, 255, 255, 0.09) 52%, rgba(255, 255, 255, 0.22) 82%, rgba(255, 255, 255, 0.3) 100%); pointer-events: none; }

.gl-lente-glass--gra::after { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(to right, transparent 38%, rgba(255, 255, 255, 0.06) 68%); filter: blur(5px); pointer-events: none; }

.gl-lente-glass--ds::before { content: ""; position: absolute; inset: 0px; background-image: conic-gradient(at 42% 42%, rgba(255, 75, 0, 0.7), rgba(255, 215, 0, 0.65), rgba(160, 255, 60, 0.6), rgba(0, 220, 255, 0.65), rgba(110, 0, 255, 0.65), rgba(255, 0, 155, 0.7), rgba(255, 75, 0, 0.7)); mix-blend-mode: screen; filter: blur(1.5px); animation-name: gl-lente-shimmer; animation-duration: 3.5s; animation-timing-function: linear; animation-iteration-count: infinite; pointer-events: none; }

.gl-lente-glass--ds::after { content: ""; position: absolute; inset: 0px; background-image: radial-gradient(at 60% 65%, rgba(255, 145, 0, 0.32) 0%, rgba(0, 195, 255, 0.3) 42%, rgba(165, 0, 255, 0.3) 80%, transparent 100%); mix-blend-mode: overlay; animation-name: gl-lente-shimmer; animation-duration: 60s; animation-timing-function: linear; animation-iteration-count: infinite; animation-direction: reverse; pointer-events: none; }

.gl-lente-glass--in::after { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(172deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.05) 100%); pointer-events: none; }

.gl-lente-glass--iml::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(0deg,
    rgba(12,16,20,0.42) 0px,
    rgba(12,16,20,0.42) calc(2px * var(--lente-pattern-thickness-mult, 1) * var(--lente-scale, 1)),
    transparent calc(2px * var(--lente-pattern-thickness-mult, 1) * var(--lente-scale, 1)),
    transparent calc(10px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-glass--ac::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(0deg,
      transparent 0px,
      transparent calc((15px - 2px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(42,52,68,0.85)    calc((15px - 2px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(230,240,250,0.92) calc((15px - 1.4px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(158,170,188,0.85) calc((15px - 0.8px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(30,38,50,0.9)     calc(15px * var(--lente-scale, 1)),
      transparent calc(15px * var(--lente-scale, 1))),
    /* Vertical wires (slightly darker so intersections darken via stacking) */
    repeating-linear-gradient(90deg,
      transparent 0px,
      transparent calc((15px - 2px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(35,42,55,0.85)    calc((15px - 2px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(215,225,238,0.88) calc((15px - 1.4px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(148,160,175,0.82) calc((15px - 0.8px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(22,28,38,0.92)    calc(15px * var(--lente-scale, 1)),
      transparent calc(15px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-glass--at::before { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(90deg,
    transparent 0px,
    transparent calc((5px - 1.5px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* leading dark edge */
    rgba(40,48,60,0.85)    calc((5px - 1.5px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* bright specular highlight ~1/3 across the wire */
    rgba(238,248,255,0.95) calc((5px - 1.05px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* mid body */
    rgba(165,178,195,0.88) calc((5px - 0.6px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* trailing dark edge — slightly darker than leading for asymmetric lighting */
    rgba(28,34,44,0.92)    calc(5px * var(--lente-scale, 1)),
    transparent calc(5px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-glass--at::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(0deg,
    transparent 0px,
    transparent calc((5px - 1.5px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(35,42,52,0.85)    calc((5px - 1.5px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(218,228,240,0.9)  calc((5px - 1.05px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(150,162,178,0.85) calc((5px - 0.6px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(22,28,36,0.9)     calc(5px * var(--lente-scale, 1)),
    transparent calc(5px * var(--lente-scale, 1))); mix-blend-mode: multiply; pointer-events: none; }

.gl-lente-glass--vmp::after { content: ""; position: absolute; inset: 0px; background-image: radial-gradient(circle,
    transparent calc(28% * var(--lente-pattern-thickness-mult, 1)),
    rgba(155, 165, 180, 0.62) calc(30% * var(--lente-pattern-thickness-mult, 1))); background-size: calc(6px * var(--lente-scale, 1)) calc(6px * var(--lente-scale, 1)); background-repeat: repeat; pointer-events: none; }

.gl-lente-glass--bq::after { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(30deg, rgba(255, 255, 255, 0.11) 12%, transparent 12.5%, transparent 87%, rgba(255, 255, 255, 0.11) 87.5%, rgba(255, 255, 255, 0.11)), linear-gradient(150deg, rgba(255, 255, 255, 0.11) 12%, transparent 12.5%, transparent 87%, rgba(255, 255, 255, 0.11) 87.5%, rgba(255, 255, 255, 0.11)), linear-gradient(30deg, rgba(0, 0, 0, 0) 12%, transparent 12.5%, transparent 87%, rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 0)), linear-gradient(150deg, rgba(0, 0, 0, 0) 12%, transparent 12.5%, transparent 87%, rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 0)), linear-gradient(60deg, rgba(0, 0, 0, 0.15) 25%, transparent 25.5%, transparent 75%, rgba(0, 0, 0, 0.15) 75%, rgba(0, 0, 0, 0.15)), linear-gradient(60deg, rgba(0, 0, 0, 0.15) 25%, transparent 25.5%, transparent 75%, rgba(0, 0, 0, 0.15) 75%, rgba(0, 0, 0, 0.15)); background-size: calc(20px * var(--lente-scale,1)) calc(35px * var(--lente-scale,1)); background-position: 0 0, 0 0, calc(10px * var(--lente-scale,1)) calc(18px * var(--lente-scale,1)), calc(10px * var(--lente-scale,1)) calc(18px * var(--lente-scale,1)), 0 0, calc(10px * var(--lente-scale,1)) calc(18px * var(--lente-scale,1)); pointer-events: none; }

.gl-lente-glass--sz::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(60deg,
      transparent 0px,
      transparent calc((8px - 2px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(40,48,60,0.82)    calc((8px - 2px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(232,242,252,0.92) calc((8px - 1.4px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(160,172,188,0.85) calc((8px - 0.8px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(28,34,44,0.9)     calc(8px * var(--lente-scale, 1)),
      transparent calc(8px * var(--lente-scale, 1))),
    repeating-linear-gradient(-60deg,
      transparent 0px,
      transparent calc((8px - 2px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(34,42,55,0.8)     calc((8px - 2px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(215,225,238,0.88) calc((8px - 1.4px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(148,160,175,0.82) calc((8px - 0.8px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(22,28,38,0.9)     calc(8px * var(--lente-scale, 1)),
      transparent calc(8px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-glass--sh::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(45deg,
      transparent 0px,
      transparent calc((6px - 1.5px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(38,46,60,0.82)    calc((6px - 1.5px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(235,245,255,0.92) calc((6px - 1.05px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(160,172,188,0.85) calc((6px - 0.6px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
      rgba(26,32,42,0.9)     calc(6px * var(--lente-scale, 1)),
      transparent calc(6px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-glass--sbl::after { content: ""; position: absolute; inset: 0px; background-image: repeating-linear-gradient(0deg,
    transparent 0px,
    transparent calc((12px - 2px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* wire 1 — leading edge → highlight → trailing edge */
    rgba(30,38,50,0.85)    calc((12px - 2px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(232,242,252,0.9)  calc((12px - 1.5px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(28,34,44,0.85)    calc((12px - 1px   * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    transparent calc((12px - 1px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    transparent calc((12px - 0.5px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    /* wire 2 */
    rgba(30,38,50,0.85)    calc((12px - 0.5px  * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(225,235,245,0.88) calc((12px - 0.25px * var(--lente-pattern-thickness-mult, 1)) * var(--lente-scale, 1)),
    rgba(28,34,44,0.85)    calc(12px * var(--lente-scale, 1)),
    transparent calc(12px * var(--lente-scale, 1))); pointer-events: none; }

.gl-lente-shine { position: absolute; inset: 0px; pointer-events: none; opacity: var(--lente-pattern-shine, 0); mix-blend-mode: plus-lighter; background-image: linear-gradient(
      var(--lente-pattern-shine-angle, 25deg),
      transparent 18%,
      rgba(255, 255, 255, 0) 30%,
      rgba(255, 255, 255, 1) 50%,
      rgba(255, 255, 255, 0) 70%,
      transparent 82%
    ),
    /* perpendicular cross-band — widened, brighter peak */
    linear-gradient(
      calc(var(--lente-pattern-shine-angle, 25deg) + 78deg),
      transparent 30%,
      rgba(255, 255, 255, 0) 40%,
      rgba(255, 255, 255, 0.95) 50%,
      rgba(255, 255, 255, 0) 60%,
      transparent 70%
    ),
    /* primary radial hotspot — bigger ellipse, full white peak */
    radial-gradient(
      ellipse 75% 55% at 30% 25%,
      rgba(255, 255, 255, 1) 0%,
      rgba(255, 255, 255, 0) 75%
    ),
    /* secondary radial hotspot — enlarged */
    radial-gradient(
      ellipse 48% 36% at 78% 72%,
      rgba(255, 255, 255, 0.9) 0%,
      rgba(255, 255, 255, 0) 75%
    ),
    /* third small hotspot at 62%/35% — breaks symmetry, adds sparkle */
    radial-gradient(
      ellipse 22% 18% at 62% 35%,
      rgba(255, 255, 255, 0.85) 0%,
      rgba(255, 255, 255, 0) 70%
    ); }

.gl-lente-glass--va::before, .gl-lente-glass--va::after, .gl-lente-glass--vd::before, .gl-lente-glass--vd::after, .gl-lente-glass--iml::before, .gl-lente-glass--iml::after, .gl-lente-glass--ac::before, .gl-lente-glass--ac::after, .gl-lente-glass--at::before, .gl-lente-glass--at::after, .gl-lente-glass--bq::before, .gl-lente-glass--bq::after, .gl-lente-glass--vmp::before, .gl-lente-glass--vmp::after, .gl-lente-glass--sz::before, .gl-lente-glass--sz::after, .gl-lente-glass--sh::before, .gl-lente-glass--sh::after, .gl-lente-glass--sbl::before, .gl-lente-glass--sbl::after { inset: -21%; transform: rotate(var(--lente-pattern-rotation, 0deg)); transform-origin: center center; filter: drop-shadow(0
      calc(var(--lente-pattern-depth, 0) * 3px)
      calc(var(--lente-pattern-depth, 0) * 5px)
      rgba(0, 0, 0, calc(var(--lente-pattern-depth, 0) * 0.55))); }

.gl-lente-glass--ec::before { content: ""; position: absolute; top: -10%; left: -30%; width: 150%; height: 120%; background-image: linear-gradient(118deg, transparent 28%, rgba(255, 255, 255, 0.06) 36%, rgba(255, 255, 255, 0.58) 46%, rgba(255, 255, 255, 0.32) 52%, rgba(255, 255, 255, 0.05) 62%, transparent 72%); animation-name: gl-lente-mirror-sweep; animation-duration: 4s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; pointer-events: none; }

.gl-lente-glass--ec::after { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(148deg, rgba(238, 248, 255, 0.12) 0%, rgba(208, 228, 245, 0.06) 42%, rgba(248, 252, 255, 0.14) 72%, rgba(196, 220, 238, 0.07) 100%); pointer-events: none; }

.gl-lente-glass--eb::before { content: ""; position: absolute; top: -10%; left: -30%; width: 150%; height: 120%; background-image: linear-gradient(118deg, transparent 28%, rgba(210, 175, 48, 0.07) 36%, rgba(255, 220, 88, 0.54) 46%, rgba(225, 185, 58, 0.3) 52%, rgba(178, 138, 32, 0.05) 62%, transparent 72%); animation-name: gl-lente-mirror-sweep; animation-duration: 5.2s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; pointer-events: none; }

.gl-lente-glass--eb::after { content: ""; position: absolute; inset: 0px; background-image: linear-gradient(148deg, rgba(198, 152, 36, 0.12) 0%, rgba(168, 122, 26, 0.06) 42%, rgba(228, 188, 60, 0.14) 72%, rgba(158, 118, 20, 0.07) 100%); pointer-events: none; }

.gl-lente-glass--ep::before { content: ""; position: absolute; inset: 0px; background-image: conic-gradient(rgba(255, 0, 175, 0.78), rgba(255, 220, 0, 0.72), rgba(0, 255, 140, 0.72), rgba(0, 115, 255, 0.76), rgba(215, 0, 255, 0.74), rgba(255, 0, 175, 0.78)); mix-blend-mode: screen; filter: blur(0.5px); animation-name: gl-lente-shimmer; animation-duration: 2.5s; animation-timing-function: linear; animation-iteration-count: infinite; pointer-events: none; }

.gl-lente-glass--ep::after { content: ""; position: absolute; top: -10%; left: -30%; width: 150%; height: 120%; background-image: linear-gradient(118deg, transparent 32%, rgba(255, 255, 255, 0.48) 44%, rgba(255, 255, 255, 0.22) 52%, transparent 66%); mix-blend-mode: screen; animation-name: gl-lente-mirror-sweep; animation-duration: 3s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; pointer-events: none; }

.gl-lente-editor { position: fixed; z-index: 220; width: 19.5rem; background-color: color-mix(in srgb, var(--swatch--dark-900) 92%, transparent); backdrop-filter: blur(20px); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding-top: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--4); pointer-events: auto; }

.gl-le-presets-header { margin-bottom: var(--_spacing---space--1); }

.gl-le-presets-row { display: flex; column-gap: 4px; overflow: auto hidden; margin-bottom: var(--_spacing---space--2); padding-bottom: 4px; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent) transparent; }

.gl-le-presets-row::-webkit-scrollbar { height: 4px; }

.gl-le-presets-row::-webkit-scrollbar-thumb { background-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); }

.gl-le-preset { flex: 0 0 auto; display: flex; align-items: center; column-gap: 0.4rem; padding: 0.4rem 0.55rem; background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); cursor: pointer; white-space: nowrap; transition-property: background-color, border-color, color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-le-preset:hover { background-color: color-mix(in srgb, var(--swatch--brand-500) 18%, transparent); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); position: relative; z-index: 1; }

.gl-le-preset-dot { width: 0.75rem; height: 0.75rem; flex-shrink: 0; border-radius: 50%; }

.gl-le-preset-name { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--swatch--light-100); }

.gl-le-layers-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--_spacing---space--1); }

.gl-le-add-layer { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding: 0.3rem 0.6rem; cursor: pointer; transition-property: color, border-color, background-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-le-add-layer:hover { color: var(--swatch--light-100); border-top-color: var(--swatch--light-100); border-right-color: var(--swatch--light-100); border-bottom-color: var(--swatch--light-100); border-left-color: var(--swatch--light-100); }

.gl-le-layers-list { display: flex; flex-direction: column; row-gap: 2px; margin-bottom: var(--_spacing---space--2); }

.gl-le-layer { display: flex; align-items: center; column-gap: 0.4rem; padding: 0.35rem 0.3rem 0.35rem 0.5rem; cursor: pointer; background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); border-width: 1px; border-style: solid; border-color: transparent; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); transition-property: background-color, border-color; transition-duration: 0.12s; transition-timing-function: ease; position: relative; }

.gl-le-layer:hover { background-color: color-mix(in srgb, var(--swatch--light-100) 8%, transparent); }

.gl-le-layer.is-active { background-color: color-mix(in srgb, var(--swatch--brand-500) 12%, transparent); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-le-layer.is-dragging { opacity: 0.4; }

.gl-le-layer.is-drag-over { border-top-color: var(--swatch--brand-500); background-color: color-mix(in srgb, var(--swatch--brand-500) 20%, transparent); }

.gl-le-layer-name { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.06em; color: var(--swatch--light-100); flex: 1 1 0%; min-width: 0px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.gl-le-layer-opacity { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); flex-shrink: 0; }

.gl-le-layer-reorder { display: none; flex-direction: column; row-gap: 1px; flex-shrink: 0; margin-right: 0.15rem; }

.gl-le-layer:hover .gl-le-layer-reorder { display: flex; }

.gl-le-layer-arrow { width: 0.9rem; height: 0.7rem; background-color: transparent; border-width: 0px; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); cursor: pointer; font-size: 0.6rem; line-height: 1; padding: 0px; display: flex; align-items: center; justify-content: center; transition-property: color, background-color; transition-duration: 0.12s; transition-timing-function: ease; }

.gl-le-layer-arrow:hover { color: var(--swatch--light-100); background-color: color-mix(in srgb, var(--swatch--light-100) 12%, transparent); }

.gl-le-layer-arrow[disabled] { opacity: 0.3; cursor: not-allowed; }

.gl-le-layer-grip { flex-shrink: 0; width: 0.625rem; height: 0.7rem; cursor: grab; color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); font-size: 0.7rem; line-height: 1; display: none; align-items: center; justify-content: center; }

.gl-le-layer:hover .gl-le-layer-grip { display: flex; }

.gl-le-layer-grip:active { cursor: grabbing; }

.gl-le-layer-del { background-color: transparent; border-width: 0px; color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); font-size: 0.55rem; cursor: pointer; padding: 0px 0.3rem; transition-property: color; transition-duration: 0.12s; transition-timing-function: ease; flex-shrink: 0; }

.gl-le-layer-del:hover { color: rgb(255, 80, 80); }

.gl-lente-layer .gl-lente-glass, .gl-lente-layer .gl-lente-tint { position: absolute; inset: 0px; border-radius: 20px; pointer-events: none; transition-property: background-color, background-image, opacity; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-layer .gl-lente-refract { position: absolute; inset: -20px; pointer-events: none; }

.gl-lente-layer .gl-lente-edge-bd { position: absolute; inset: 0px; opacity: 0; }

.gl-lente-layer .gl-lente-edge { position: absolute; inset: 0px; pointer-events: none; }

.gl-lente-editor_dismiss { position: absolute; top: 0.5rem; right: 0.5rem; width: 1.375rem; height: 1.375rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); font-size: 0.55rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition-property: background-color, color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-editor_dismiss:hover { background-color: var(--swatch--light-100); color: var(--swatch--dark-900); border-top-color: var(--swatch--light-100); border-right-color: var(--swatch--light-100); border-bottom-color: var(--swatch--light-100); border-left-color: var(--swatch--light-100); }

.gl-lente-editor_delete { position: absolute; top: 0.5rem; right: 2.05rem; width: 1.375rem; height: 1.375rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); cursor: pointer; display: flex; align-items: center; justify-content: center; transition-property: background-color, color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-editor_delete svg { width: 0.7rem; height: 0.7rem; display: block; }

.gl-lente-editor_delete:hover { background-color: rgb(255, 48, 48); color: var(--swatch--light-100); border-color: rgb(255, 48, 48); }

.gl-lente-editor_clear-all { position: absolute; top: 0.5rem; right: 3.6rem; width: 1.375rem; height: 1.375rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); cursor: pointer; display: flex; align-items: center; justify-content: center; transition-property: background-color, color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-editor_clear-all svg { width: 0.7rem; height: 0.7rem; display: block; }

.gl-lente-editor_clear-all:hover { background-color: color-mix(in srgb, var(--swatch--light-100) 12%, transparent); color: var(--swatch--light-100); border-top-color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); }

.gl-lp-clear-all { position: absolute; top: 0px; right: 0px; width: 1.375rem; height: 1.375rem; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); cursor: pointer; display: flex; align-items: center; justify-content: center; transition-property: background-color, color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lp-clear-all svg { width: 0.7rem; height: 0.7rem; display: block; }

.gl-lp-clear-all:hover { background-color: color-mix(in srgb, rgb(255, 48, 48) 80%, transparent); color: var(--swatch--light-100); border-color: rgb(255, 48, 48); }

.gl-vitrina_panel[data-vitrina="lente"] .gl-vitrina_header { position: relative; padding-right: 1.875rem; }

.gl-lente-editor::after { content: ""; position: absolute; bottom: -7px; left: 50%; transform: translateX(-50%); width: 14px; height: 7px; background-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); clip-path: polygon(0px 0px, 100% 0px, 50% 100%); pointer-events: none; }

.gl-lente-editor.is-below::after { bottom: auto; top: -7px; clip-path: polygon(50% 0px, 0px 100%, 100% 100%); }

.gl-lente-editor.is-right::after { bottom: auto; top: 50%; left: -7px; transform: translateY(-50%); width: 7px; height: 14px; clip-path: polygon(100% 0px, 100% 100%, 0px 50%); }

.gl-lente-editor.is-left::after { inset: 50% -7px auto auto; transform: translateY(-50%); width: 7px; height: 14px; clip-path: polygon(0px 0px, 0px 100%, 100% 50%); }

.gl-lente-editor_section-label { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); margin-bottom: var(--_spacing---space--1); display: block; }

.gl-le-section { margin-top: var(--_spacing---space--3); margin-bottom: var(--_spacing---space--1); display: flex; justify-content: space-between; align-items: center; }

.gl-le-section .gl-lente-editor_section-label { margin: 0px; }

.gl-lente-editor_select-wrap { position: relative; margin-bottom: var(--_spacing---space--2); }

.gl-lente-editor_trigger { display: flex; align-items: center; column-gap: 0.5rem; width: 100%; background-color: color-mix(in srgb, var(--swatch--light-100) 5%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding: 0.5rem; cursor: pointer; text-align: left; transition-property: border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-editor_trigger:hover { border-top-color: var(--swatch--light-100); border-right-color: var(--swatch--light-100); border-bottom-color: var(--swatch--light-100); border-left-color: var(--swatch--light-100); }

.gl-lente-editor_dropdown { position: absolute; bottom: calc(100% + 4px); left: 0px; right: 0px; background-color: color-mix(in srgb, var(--swatch--dark-900) 96%, transparent); backdrop-filter: blur(20px); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); max-height: 18rem; overflow: hidden; z-index: 10; display: none; }

.gl-lente-editor_dropdown.is-open { display: block; overflow-y: auto; }

.gl-lente-editor_dropdown.opens-down { bottom: auto; top: calc(100% + 4px); }

.gl-lente-editor_opt { display: flex; align-items: center; column-gap: 0.5rem; padding: 0.35rem 0.5rem; cursor: pointer; transition-property: background-color, color; transition-duration: 0.1s; transition-timing-function: ease; }

.gl-lente-editor_opt:hover { background-color: color-mix(in srgb, var(--swatch--brand-500) 25%, transparent); }

.gl-lente-editor_dot { width: 0.625rem; height: 0.625rem; min-width: 0.625rem; border-radius: 50%; display: inline-block; flex-shrink: 0; }

.gl-lente-editor_name { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.06em; color: var(--swatch--light-100); }

.gl-lente-editor_sub { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); margin-left: auto; }

.gl-lente-editor_cat-tag { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 55%, transparent); padding: 0.15rem 0.4rem; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 22%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 22%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 22%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 22%, transparent); border-radius: 2px; margin-left: 0.4rem; }

.gl-lente-editor_search-wrap { position: sticky; top: 0px; z-index: 2; display: flex; align-items: center; column-gap: 0.4rem; padding: 0.4rem 0.5rem; background-color: color-mix(in srgb, var(--swatch--dark-900) 94%, transparent); backdrop-filter: blur(20px); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 14%, transparent); }

.gl-lente-editor_search { flex: 1 1 0%; min-width: 0px; background-color: color-mix(in srgb, var(--swatch--light-100) 4%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); font-family: var(--_typography---font--secondary-family); font-size: 0.625rem; letter-spacing: 0.04em; color: var(--swatch--light-100); padding: 0.35rem 0.45rem; outline-width: 0px; transition-property: border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-lente-editor_search:focus { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-lente-editor_search::placeholder { color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); }

.gl-lente-editor_search-clear { width: 1rem; height: 1rem; flex-shrink: 0; background-color: transparent; border-width: 0px; cursor: pointer; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); font-size: 0.625rem; display: flex; align-items: center; justify-content: center; padding: 0px; }

.gl-lente-editor_search-clear:hover { color: var(--swatch--light-100); }

.gl-lente-editor_cat-header { display: flex; align-items: center; column-gap: 0.5rem; padding: 0.5rem 0.5rem 0.3rem; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 10%, transparent); margin-top: 0.2rem; }

.gl-lente-editor_cat-label { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--swatch--brand-500); font-weight: 600; }

.gl-lente-editor_cat-sub { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 30%, transparent); margin-left: auto; }

.gl-lente-editor_cat-empty { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 28%, transparent); font-style: italic; padding: 0.5rem 0.5rem 0.5rem 1.625rem; }

.gl-lente-editor_no-results { font-family: var(--_typography---font--secondary-family); font-size: 0.625rem; letter-spacing: 0.06em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); text-align: center; padding: 1rem 0.5rem; }

.gl-lente-editor_swatches { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: var(--_spacing---space--2); }

.gl-lente-editor_swatch { width: 1.125rem; height: 1.125rem; border-radius: 50%; cursor: pointer; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); transition-property: transform, border-color; transition-duration: 0.1s; transition-timing-function: ease; }

.gl-lente-editor_swatch:hover { transform: scale(1.2); }

.gl-lente-editor_swatch.is-active { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); transform: scale(1.15); }

.gl-le-slider-row { display: flex; flex-direction: column; row-gap: 0.5rem; margin-top: var(--_spacing---space--3); }

.gl-le-slider-row:first-of-type { margin-top: var(--_spacing---space--2); }

.gl-le-slider-head { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); }

.gl-le-slider-val { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); }

.gl-lente-editor_slider { appearance: none; width: 100%; height: 3px; background-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-radius: 2px; outline-width: 0px; cursor: pointer; margin-bottom: 0px; }

.gl-lente-editor_slider::-webkit-slider-thumb { appearance: none; width: 12px; height: 12px; border-radius: 50%; background-color: var(--swatch--light-100); cursor: pointer; }

.gl-cp { display: flex; flex-direction: column; row-gap: 0.5rem; margin-bottom: var(--_spacing---space--2); }

.gl-cp-tabs { display: flex; column-gap: 4px; }

.gl-cp-tab { flex: 1 1 0px; font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding-top: 0.45rem; padding-bottom: 0.45rem; cursor: pointer; transition-property: color, background-color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-cp-tab:hover { color: var(--swatch--light-100); }

.gl-cp-tab.is-active { color: var(--swatch--light-100); background-color: var(--swatch--brand-500); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-cp-grad-section { display: flex; flex-direction: column; row-gap: 0.5rem; }

.gl-cp-gradbar-wrap { position: relative; height: 22px; }

.gl-cp-gradbar { position: absolute; inset: 4px 0px; border-radius: 2px; }

.gl-cp-gradstops { position: absolute; inset: 0px; }

.gl-cp-stop { position: absolute; width: 10px; height: 22px; border-width: 1px; border-style: solid; border-top-color: var(--swatch--light-100); border-right-color: var(--swatch--light-100); border-bottom-color: var(--swatch--light-100); border-left-color: var(--swatch--light-100); border-radius: 2px; transform: translateX(-50%); cursor: ew-resize; }

.gl-cp-stop.is-active { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); outline-width: 1px; outline-style: solid; outline-color: var(--swatch--brand-500); outline-offset: 1px; }

.gl-cp-grad-controls { display: flex; flex-direction: column; row-gap: 0.35rem; }

.gl-cp-gradtypes { display: flex; column-gap: 4px; }

.gl-cp-gradtype { flex: 1 1 0px; font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); padding-top: 0.35rem; padding-bottom: 0.35rem; cursor: pointer; transition-property: color, background-color, border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-cp-gradtype:hover { color: var(--swatch--light-100); }

.gl-cp-gradtype.is-active { color: var(--swatch--light-100); background-color: color-mix(in srgb, var(--swatch--brand-500) 60%, transparent); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-cp-angle-row, .gl-cp-spread-row, .gl-cp-intensity-row { display: flex; align-items: center; column-gap: 0.4rem; }

.gl-cp-intensity-row { margin-top: 0.5rem; padding-top: 0.5rem; border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 12%, transparent); }

.gl-cp-intensity-range { flex: 1 1 0%; }

.gl-cp-label { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 50%, transparent); white-space: nowrap; }

.gl-cp-rval { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.06em; color: color-mix(in srgb, var(--swatch--light-100) 35%, transparent); white-space: nowrap; min-width: 2.2rem; text-align: right; }

.gl-cp-addstop { font-family: var(--_typography---font--secondary-family); font-size: 0.5rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, var(--swatch--light-100) 55%, transparent); background-color: transparent; border-width: 0px; cursor: pointer; text-align: left; padding: 0px; transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-cp-addstop:hover { color: var(--swatch--light-100); }

.gl-cp-2d-wrap { position: relative; }

.gl-cp-2d { position: relative; height: 120px; overflow: hidden; cursor: crosshair; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-cp-2d-bg { position: absolute; inset: 0px; }

.gl-cp-2d-dot { position: absolute; width: 12px; height: 12px; border-radius: 50%; border-width: 2px; border-style: solid; border-top-color: var(--swatch--light-100); border-right-color: var(--swatch--light-100); border-bottom-color: var(--swatch--light-100); border-left-color: var(--swatch--light-100); transform: translate(-50%, -50%); pointer-events: none; }

.gl-cp-slider-row { display: flex; align-items: center; column-gap: 0.5rem; }

.gl-cp-hue-track { flex: 1 1 0%; height: 8px; position: relative; background-image: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0)); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); cursor: pointer; }

.gl-cp-alpha-track { flex: 1 1 0%; height: 8px; position: relative; background-color: color-mix(in srgb, var(--swatch--light-100) 14%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); cursor: pointer; }

.gl-cp-track-thumb { position: absolute; top: 50%; width: 4px; height: 16px; background-color: var(--swatch--light-100); border-width: 1px; border-style: solid; border-top-color: var(--swatch--dark-900); border-right-color: var(--swatch--dark-900); border-bottom-color: var(--swatch--dark-900); border-left-color: var(--swatch--dark-900); transform: translate(-50%, -50%); pointer-events: none; }

.gl-cp-bottom { display: flex; align-items: center; column-gap: 0.5rem; }

.gl-cp-preview { width: 1.5rem; height: 1.5rem; flex-shrink: 0; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-cp-hex { flex: 1 1 0%; background-color: transparent; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-right-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-left-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); color: var(--swatch--light-100); font-family: var(--_typography---font--secondary-family); font-size: 0.625rem; letter-spacing: 0.06em; padding: 0.4rem 0.5rem; outline-width: 0px; transition-property: border-color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-cp-hex:focus { border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-cp-clear { background-color: transparent; border-width: 0px; color: color-mix(in srgb, var(--swatch--light-100) 40%, transparent); font-size: 0.6rem; cursor: pointer; padding: 0.25rem; flex-shrink: 0; transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.gl-cp-clear:hover { color: var(--swatch--light-100); }

.gl-cp-spread-row { margin-top: 0.25rem; }

.gl-cp-range { flex: 1 1 0%; width: 100%; appearance: none; height: 4px; background-color: color-mix(in srgb, var(--swatch--light-100) 18%, transparent); border-radius: 2px; outline-width: 0px; cursor: pointer; position: static; opacity: 1; margin: 0px; padding: 0px; }

.gl-cp-range::-webkit-slider-thumb { appearance: none; width: 12px; height: 12px; border-radius: 50%; background-color: var(--swatch--light-100); cursor: pointer; }

@keyframes gl-lente-shimmer { 
  0% { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}

@keyframes gl-lente-spec-drift { 
  0%, 100% { transform: translate(0px, 0px); opacity: 0.82; }
  35% { transform: translate(2.5%, 1.5%); opacity: 1; }
  70% { transform: translate(-2%, -1.2%); opacity: 0.76; }
}

@keyframes gl-lente-mirror-sweep { 
  0%, 100% { transform: translateX(-55%); opacity: 0.65; }
  50% { transform: translateX(55%); opacity: 1; }
}

@media (max-width: 767px) {
  .gl-dock { bottom: var(--_spacing---space--3); }
  .gl-dock_inner { gap: var(--_spacing---space--1); padding-left: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); }
  .gl-dock_link { font-size: 0.625rem; padding-left: 0.5rem; padding-right: 0.5rem; }
  .gl-dock_popover { left: auto; right: 0px; transform: translateX(0px) translateY(6px); }
  .gl-dock_toggle_wrap:hover .gl-dock_popover, .gl-dock_toggle_wrap:focus-within .gl-dock_popover { transform: translateX(0px) translateY(0px); }
}

.gl-vidrio_pernia_inner, .pg-sistema_glasslab_inner { padding-top: var(--_spacing---space--7); padding-bottom: var(--_spacing---space--7); padding-left: var(--site--margin); padding-right: var(--site--margin); display: flex; flex-direction: column; row-gap: var(--_spacing---space--4); }

.gl-vidrio_pernia_header, .pg-sistema_glasslab_header { display: flex; justify-content: space-between; align-items: baseline; }

.gl-vidrio_pernia_link, .pg-sistema_glasslab_link { text-decoration: none; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); }

.gl-vidrio_pernia_link:hover, .pg-sistema_glasslab_link:hover { border-bottom-color: var(--_theme---text); }

.gl-vidrio_pernia_grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--_spacing---space--4); row-gap: var(--_spacing---space--4); }

.gl-vidrio_pernia_card { text-decoration: none; }

.pg-sistema_glasslab_grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0px; }

.pg-sistema_glasslab_cell { cursor: pointer; }

@media (max-width: 991px) {
  .gl-vidrio_pernia_grid { grid-template-columns: repeat(2, 1fr); }
  .pg-sistema_glasslab_grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 767px) {
  .gl-vidrio_pernia_grid { grid-template-columns: 1fr; }
  .pg-sistema_glasslab_grid { grid-template-columns: repeat(3, 1fr); }
}

.gl-sr-only { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border-width: 0px; }

.gl-filter-search-input { background-color: transparent; border-width: 0px; color: inherit; font-family: inherit; font-size: inherit; letter-spacing: inherit; text-transform: inherit; outline-width: 0px; padding: 0.375rem 0.75rem; width: 100%; }

.gl-filter-radio-pill { display: inline-flex; align-items: center; justify-content: center; column-gap: var(--_spacing---space--1); cursor: pointer; position: relative; min-width: auto; transition-property: color, border-color, background-color; transition-duration: 0.15s; transition-timing-function: ease; transition-delay: 0s; }

.gl-filter-radio-pill:has(:checked) { background-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); border-top-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); color: var(--_theme---text); }

.gl-filter-radio-pill:has(:checked) .gl-catalogo_legend_swatch { border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); background-color: var(--_theme---text); }

.gl-filter-chip:has(:checked) { background-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); border-top-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 40%, transparent); color: var(--_theme---text); }

.gl-filter-chip { cursor: pointer; position: relative; min-width: auto; }

.gl-filter-tag { display: inline-flex; align-items: center; column-gap: var(--_spacing---space--1); padding: 0.375rem 0.75rem; border-width: 1px; border-style: solid; border-top-color: var(--_theme---text); border-right-color: var(--_theme---text); border-bottom-color: var(--_theme---text); border-left-color: var(--_theme---text); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); background-color: var(--_theme---text); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; color: var(--_theme---background); }

.gl-filter-tag_close { background-color: transparent; border-width: 0px; color: inherit; cursor: pointer; font-size: var(--_typography---font-size--label-sm); line-height: 1; padding: 0px; opacity: 0.6; }

.gl-catalogo_empty { display: flex; align-items: center; justify-content: center; padding: 3rem 1rem; font-size: var(--_typography---font-size--label); letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.5; grid-column: 1 / -1; }

/* Full-bleed statement moment. Had no min-height, so it collapsed to content —
   70% of the viewport on pg-laboratorio, 91% on gl-laboratorio — and the next
   section bled into frame. Column flex keeps the existing child stacking and
   full-width behaviour (align-items defaults to stretch) while centring the
   group vertically once the section is taller than its content. */
.gl-statement { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-top: var(--_spacing---section-space--large); padding-bottom: var(--_spacing---section-space--large); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-statement_header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: var(--_spacing---space--8); }

.gl-statement_descriptor { max-width: 22rem; text-align: right; font-size: var(--_typography---font-size--text-main); line-height: 1.6; color: color-mix(in srgb, var(--_theme---text) 55%, transparent); }

.gl-statement_body { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h1); font-weight: 200; letter-spacing: -0.03em; line-height: 1.1; max-width: 80%; margin-top: 0px; margin-bottom: var(--_spacing---space--8); margin-left: 0px; margin-right: 0px; color: var(--_theme---text); }

.gl-statement_cta { display: inline-flex; align-items: center; column-gap: var(--_spacing---space--3); font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.1em; text-transform: uppercase; color: var(--_theme---text); text-decoration-line: none; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); padding-bottom: var(--_spacing---space--1); transition-property: border-bottom-color; transition-duration: 0.2s; transition-timing-function: ease; transition-delay: 0s; }

.gl-statement_cta:hover { border-bottom-color: var(--_theme---text); }

.gl-statement_coda { max-width: 34rem; margin-top: calc(-1 * var(--_spacing---space--4)); margin-bottom: var(--_spacing---space--8); margin-left: 0px; margin-right: 0px; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); font-weight: 400; letter-spacing: 0.08em; line-height: 1.7; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 38%, transparent); }

.gl-values { padding-top: var(--_spacing---section-space--main); padding-bottom: 0px; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-values_list { margin-top: var(--_spacing---space--7); }

.gl-values_item { display: flex; align-items: baseline; justify-content: space-between; padding-top: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-values_item_last { border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-values_word { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; letter-spacing: -0.03em; line-height: 1; color: var(--_theme---text); }

.gl-values_label { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); flex-shrink: 0; padding-left: var(--_spacing---space--5); }

.gl-testimonial { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-testimonial_header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--_spacing---space--8); }

.gl-testimonial_counter { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.08em; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); }

.gl-testimonial_body { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 200; letter-spacing: -0.02em; line-height: 1.25; max-width: 72rem; margin-top: 0px; margin-bottom: var(--_spacing---space--8); margin-left: 0px; margin-right: 0px; }

.gl-testimonial_attribution { display: flex; align-items: center; column-gap: var(--_spacing---space--4); padding-top: var(--_spacing---space--4); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-testimonial_portrait { width: 3.5rem; height: 3.5rem; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); flex-shrink: 0; }

.gl-testimonial_name { margin: 0px; }

.gl-testimonial_track { position: relative; }

.gl-testimonial_slide { display: none; }

.gl-testimonial_slide.is-active { display: block; }

.gl-testimonial_initial { display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-family: var(--_typography---font--primary-family); font-size: 1.25rem; font-weight: 300; color: var(--_theme---text); background-color: color-mix(in srgb, var(--_theme---text) 8%, transparent); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 18%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 18%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 18%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 18%, transparent); }

.gl-testimonial_stars { margin-left: auto; font-size: var(--_typography---font-size--label); letter-spacing: 0.15em; color: var(--swatch--brand-500); }

.gl-testimonial_nav { display: flex; align-items: center; column-gap: var(--_spacing---space--2); margin-top: var(--_spacing---space--6); }

.gl-testimonial_arrow { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0px; font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); color: var(--_theme---text); background-color: transparent; cursor: pointer; border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 25%, transparent); transition-property: background-color, color, border-color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-testimonial_arrow:hover { background-color: var(--swatch--brand-500); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); color: var(--swatch--brand-text); }

.gl-testimonial_source { margin-left: auto; color: color-mix(in srgb, var(--_theme---text) 55%, transparent); text-decoration-line: none; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-testimonial_source:hover { color: var(--swatch--brand-500); }

.gl-testimonial_role { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 40%, transparent); margin-top: var(--_spacing---space--1); }

.gl-person { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-person_inner { display: grid; grid-template-columns: 1fr 1.2fr; column-gap: var(--_spacing---space--8); align-items: start; }

.gl-person_visual { display: flex; flex-direction: column; row-gap: var(--_spacing---space--4); }

.gl-person_portrait { width: 100%; aspect-ratio: 3 / 4; }

.gl-person_portrait_img { width: 100%; height: 100%; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-person_context_img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); opacity: 0.8; }

.gl-person_info { padding-top: var(--_spacing---space--3); display: flex; flex-direction: column; row-gap: var(--_spacing---space--5); position: sticky; top: calc(var(--nav--height) + var(--_spacing---space--5)); align-self: start; }

.gl-person_header { display: flex; flex-direction: column; row-gap: var(--_spacing---space--2); }

.gl-person_name { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-section); font-weight: 200; letter-spacing: -0.02em; line-height: 1.1; margin: 0px; }

.gl-person_role { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label); letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 45%, transparent); }

.gl-person_quote { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h-subhead); font-weight: 200; letter-spacing: -0.01em; line-height: 1.35; border-left-width: 2px; border-left-style: solid; border-left-color: var(--swatch--brand-500); padding-top: 0px; padding-bottom: 0px; padding-left: var(--_spacing---space--4); padding-right: 0px; margin: 0px; }

.gl-person_bio { font-size: var(--_typography---font-size--text-main); line-height: 1.75; color: color-mix(in srgb, var(--_theme---text) 68%, transparent); margin: 0px; }

.gl-person_meta { display: flex; flex-wrap: wrap; column-gap: var(--_spacing---space--7); row-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--4); border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 10%, transparent); }

.gl-person_meta_item { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); }

@media (max-width: 767px) {
  .gl-person_inner { grid-template-columns: 1fr; row-gap: var(--_spacing---space--6); }
}

.u-radius-inner-2 > *, .u-radius-inner-3 > *, .u-radius-inner-4 > *, .u-radius-inner-5 > *, .u-radius-inner-6 > *, .u-radius-inner-row > *, .u-radius-inner-col > * { border-radius: 0px; }

.u-radius-inner-2 > :first-child { border-top-left-radius: var(--radius--subtle); }

.u-radius-inner-2 > :nth-child(2) { border-top-right-radius: var(--radius--subtle); }

.u-radius-inner-2 > :nth-last-child(2) { border-bottom-left-radius: var(--radius--subtle); }

.u-radius-inner-2 > :last-child { border-bottom-right-radius: var(--radius--subtle); }

.u-radius-inner-3 > :first-child { border-top-left-radius: var(--radius--subtle); }

.u-radius-inner-3 > :nth-child(3) { border-top-right-radius: var(--radius--subtle); }

.u-radius-inner-3 > :nth-last-child(3) { border-bottom-left-radius: var(--radius--subtle); }

.u-radius-inner-3 > :last-child { border-bottom-right-radius: var(--radius--subtle); }

.u-radius-inner-4 > :first-child { border-top-left-radius: var(--radius--subtle); }

.u-radius-inner-4 > :nth-child(4) { border-top-right-radius: var(--radius--subtle); }

.u-radius-inner-4 > :nth-last-child(4) { border-bottom-left-radius: var(--radius--subtle); }

.u-radius-inner-4 > :last-child { border-bottom-right-radius: var(--radius--subtle); }

.u-radius-inner-5 > :first-child { border-top-left-radius: var(--radius--subtle); }

.u-radius-inner-5 > :nth-child(5) { border-top-right-radius: var(--radius--subtle); }

.u-radius-inner-5 > :nth-last-child(5) { border-bottom-left-radius: var(--radius--subtle); }

.u-radius-inner-5 > :last-child { border-bottom-right-radius: var(--radius--subtle); }

.u-radius-inner-6 > :first-child { border-top-left-radius: var(--radius--subtle); }

.u-radius-inner-6 > :nth-child(6) { border-top-right-radius: var(--radius--subtle); }

.u-radius-inner-6 > :nth-last-child(6) { border-bottom-left-radius: var(--radius--subtle); }

.u-radius-inner-6 > :last-child { border-bottom-right-radius: var(--radius--subtle); }

.u-radius-inner-row > :first-child { border-top-left-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.u-radius-inner-row > :last-child { border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.u-radius-inner-col > :first-child { border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); }

.gl-home_interlude { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---space--8); padding-bottom: var(--_spacing---space--8); padding-left: var(--site--margin); padding-right: var(--site--margin); position: relative; overflow: hidden; }

.gl-home_interlude_inner { display: flex; flex-direction: column; align-items: center; row-gap: var(--_spacing---space--5); text-align: center; max-width: 64rem; position: relative; z-index: 2; }

.gl-home_interlude_label { letter-spacing: 0.12em; }

.u-radius-inner-col > :last-child { border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-cell { transition-property: border-top-left-radius, border-top-right-radius, border-bottom-left-radius, border-bottom-right-radius, background-color, transform; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-cell:hover { border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); background-color: color-mix(in srgb, var(--_theme---text) 12%, var(--_theme---background)); opacity: 1; position: relative; z-index: 2; transform: scale(1.03); }

.gl-home_rail { position: fixed; top: calc(var(--nav--height) + var(--_spacing---space--3)); bottom: var(--dock--clearance); width: 2.5rem; z-index: 40; pointer-events: none; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding-top: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--3); }

.gl-home_rail--left { left: 0px; }

.gl-home_rail--right { right: 0px; }

.gl-home_rail_text { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.25em; text-transform: uppercase; color: color-mix(in srgb, var(--_theme---text) 50%, transparent); }

.gl-home_rail_text--vert { writing-mode: vertical-rl; transform: rotate(180deg); }

.gl-home_rail_text--muted { color: color-mix(in srgb, var(--_theme---text) 28%, transparent); }

.gl-home_rail_svg { width: 1.125rem; height: 1.125rem; display: block; color: var(--swatch--brand-500); }

.gl-home_rail_svg--muted { color: color-mix(in srgb, var(--_theme---text) 40%, transparent); width: 0.75rem; height: 0.75rem; }

.gl-home_rail_svg--spin { animation-name: gl-rail-spin; animation-duration: 8s; animation-timing-function: linear; animation-iteration-count: infinite; }

.gl-home_rail_svg--spin-slow { animation-name: gl-rail-spin; animation-duration: 18s; animation-timing-function: linear; animation-iteration-count: infinite; }

.gl-home_rail_svg--pulse { animation-name: gl-rail-pulse; animation-duration: 2.6s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; }

.gl-home_rail_counter { font-family: var(--_typography---font--secondary-family); font-size: var(--_typography---font-size--label-sm); letter-spacing: 0.12em; text-align: center; line-height: 1.2; display: flex; flex-direction: column; row-gap: 0.125rem; align-items: center; color: color-mix(in srgb, var(--_theme---text) 60%, transparent); }

.gl-home_rail_counter-num { color: var(--_theme---text); }

.gl-home_rail_counter-max { color: color-mix(in srgb, var(--_theme---text) 30%, transparent); }

.gl-home_rail_bar { width: 1px; height: 10rem; background-color: color-mix(in srgb, var(--_theme---text) 12%, transparent); position: relative; overflow: hidden; }

.gl-home_rail_bar-fill { position: absolute; top: 0px; left: 0px; width: 100%; height: 0%; background-color: var(--swatch--brand-500); transition-property: height; transition-duration: 0.15s; transition-timing-function: ease-out; }

@keyframes gl-rail-pulse { 
  0%, 100% { opacity: 1; }
  50% { opacity: 0.32; }
}

@keyframes gl-rail-spin { 
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@media (max-width: 767px) {
  .gl-home_rail { display: none; }
}

.pg-nav-edge { position: relative; z-index: 50; background-color: transparent; backdrop-filter: blur(0px); transition-property: transform, background-color, backdrop-filter; transition-duration: 0.55s; transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1); transition-delay: 0s; }

.pg-nav-edge.is-solid { background-color: color-mix(in srgb, var(--_theme---background) 82%, transparent); backdrop-filter: blur(14px); }

.pg-nav-edge.is-fixed { position: fixed; top: 0px; left: 0px; right: 0px; }

.pg-nav-edge.is-fixed.nav--scroll-hide { transform: translateY(-110%); transition-duration: 0.35s; transition-timing-function: cubic-bezier(0.7, 0, 0.84, 0); }

.u-border-bottom-none { border-bottom-width: 0px; border-bottom-style: none; }

.u-bg-none { background-color: transparent; backdrop-filter: none; }

.gl-preloader.is-light { background-color: var(--swatch--light-100); }

.gl-menu.is-light { background-color: var(--swatch--light-100); }

.pg-index_systems_card-link { transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.pg-index_systems_card-link:hover { color: var(--_theme---text); }

.pg-sistemas_card-link { transition-property: color; transition-duration: 0.15s; transition-timing-function: ease; }

.pg-sistemas_card-link:hover { color: var(--_theme---text); }

a.pg-sistemas_card:hover .pg-sistemas_card-link { color: var(--_theme---text); }

a.pg-index_systems_card:hover .pg-index_systems_card-link { color: var(--_theme---text); }

.pg-recursos_general_item { transition-property: border-bottom-color; transition-duration: 0.2s; transition-timing-function: ease; }

.pg-recursos_general_item:hover { border-bottom-color: color-mix(in srgb, var(--_theme---text) 35%, transparent); }

.pg-perfil-swatch--negro { background-color: rgb(26, 26, 26); }

.pg-perfil-swatch--porcelana { background-color: rgb(245, 245, 240); }

.pg-perfil-swatch--oro { background-color: rgb(201, 168, 76); }

.pg-perfil-swatch--burdeos { background-color: rgb(74, 21, 32); }

.pg-perfil-swatch--cobalto { background-color: rgb(26, 58, 92); }

.pg-perfil-swatch--bronce { background-color: rgb(176, 141, 110); }

.pg-perfil-swatch--nogal { background-color: rgb(92, 74, 58); }

.pg-perfil-swatch--oliva { background-color: rgb(58, 74, 42); }

.pg-perfil-swatch--ambar { background-color: rgb(138, 90, 42); }

.pg-perfil-swatch--plata { background-color: rgb(192, 192, 192); }

.pg-lab_swatch-name { text-align: center; }

.pg-lab_perfiles-photo { display: block; width: 100%; max-width: 52rem; height: auto; margin-top: 0px; margin-bottom: var(--_spacing---space--7); margin-left: auto; margin-right: auto; }

.gl-swatch[data-color="black"] { background-color: rgb(26, 26, 26); }

.gl-swatch[data-color="white"] { background-color: rgb(245, 245, 240); }

.gl-swatch[data-color="brass"] { background-color: rgb(201, 168, 76); }

.gl-swatch[data-color="burgundy"] { background-color: rgb(74, 21, 32); }

.gl-swatch[data-color="cobalt"] { background-color: rgb(26, 58, 92); }

.gl-swatch[data-color="gold-rose"] { background-color: rgb(176, 141, 110); }

.gl-swatch[data-color="brown"] { background-color: rgb(92, 74, 58); }

.gl-swatch[data-color="olive"] { background-color: rgb(58, 74, 42); }

.gl-swatch[data-color="orange"] { background-color: rgb(138, 90, 42); }

.gl-swatch[data-color="silver"] { background-color: rgb(192, 192, 192); }

.pg-mob_hero { padding-top: var(--_spacing---section-space--page-top); padding-bottom: var(--_spacing---space--6); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-mob_hero_grid { display: grid; grid-template-columns: 1.05fr 0.95fr; column-gap: var(--_spacing---space--7); align-items: center; max-width: 84rem; margin: 0px auto; }

.pg-mob_hero_inner { min-width: 0px; display: flex; flex-direction: column; align-items: flex-start; text-align: left; row-gap: var(--_spacing---space--4); }

.pg-mob_hero_media { min-width: 0px; margin: 0px; }

.pg-mob_hero_media-img { display: block; width: 100%; height: auto; max-height: 80vh; object-fit: cover; object-position: center center; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.pg-mob_hero_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--display); font-weight: 200; line-height: 0.95; letter-spacing: -0.02em; color: var(--swatch--dark-900); margin: 0px; }

.pg-mob_hero_title em { font-style: italic; color: var(--swatch--brand-500); }

.pg-mob_hero_sub { max-width: 40rem; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-large); font-weight: 300; line-height: 1.5; color: color-mix(in srgb, var(--swatch--dark-900) 62%, transparent); margin: 0px; }

.gl-lab_hero_heading em { font-style: italic; color: var(--swatch--brand-500); }

.pg-sis_hero { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; --open: 1; }

.pg-sis_hero_stage { position: absolute; inset: 0px; width: 100%; height: 100%; z-index: 1; pointer-events: none; overflow: hidden; mix-blend-mode: multiply; }

.pg-sis_hero_frame { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: contain; object-position: center center; opacity: 0; will-change: opacity; }

.pg-sis_hero_frame.is-active { opacity: 1; }

.pg-sis_hero_scrim { position: absolute; inset: 0px; z-index: 1; pointer-events: none; background-image: radial-gradient(ellipse 68% 62% at 50% 50%, var(--swatch--light-100), color-mix(in srgb, var(--swatch--light-100) 50%, transparent) 50%, transparent 78%); }

.pg-sis_hero_content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; pointer-events: none; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-sis_hero_hint { position: absolute; bottom: var(--_spacing---space--5); left: 50%; transform: translateX(-50%); z-index: 3; opacity: 0.7; transition-property: opacity; transition-duration: 0.4s; transition-timing-function: ease; }

.pg-sis_hero_hint.is-hidden { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  .pg-sis_hero_frame { transition-duration: 0s; }
}

.pg-mob_manifesto { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-mob_manifesto_inner { max-width: 52rem; margin: 0px auto; display: flex; flex-direction: column; row-gap: var(--_spacing---space--5); }

.pg-mob_manifesto_body { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h3); font-weight: 200; line-height: 1.25; letter-spacing: -0.01em; color: var(--swatch--dark-900); margin: 0px; }

.pg-mob_manifesto_body em { font-style: italic; color: var(--swatch--brand-500); }

.pg-mob_feature { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-mob_feature_inner { max-width: var(--max-width--main); margin: 0px auto; padding-left: var(--site--margin); padding-right: var(--site--margin); display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_spacing---space--8); row-gap: var(--_spacing---space--6); align-items: center; min-height: min(80vh, 740px); }

.pg-mob_feature.is-reverse .pg-mob_feature_media { order: 2; }

.pg-mob_feature_media { width: 100%; max-width: 46rem; margin-left: auto; margin-right: auto; aspect-ratio: 5 / 4; overflow: hidden; background-color: var(--swatch--light-200); border-top-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---border); border-right-width: var(--border-width--main); border-right-color: var(--_theme---border); border-bottom-width: var(--border-width--main); border-bottom-color: var(--_theme---border); border-left-width: var(--border-width--main); border-left-color: var(--_theme---border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.pg-mob_feature_img { width: 100%; height: 100%; object-fit: cover; display: block; transition-property: transform; transition-duration: 0.9s; transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }

.pg-mob_feature_media:hover .pg-mob_feature_img { transform: scale(1.04); }

.pg-mob_feature_text { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--3); }

.pg-mob_feature_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1.1; letter-spacing: -0.02em; color: var(--swatch--dark-900); margin-top: var(--_spacing---space--1); margin-right: 0px; margin-bottom: 0px; margin-left: 0px; }

.pg-mob_feature_body { max-width: 32rem; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-main); font-weight: 300; line-height: 1.6; color: color-mix(in srgb, var(--swatch--dark-900) 65%, transparent); margin: 0px; }

.pg-mob_feature_specs { width: 100%; max-width: 32rem; margin-top: var(--_spacing---space--3); display: flex; flex-direction: column; }

.pg-mob_gallery { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-mob_gallery_head { max-width: var(--max-width--main); margin-top: 0px; margin-right: auto; margin-bottom: var(--_spacing---space--6); margin-left: auto; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-mob_gallery_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1.1; letter-spacing: -0.02em; color: var(--swatch--dark-900); margin-top: var(--_spacing---space--2); margin-right: 0px; margin-bottom: 0px; margin-left: 0px; max-width: 30rem; }

.pg-mob_gallery_grid { max-width: var(--max-width--main); margin: 0px auto; padding-left: var(--site--margin); padding-right: var(--site--margin); display: grid; grid-template-columns: repeat(12, 1fr); column-gap: var(--site--gutter); row-gap: var(--site--gutter); }

.pg-mob_gallery_item { position: relative; overflow: hidden; background-color: var(--swatch--light-200); border-top-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---border); border-right-width: var(--border-width--main); border-right-color: var(--_theme---border); border-bottom-width: var(--border-width--main); border-bottom-color: var(--_theme---border); border-left-width: var(--border-width--main); border-left-color: var(--_theme---border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.pg-mob_gallery_item.is-wide { grid-column-start: span 8; aspect-ratio: 1 / 1; }

.pg-mob_gallery_item.is-tall { grid-column-start: span 4; aspect-ratio: 1 / 1; }

.pg-mob_gallery_item.is-half { grid-column-start: span 6; aspect-ratio: 1 / 1; }

.pg-mob_gallery_item.is-third { grid-column-start: span 4; aspect-ratio: 1 / 1; }

.pg-mob_gallery_item.is-full { grid-column-start: span 12; aspect-ratio: 1 / 1; }

.pg-mob_gallery_img { width: 100%; height: 100%; object-fit: cover; display: block; transition-property: transform; transition-duration: 1s; transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }

.pg-mob_gallery_item:hover .pg-mob_gallery_img { transform: scale(1.05); }

.pg-mob_gallery_cap { position: absolute; left: var(--_spacing---space--3); bottom: var(--_spacing---space--3); padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--2); background-color: color-mix(in srgb, var(--swatch--light-100) 86%, transparent); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); color: var(--swatch--dark-900); }

.pg-mob_colors { padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); }

.pg-mob_colors_inner { max-width: var(--max-width--main); margin: 0px auto; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-mob_colors_head { margin-bottom: var(--_spacing---space--6); }

.pg-mob_colors_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h2); font-weight: 200; line-height: 1.1; letter-spacing: -0.02em; color: var(--swatch--dark-900); margin-top: var(--_spacing---space--2); margin-right: 0px; margin-bottom: 0px; margin-left: 0px; max-width: 32rem; }

.pg-mob_colors_grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--site--gutter); row-gap: var(--_spacing---space--5); }

.pg-mob_colors_item { display: flex; flex-direction: column; row-gap: var(--_spacing---space--3); }

.pg-mob_colors_media { width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background-color: var(--swatch--light-200); border-top-width: var(--border-width--main); border-style: solid; border-top-color: var(--_theme---border); border-right-width: var(--border-width--main); border-right-color: var(--_theme---border); border-bottom-width: var(--border-width--main); border-bottom-color: var(--_theme---border); border-left-width: var(--border-width--main); border-left-color: var(--_theme---border); border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); }

.pg-mob_colors_img { width: 100%; height: 100%; object-fit: cover; display: block; transition-property: transform; transition-duration: 0.9s; transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }

.pg-mob_colors_item:hover .pg-mob_colors_img { transform: scale(1.04); }

.pg-mob_colors_name { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h5); font-weight: 300; line-height: 1.2; color: var(--swatch--dark-900); margin: 0px; }

.pg-mob_cta { padding-top: var(--_spacing---section-space--large); padding-bottom: var(--_spacing---section-space--large); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-mob_cta_inner { max-width: 48rem; margin: 0px auto; display: flex; flex-direction: column; align-items: center; text-align: center; row-gap: var(--_spacing---space--4); }

.pg-mob_cta_heading { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h1); font-weight: 200; line-height: 1; letter-spacing: -0.02em; color: var(--swatch--dark-900); margin: 0px; }

.pg-mob_cta_sub { max-width: 34rem; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--text-large); font-weight: 300; line-height: 1.5; color: color-mix(in srgb, var(--swatch--dark-900) 62%, transparent); margin: 0px; }

.pg-mob_cta_buttons { display: flex; column-gap: var(--_spacing---space--3); row-gap: var(--_spacing---space--3); flex-wrap: wrap; justify-content: center; margin-top: var(--_spacing---space--3); }

@media (max-width: 991px) {
  .pg-mob_feature_inner { column-gap: var(--_spacing---space--6); }
  .pg-mob_manifesto_body { font-size: var(--_typography---font-size--h4); }
  .pg-mob_gallery_item.is-wide { grid-column-start: span 12; aspect-ratio: 1 / 1; }
  .pg-mob_gallery_item.is-tall { grid-column-start: span 6; }
  .pg-mob_gallery_item.is-half { grid-column-start: span 6; }
  .pg-mob_gallery_item.is-third { grid-column-start: span 6; }
  .pg-mob_colors_grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 767px) {
  .pg-mob_feature_inner { grid-template-columns: 1fr; row-gap: var(--_spacing---space--5); min-height: auto; }
  .pg-mob_feature.is-reverse .pg-mob_feature_media { order: 0; }
  .pg-mob_feature_title { font-size: var(--_typography---font-size--h3); }
  .pg-mob_gallery_item.is-wide, .pg-mob_gallery_item.is-tall, .pg-mob_gallery_item.is-half, .pg-mob_gallery_item.is-third, .pg-mob_gallery_item.is-full { grid-column-start: span 12; aspect-ratio: 1 / 1; }
  .pg-mob_colors_grid { grid-template-columns: 1fr; }
}

@media (max-width: 991px) {
  .pg-mob_hero_grid { grid-template-columns: 1fr; row-gap: var(--_spacing---space--5); }
  .pg-mob_hero_inner { align-items: center; text-align: center; }
  .pg-mob_hero_sub { margin-left: auto; margin-right: auto; }
  .pg-mob_hero_media-img { max-height: 68vh; }
}

@media (max-width: 478px) {
  .pg-mob_hero_sub { font-size: var(--_typography---font-size--text-main); }
}

@media (max-width: 991px) {
  .gl-blur-bottom_layer.is-4, .gl-blur-bottom_layer.is-5, .gl-blur-bottom_layer.is-6, .gl-blur-bottom_layer.is-7, .gl-blur-bottom_layer.is-8, .gl-blur-bottom_layer.is-9, .gl-blur-bottom_layer.is-10 { display: none; }
  .gl-lente-glass--ds::before, .gl-lente-glass--ds::after, .gl-lente-glass--ep::before { animation-name: none; animation-duration: 0s; }
}

.gl-installations { padding-top: var(--_spacing---section-space--main); padding-right: var(--site--margin); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); background-color: var(--_theme---background); color: var(--_theme---text); }

.gl-installations_header { display: grid; grid-template-columns: minmax(0px, 1fr) auto; column-gap: var(--_spacing---space--6); row-gap: var(--_spacing---space--5); align-items: end; margin-bottom: var(--_spacing---space--6); }

.gl-installations_intro { max-width: 54rem; }

.gl-installations_heading { margin: 0px; font-family: var(--_typography---font--primary-family); font-size: clamp(2.25rem, 5vw, 5rem); font-weight: 200; line-height: 1.02; letter-spacing: -0.03em; }

.gl-installations_sub { max-width: 38rem; margin-top: var(--_spacing---space--4); margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: color-mix(in srgb, var(--_theme---text) 52%, transparent); }

.gl-installations_controls { display: flex; flex-direction: column; align-items: flex-end; row-gap: var(--_spacing---space--3); }

.gl-installations_toggle { display: flex; flex-flow: wrap; justify-content: flex-end; column-gap: var(--_spacing---space--2); row-gap: var(--_spacing---space--2); }

.gl-installations_toggle-button { min-width: 9.5rem; }

.gl-installations_toggle-element { width: 100%; }

.gl-installations_status { margin: 0px; color: color-mix(in srgb, var(--_theme---text) 42%, transparent); text-align: right; }

.gl-installations_menu-logo { width: auto; height: 1.5rem; }

.gl-installations_panel-hidden { display: none; }

.gl-installations_grid-stage { position: relative; width: 100%; height: min(72vh, 48rem); min-height: 36rem; overflow: hidden; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); background-color: var(--_theme---background-2); cursor: grab; touch-action: none; user-select: none; }

.gl-installations_grid-stage-dragging { cursor: grabbing; }

.gl-lightbox { position: fixed; inset: 0px; z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; transition-property: opacity; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-lightbox[hidden] { display: none; }

.gl-lightbox-visible { opacity: 1; }

.gl-lightbox-lock { overflow: hidden; }

.gl-lightbox_backdrop { position: absolute; inset: 0px; background-color: color-mix(in srgb, var(--swatch--dark-900) 92%, transparent); cursor: pointer; }

.gl-lightbox_frame { position: relative; display: flex; align-items: center; justify-content: center; max-width: 92vw; max-height: 88vh; padding: 0px; }

.gl-lightbox_figure { position: relative; display: flex; flex-direction: column; align-items: center; margin: 0px; transition-property: opacity; transition-duration: 0.18s; transition-timing-function: ease; }

.gl-lightbox_figure-loading { opacity: 0.35; }

.gl-lightbox_image { display: block; max-width: 92vw; max-height: 80vh; width: auto; height: auto; object-fit: contain; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); }

.gl-lightbox_caption { display: flex; align-items: baseline; justify-content: space-between; column-gap: var(--_spacing---space--4); width: 100%; margin-top: var(--_spacing---space--3); }

.gl-lightbox_close { position: absolute; top: var(--_spacing---space--4); right: var(--site--margin); z-index: 3; display: inline-flex; align-items: center; column-gap: var(--_spacing---space--2); padding: 0px; background-color: transparent; border-width: 0px; color: var(--swatch--light-100); cursor: pointer; transition-property: color; transition-duration: 0.2s; transition-timing-function: ease; }

.gl-lightbox_close-icon { position: relative; width: 1.125rem; height: 1.125rem; }

.gl-lightbox_close-icon::before { content: ""; position: absolute; top: 50%; left: 0px; width: 100%; height: 1px; background-color: currentcolor; transform: rotate(45deg); }

.gl-lightbox_close-icon::after { content: ""; position: absolute; top: 50%; left: 0px; width: 100%; height: 1px; background-color: currentcolor; transform: rotate(-45deg); }

.gl-lightbox_nav { position: absolute; top: 50%; z-index: 3; display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; margin-top: -1.375rem; padding: 0px; color: color-mix(in srgb, var(--swatch--light-100) 62%, transparent); background-color: transparent; cursor: pointer; border-width: 0px; transition-property: color, transform; transition-duration: 180ms; transition-timing-function: ease; }

.gl-lightbox_nav-prev { left: var(--site--margin); }

.gl-lightbox_nav-next { right: var(--site--margin); }

.gl-lightbox_close:hover { color: var(--swatch--brand-500); }

.gl-lightbox_nav:hover { color: var(--swatch--light-100); }

.gl-lightbox_nav-prev:hover { transform: translateX(-2px); }

.gl-lightbox_nav-next:hover { transform: translateX(2px); }

.gl-installations_grid-item { cursor: pointer; }

.gl-installations_list-item { cursor: pointer; }

@media (max-width: 767px) {
  .gl-lightbox_image { max-width: 94vw; max-height: 70vh; }
  .gl-lightbox_nav { width: 2.5rem; height: 2.5rem; margin-top: -1.25rem; }
  .gl-lightbox_nav-prev { left: var(--_spacing---space--2); }
  .gl-lightbox_nav-next { right: var(--_spacing---space--2); }
}

.gl-installations_grid-plane { position: absolute; inset: 0px; }

.gl-installations_grid-item { position: absolute; top: 0px; left: 0px; width: 17.5rem; height: 12.625rem; overflow: hidden; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); border-width: 1px; border-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-right-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-bottom-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); border-left-color: color-mix(in srgb, var(--_theme---text) 20%, transparent); background-color: var(--swatch--dark-800); will-change: transform; }

.gl-installations_grid-image { display: block; width: 100%; height: 100%; object-fit: cover; border-top-left-radius: var(--radius--subtle); border-top-right-radius: var(--radius--subtle); border-bottom-left-radius: var(--radius--subtle); border-bottom-right-radius: var(--radius--subtle); pointer-events: none; filter: saturate(0.88) contrast(1.03); transform: scale(1.001); transition-property: filter, transform; transition-duration: 0.35s; transition-timing-function: ease; transition-delay: 0s; }

.gl-installations_grid-image-hover { filter: saturate(1) contrast(1.02); transform: scale(1.035); }

.gl-installations_grid-label { position: absolute; right: var(--_spacing---space--2); bottom: var(--_spacing---space--2); left: var(--_spacing---space--2); display: flex; justify-content: space-between; align-items: center; column-gap: var(--_spacing---space--2); padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--2); background-color: color-mix(in srgb, var(--swatch--dark-900) 78%, transparent); color: var(--swatch--light-100); pointer-events: none; }

.gl-installations_grid-count { color: color-mix(in srgb, var(--swatch--light-100) 52%, transparent); }

.gl-installations_drag-hint { position: absolute; top: var(--_spacing---space--3); right: var(--_spacing---space--3); z-index: 2; margin: 0px; padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--2); background-color: color-mix(in srgb, var(--swatch--dark-900) 78%, transparent); color: var(--swatch--light-100); pointer-events: none; }

.gl-installations_list { display: grid; grid-template-columns: 1fr; border-top-width: 1px; border-top-style: solid; border-top-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); }

.gl-installations_list-item { display: grid; grid-template-columns: minmax(12rem, 24rem) minmax(0px, 1fr) auto; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--3); align-items: center; padding-top: var(--_spacing---space--4); padding-right: 0px; padding-bottom: var(--_spacing---space--4); padding-left: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: color-mix(in srgb, var(--_theme---text) 14%, transparent); }

.gl-installations_list-image { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background-color: var(--_theme---background-2); }

.gl-installations_list-name { margin: 0px; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h5); font-weight: 300; line-height: 1.1; }

.gl-installations_list-count { color: color-mix(in srgb, var(--_theme---text) 42%, transparent); white-space: nowrap; }

@media (max-width: 991px) {
  .gl-installations_header { grid-template-columns: 1fr; align-items: start; }
  .gl-installations_controls { align-items: flex-start; }
  .gl-installations_toggle { justify-content: flex-start; }
  .gl-installations_status { text-align: left; }
  .gl-installations_grid-item { width: 15rem; height: 10.75rem; }
}

@media (max-width: 767px) {
  .gl-installations_grid-stage { height: 38rem; min-height: 0px; }
  .gl-installations_grid-item { width: 13.125rem; height: 9.5rem; }
  .gl-installations_list-item { grid-template-columns: 9rem minmax(0px, 1fr); }
  .gl-installations_list-count { grid-column-start: 2; }
}

@media (max-width: 478px) {
  .gl-installations { padding-top: var(--_spacing---space--6); padding-bottom: var(--_spacing---space--6); }
  .gl-installations_toggle-button { min-width: 8.25rem; }
  .gl-installations_grid-stage { height: 32rem; }
  .gl-installations_grid-item { width: 11rem; height: 8rem; }
  .gl-installations_drag-hint { top: var(--_spacing---space--2); right: var(--_spacing---space--2); }
  .gl-installations_list-item { grid-template-columns: 1fr; }
  .gl-installations_list-image { aspect-ratio: 4 / 3; }
  .gl-installations_list-count { grid-column-start: auto; }
}

.vanny-widget-launch { position: fixed; right: var(--_spacing---space--4, 1.5rem); bottom: var(--_spacing---space--4, 1.5rem); z-index: 990; padding: 0px; border-width: 0px; background-color: transparent; font-family: inherit; }

.vanny-widget-launch .gl-btn_skew_shape { pointer-events: none; }

@media (max-width: 991px) {
  .vanny-widget-launch { display: none; }
}

button.gl-menu_link { width: 100%; background-color: transparent; border-width: 0px; font-family: inherit; cursor: pointer; }

iframe[src*="vanny.chat"] { color-scheme: light !important; }

.gl-touch .gl-dock_toggle_wrap:hover .gl-dock_popover, .gl-touch .gl-home_nav_group:hover .gl-home_nav_popover, .gl-touch .pg-nav_group:hover .pg-nav_popover { opacity: 0; pointer-events: none; }

@media (max-width: 991px) {
  .gl-home_hero.gl-hero-cap { max-height: none; }
}

@media (max-width: 767px) {
  .gl-home_hero_left { min-height: 68svh; padding-bottom: var(--_spacing---space--6); }
  .gl-home_hero_sub { margin-top: var(--_spacing---space--3); max-width: 30ch; }
  .gl-home_manifesto_inner { padding-top: var(--_spacing---space--6); padding-bottom: var(--_spacing---space--8); }
  .gl-home_manifesto_text { text-align: left; font-size: 0.6875rem; line-height: 1.9; }
}

.gl-home_spectrum { position: relative; display: flex; flex-direction: column; }

.gl-home_spectrum_head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--2); padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---space--6); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_spectrum_title { margin-bottom: 0px; }

.gl-home_spectrum_panels { display: flex; flex-grow: 1; min-height: min(68svh, 640px); }

.gl-home_spectrum_panel { position: relative; flex: 1 1 0%; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding-top: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--4); color: inherit; text-decoration-line: none; border-left-width: var(--border-width--main); border-left-style: solid; border-left-color: var(--swatch--dark-900); transition-property: flex-grow; transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.gl-home_spectrum_panel:first-child { border-left-width: 0px; }

.gl-home_spectrum_panel:hover { flex-grow: 2.6; }

.gl-home_spectrum_panel-img { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0.75; transition-property: opacity; transition-duration: 0.5s; transition-timing-function: ease; }

.gl-home_spectrum_panel:hover .gl-home_spectrum_panel-img { opacity: 1; }

.gl-home_spectrum_panel-scrim { position: absolute; right: 0px; bottom: 0px; left: 0px; height: 55%; pointer-events: none; background-image: linear-gradient(to top, color-mix(in srgb, var(--swatch--dark-900) 85%, transparent), transparent); }

.gl-home_spectrum_panel-accent { position: absolute; top: 0px; left: 0px; right: 0px; height: 3px; background-color: var(--swatch--brand-500); transform: scaleX(0); transform-origin: 0% 50%; transition-property: transform; transition-duration: 0.5s; transition-timing-function: ease; }

.gl-home_spectrum_panel:hover .gl-home_spectrum_panel-accent { transform: scaleX(1); }

.gl-home_spectrum_panel-code { position: relative; z-index: 1; font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h4); font-weight: 200; line-height: 1; margin-bottom: var(--_spacing---space--2); }

.gl-home_spectrum_panel-meta { position: relative; z-index: 1; display: flex; flex-direction: column; row-gap: 0px; opacity: 0; transform: translateY(0.5rem); transition-property: opacity, transform; transition-duration: 0.4s; transition-timing-function: ease; }

.gl-home_spectrum_panel:hover .gl-home_spectrum_panel-meta { opacity: 1; transform: translateY(0px); }

@media (max-width: 991px) {
  .gl-home_spectrum_panel-meta { opacity: 1; transform: translateY(0px); }
}

@media (max-width: 767px) {
  .gl-home_spectrum_panels { flex-direction: column; }
  .gl-home_spectrum_panel { flex-basis: auto; min-height: 5.5rem; flex-direction: row; align-items: flex-end; justify-content: space-between; column-gap: var(--_spacing---space--3); border-left-width: 0px; border-top-width: var(--border-width--main); border-top-style: solid; border-top-color: var(--swatch--dark-900); }
  .gl-home_spectrum_panel:hover { flex-grow: 3; }
  .gl-home_spectrum_panel-code { margin-bottom: 0px; }
  .gl-home_spectrum_panel-accent { right: auto; bottom: 0px; width: 3px; height: auto; transform: scaleY(0); transform-origin: 50% 0%; }
  .gl-home_spectrum_panel:hover .gl-home_spectrum_panel-accent { transform: scaleY(1); }
}

.gl-home_ficha { position: relative; box-sizing: border-box; display: grid; grid-template-columns: 1fr 1fr; min-height: min(80svh, 740px); }

.gl-home_ficha_panel { display: flex; flex-direction: column; justify-content: center; padding-top: var(--_spacing---section-space--small); padding-bottom: var(--_spacing---section-space--small); padding-left: var(--site--margin); padding-right: var(--_spacing---space--8); }

.gl-home_ficha_kicker { display: block; margin-bottom: var(--_spacing---space--4); color: var(--swatch--brand-500); }

.gl-home_ficha_title { font-size: var(--_typography---font-size--h1); margin-bottom: var(--_spacing---space--6); max-width: 34rem; }

.gl-home_ficha_table { margin-bottom: var(--_spacing---space--6); }

.gl-home_ficha_row { display: grid; grid-template-columns: 1fr 1.2fr; column-gap: var(--_spacing---space--4); align-items: baseline; padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); border-bottom-width: var(--border-width--main); border-bottom-style: solid; border-bottom-color: var(--_border---divider-color-md); }

.gl-home_ficha_row.is-head { border-bottom-color: var(--_border---divider-color-lg); }

.gl-home_ficha_value { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h6); font-weight: 300; line-height: 1.3; margin-top: 0px; margin-bottom: 0px; }

.gl-home_ficha_actions { display: flex; align-items: center; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--3); flex-wrap: wrap; }

.gl-home_ficha_link { color: var(--_theme---text); }

.gl-home_ficha_media { position: relative; overflow: hidden; }

.gl-home_ficha_img { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; display: block; }

.gl-home_ficha_reticle { position: absolute; top: var(--_spacing---space--6); right: var(--_spacing---space--6); bottom: var(--_spacing---space--6); left: var(--_spacing---space--6); pointer-events: none; }

.gl-home_ficha_reticle-corner { position: absolute; width: var(--_spacing---space--6); height: var(--_spacing---space--6); border-top-color: var(--swatch--brand-500); border-right-color: var(--swatch--brand-500); border-bottom-color: var(--swatch--brand-500); border-left-color: var(--swatch--brand-500); }

.gl-home_ficha_reticle-corner.is-tl { top: 0px; left: 0px; border-top-width: var(--border-width--main); border-left-width: var(--border-width--main); border-top-style: solid; border-left-style: solid; }

.gl-home_ficha_reticle-corner.is-tr { top: 0px; right: 0px; border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-top-style: solid; border-right-style: solid; }

.gl-home_ficha_reticle-corner.is-bl { bottom: 0px; left: 0px; border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-bottom-style: solid; border-left-style: solid; }

.gl-home_ficha_reticle-corner.is-br { bottom: 0px; right: 0px; border-bottom-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-style: solid; border-right-style: solid; }

.gl-home_ficha_reticle-cross { position: absolute; top: 50%; left: 50%; width: var(--_spacing---space--6); height: var(--_spacing---space--6); transform: translate(-50%, -50%); color: var(--swatch--brand-500); }

.gl-home_ficha_tag { position: absolute; left: var(--_spacing---space--6); bottom: var(--_spacing---space--6); display: inline-flex; align-items: center; column-gap: var(--_spacing---space--2); padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--3); background-color: color-mix(in srgb, var(--swatch--dark-900) 80%, transparent); backdrop-filter: blur(6px); }

@media (max-width: 991px) {
  .gl-home_ficha { grid-template-columns: 1fr; }
  .gl-home_ficha_panel { padding-right: var(--site--margin); }
  .gl-home_ficha_media { min-height: 55svh; }
}

@media (max-width: 478px) {
  .gl-home_ficha_row { grid-template-columns: 1fr; row-gap: var(--_spacing---space--1); }
  .gl-home_ficha_media { min-height: 60svh; }
  .gl-home_ficha_reticle { top: var(--_spacing---space--4); right: var(--_spacing---space--4); bottom: var(--_spacing---space--4); left: var(--_spacing---space--4); }
}

.gl-home_camara { position: relative; box-sizing: border-box; min-height: min(82svh, 760px); display: flex; align-items: center; justify-content: center; overflow: hidden; padding-top: var(--_spacing---section-space--small); padding-bottom: var(--_spacing---section-space--small); }

.gl-home_camara_bg { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; display: block; }

.gl-home_camara_scrim { position: absolute; inset: 0px; pointer-events: none; background-image: radial-gradient(ellipse at center, color-mix(in srgb, var(--swatch--dark-900) 30%, transparent) 0%, color-mix(in srgb, var(--swatch--dark-900) 62%, transparent) 78%, color-mix(in srgb, var(--swatch--dark-900) 80%, transparent) 100%); }

.gl-home_camara_frame { position: absolute; z-index: 2; pointer-events: none; top: var(--_spacing---space--6); right: var(--_spacing---space--6); bottom: var(--_spacing---space--6); left: var(--_spacing---space--6); border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--swatch--brand-text-o20); border-right-color: var(--swatch--brand-text-o20); border-bottom-color: var(--swatch--brand-text-o20); border-left-color: var(--swatch--brand-text-o20); }

.gl-home_camara_center { position: relative; z-index: 3; text-align: center; max-width: 60rem; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_camara_kicker { display: block; margin-bottom: var(--_spacing---space--5); }

.gl-home_camara_title { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--hero); font-weight: 200; line-height: var(--_typography---line-height--tighter); letter-spacing: var(--_typography---letter-spacing--negative-md); margin-top: 0px; margin-bottom: var(--_spacing---space--4); }

.gl-home_camara_sub { display: block; margin-bottom: var(--_spacing---space--6); }

.gl-home_camara_meta { position: absolute; z-index: 3; }

.gl-home_camara_meta.is-tl { top: var(--_spacing---space--7); left: var(--_spacing---space--8); }

.gl-home_camara_meta.is-tr { top: var(--_spacing---space--7); right: var(--_spacing---space--8); }

.gl-home_camara_meta.is-bl { bottom: var(--_spacing---space--7); left: var(--_spacing---space--8); }

.gl-home_camara_meta.is-br { bottom: var(--_spacing---space--7); right: var(--_spacing---space--8); }

@media (max-width: 767px) {
  .gl-home_camara_meta.is-tl, .gl-home_camara_meta.is-tr { display: none; }
  .gl-home_camara_meta.is-bl, .gl-home_camara_meta.is-br { display: none; }
  .gl-home_camara_frame { right: var(--_spacing---space--3); bottom: var(--_spacing---space--3); left: var(--_spacing---space--3); }
}

.gl-home_editorial { position: relative; box-sizing: border-box; min-height: min(80svh, 740px); display: flex; flex-direction: column; justify-content: space-between; row-gap: var(--_spacing---space--7); padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); padding-left: var(--site--margin); padding-right: var(--site--margin); overflow: hidden; }

.gl-home_editorial_top { display: flex; justify-content: space-between; align-items: baseline; column-gap: var(--_spacing---space--4); margin-bottom: var(--_spacing---space--4); }

.gl-home_editorial_title { position: relative; z-index: 1; max-width: 60rem; margin-bottom: var(--_spacing---space--5); }

.gl-home_editorial_title-accent { color: var(--swatch--brand-500); }

.gl-home_editorial_bottom { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--_gap---size); row-gap: var(--_spacing---space--6); align-items: end; }

.gl-home_editorial_col { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--5); max-width: 34rem; }

.gl-home_editorial_text { margin-top: 0px; margin-bottom: 0px; }

.gl-home_editorial_figure { position: relative; justify-self: end; width: min(100%, 30rem); margin: 0px; }

.gl-home_editorial_img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }

.gl-home_editorial_caption { display: flex; justify-content: space-between; align-items: baseline; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--2); border-top-width: var(--border-width--main); border-top-style: solid; border-top-color: var(--_border---divider-color-lg); }

@media (max-width: 991px) {
  .gl-home_editorial_bottom { grid-template-columns: 1fr; }
  .gl-home_editorial_figure { justify-self: start; }
}

@media (max-width: 478px) {
  .gl-home_editorial_top { flex-direction: column; row-gap: var(--_spacing---space--1); }
}

.gl-home_cinetico { position: relative; box-sizing: border-box; min-height: min(80svh, 740px); display: flex; flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--4); padding-top: var(--_spacing---section-space--main); padding-bottom: var(--_spacing---section-space--main); overflow: hidden; }

.gl-home_cinetico_row { display: flex; white-space: nowrap; }

.gl-home_cinetico_track { display: flex; flex-shrink: 0; align-items: baseline; animation-name: gl-home_marquee-left; animation-duration: 42s; animation-timing-function: linear; animation-iteration-count: infinite; }

.gl-home_cinetico_row.is-reverse .gl-home_cinetico_track { animation-name: gl-home_marquee-right; animation-duration: 56s; }

.gl-home_cinetico_word { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--jumbo); font-weight: 200; line-height: var(--_typography---line-height--tightest); letter-spacing: var(--_typography---letter-spacing--negative-md); padding-right: var(--_spacing---space--8); color: color-mix(in srgb, var(--_theme---text) 20%, transparent); }

.gl-home_cinetico_row.is-accent .gl-home_cinetico_word { color: var(--swatch--brand-500); }

.gl-home_cinetico_row.is-solid .gl-home_cinetico_word { color: var(--_theme---text); }

.gl-home_cinetico_stage { display: flex; justify-content: center; padding-left: var(--site--margin); padding-right: var(--site--margin); }

.gl-home_cinetico_media { position: relative; width: min(100%, 30rem); }

.gl-home_cinetico_video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_border---divider-color-lg); border-right-color: var(--_border---divider-color-lg); border-bottom-color: var(--_border---divider-color-lg); border-left-color: var(--_border---divider-color-lg); }

.gl-home_cinetico_media-caption { display: flex; justify-content: space-between; align-items: baseline; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--2); }

.gl-home_cinetico_foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--4); padding-left: var(--site--margin); padding-right: var(--site--margin); margin-top: 0px; }

@keyframes gl-home_marquee-left { 
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

@keyframes gl-home_marquee-right { 
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0%); }
}

@media (prefers-reduced-motion: reduce) {
  .gl-home_cinetico_track { animation-play-state: paused; }
}

@media (max-width: 478px) {
  .gl-home_cinetico_word { padding-right: var(--_spacing---space--6); }
}

.pg-index_marco { position: relative; box-sizing: border-box; min-height: 80svh; display: flex; align-items: center; justify-content: center; padding-top: var(--_spacing---section-space--small); padding-bottom: var(--_spacing---section-space--small); padding-left: var(--site--margin); padding-right: var(--site--margin); overflow: hidden; }

.pg-index_marco_frame { position: relative; width: min(48vw, 38rem); padding-top: var(--_spacing---space--5); padding-right: var(--_spacing---space--5); padding-bottom: var(--_spacing---space--5); padding-left: var(--_spacing---space--5); background-color: var(--swatch--light-200); border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_border---divider-color-lg); border-right-color: var(--_border---divider-color-lg); border-bottom-color: var(--_border---divider-color-lg); border-left-color: var(--_border---divider-color-lg); }

.pg-index_marco_img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }

.pg-index_marco_plate { display: flex; justify-content: space-between; align-items: baseline; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--3); }

.pg-index_marco_title { position: absolute; z-index: 2; top: 50%; left: var(--site--margin); transform: translateY(-50%); max-width: 46rem; margin-top: 0px; margin-bottom: 0px; pointer-events: none; }

.pg-index_marco_title-line { display: block; }

.pg-index_marco_title-line.is-indent { padding-left: clamp(3rem, 12vw, 12rem); }

.pg-index_marco_corner { position: absolute; z-index: 1; }

.pg-index_marco_corner.is-tl { top: var(--_spacing---space--5); left: var(--site--margin); }

.pg-index_marco_corner.is-tr { top: var(--_spacing---space--5); right: var(--site--margin); }

.pg-index_marco_corner.is-bl { bottom: var(--_spacing---space--5); left: var(--site--margin); }

.pg-index_marco_corner.is-br { bottom: var(--_spacing---space--5); right: var(--site--margin); }

.pg-index_marco_cta { position: absolute; z-index: 2; bottom: var(--_spacing---space--5); left: 50%; transform: translateX(-50%); }

@media (max-width: 991px) {
  .pg-index_marco_frame { width: min(72vw, 44rem); }
}

@media (max-width: 767px) {
  .pg-index_marco { flex-direction: column; justify-content: center; row-gap: var(--_spacing---space--6); }
  .pg-index_marco_frame { width: 100%; }
  .pg-index_marco_title { position: static; transform: none; pointer-events: auto; order: -1; }
  .pg-index_marco_title-line.is-indent { padding-left: 0px; }
  .pg-index_marco_corner { display: none; }
  .pg-index_marco_cta { position: static; transform: none; }
}

.pg-index_indice { position: relative; box-sizing: border-box; min-height: 82svh; display: grid; grid-template-columns: 1.1fr 1fr; }

.pg-index_indice_panel { display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; padding-top: var(--_spacing---section-space--small); padding-bottom: var(--_spacing---section-space--small); padding-left: var(--site--margin); padding-right: var(--_spacing---space--8); }

.pg-index_indice_kicker { display: block; margin-bottom: var(--_spacing---space--3); }

.pg-index_indice_title { font-size: var(--_typography---font-size--h1); max-width: 36rem; margin-bottom: var(--_spacing---space--6); }

.pg-index_indice_list { display: flex; flex-direction: column; margin-bottom: var(--_spacing---space--5); }

.pg-index_indice_row { display: grid; grid-template-columns: 6.5rem 1fr auto; column-gap: var(--_spacing---space--4); align-items: baseline; padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); padding-right: var(--_spacing---space--2); border-bottom-width: var(--border-width--main); border-bottom-style: solid; border-bottom-color: var(--_border---divider-color-md); color: inherit; text-decoration-line: none; transition-property: background-color, color, padding-left; transition-duration: 0.25s; transition-timing-function: ease; }

.pg-index_indice_row:first-child { border-top-width: var(--border-width--main); border-top-style: solid; border-top-color: var(--_border---divider-color-md); }

.pg-index_indice_row:hover { background-color: var(--_theme---text); color: var(--_theme---background); padding-left: var(--_spacing---space--4); }

.pg-index_indice_row-name { font-family: var(--_typography---font--primary-family); font-size: var(--_typography---font-size--h6); font-weight: 300; line-height: 1.3; margin-top: 0px; margin-bottom: 0px; }

.pg-index_indice_row-arrow { opacity: 0; transition-property: opacity; transition-duration: 0.25s; transition-timing-function: ease; }

.pg-index_indice_row:hover .pg-index_indice_row-arrow { opacity: 1; }

.pg-index_indice_media { position: relative; overflow: hidden; }

.pg-index_indice_img { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; display: block; padding-right: 0px; object-position: center bottom; }

.pg-index_indice_badge { position: absolute; left: var(--_spacing---space--5); bottom: var(--_spacing---space--5); display: flex; align-items: center; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--2); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--2); background-color: color-mix(in srgb, var(--swatch--light-100) 92%, transparent); }

.pg-index_indice_badge-img { width: 5rem; aspect-ratio: 4 / 3; object-fit: cover; display: block; background-color: var(--swatch--light-200); }

@media (max-width: 991px) {
  .pg-index_indice { grid-template-columns: 1fr; }
  .pg-index_indice_panel { padding-right: var(--site--margin); }
  .pg-index_indice_media { min-height: 55svh; }
}

@media (max-width: 478px) {
  .pg-index_indice_row { grid-template-columns: 4.5rem 1fr auto; column-gap: var(--_spacing---space--2); }
}

.pg-index_diptico { position: relative; box-sizing: border-box; display: flex; flex-direction: column; padding-top: var(--_spacing---section-space--small); }

.pg-index_diptico_head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; column-gap: var(--_spacing---space--6); row-gap: var(--_spacing---space--4); padding-left: var(--site--margin); padding-right: var(--site--margin); padding-bottom: var(--_spacing---space--5); }

.pg-index_diptico_title { font-size: var(--_typography---font-size--h1); max-width: 52rem; margin-bottom: 0px; }

.pg-index_diptico_head-side { display: flex; flex-direction: column; align-items: flex-end; row-gap: var(--_spacing---space--3); }

.pg-index_diptico_panels { display: grid; grid-template-columns: 1.35fr 1fr; column-gap: var(--_gap---size); row-gap: var(--_gap---size); align-items: start; padding-left: var(--site--margin); padding-right: var(--site--margin); padding-bottom: var(--_spacing---section-space--small); }

.pg-index_diptico_fig { position: relative; display: flex; flex-direction: column; margin: 0px; }

.pg-index_diptico_img { width: 100%; height: 54svh; object-fit: cover; display: block; }

.pg-index_diptico_cap { display: flex; justify-content: space-between; align-items: baseline; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--2); border-top-width: var(--border-width--main); border-top-style: solid; border-top-color: var(--_border---divider-color-lg); margin-top: var(--_spacing---space--2); }

@media (max-width: 767px) {
  .pg-index_diptico_panels { grid-template-columns: 1fr; }
  .pg-index_diptico_img { height: 42svh; }
  .pg-index_diptico_fig.is-detail .pg-index_diptico_img { height: 34svh; }
  .pg-index_diptico_head-side { align-items: flex-start; }
}

.pg-index_perfiles { position: relative; display: flex; flex-direction: column; }

.pg-index_perfiles_head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--2); padding-top: var(--_spacing---section-space--small); padding-bottom: var(--_spacing---space--5); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-index_perfiles_title { font-size: var(--_typography---font-size--h1); margin-bottom: 0px; }

.pg-index_perfiles_strip { display: flex; min-height: 48svh; }

.pg-index_perfiles_col { position: relative; flex: 1 1 0%; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding-top: var(--_spacing---space--3); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--4); padding-left: var(--_spacing---space--3); color: inherit; text-decoration-line: none; border-left-width: var(--border-width--main); border-left-style: solid; border-left-color: var(--swatch--light-100); transition-property: flex-grow; transition-duration: 0.45s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.pg-index_perfiles_col:first-child { border-left-width: 0px; }

.pg-index_perfiles_col:hover { flex-grow: 2.4; }

.pg-index_perfiles_col-img { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; display: block; transition-property: transform; transition-duration: 0.45s; transition-timing-function: ease; }

.pg-index_perfiles_col:hover .pg-index_perfiles_col-img { transform: scale(1.04); }

.pg-index_perfiles_col-scrim { position: absolute; right: 0px; bottom: 0px; left: 0px; height: 45%; pointer-events: none; background-image: linear-gradient(to top, color-mix(in srgb, var(--swatch--dark-900) 62%, transparent), transparent); }

.pg-index_perfiles_col-meta { position: relative; z-index: 1; display: flex; flex-direction: column; row-gap: 0px; color: var(--swatch--light-100); }

.pg-index_perfiles_col-meta .gl-mono_muted { color: color-mix(in srgb, var(--swatch--light-100) 60%, transparent); }

.pg-index_perfiles_foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; column-gap: var(--_spacing---space--5); row-gap: var(--_spacing---space--4); padding-top: var(--_spacing---space--5); padding-bottom: var(--_spacing---section-space--small); padding-left: var(--site--margin); padding-right: var(--site--margin); }

@media (max-width: 767px) {
  .pg-index_perfiles_strip { flex-wrap: wrap; }
  .pg-index_perfiles_col { flex-basis: 33.333%; min-height: 9rem; border-left-width: 0px; }
  .pg-index_perfiles_col:hover { flex-grow: 1; }
}

/* min-height is capped: `space-between` distributes any slack between the
   media card and the foot row, so on a tall display (≥1000px viewport) a bare
   `82svh` opened an ~800px void down the middle of the section. The cap is
   above the section's own content height, so on normal viewports this is a
   no-op and the section still grows past it whenever content needs more. */
.pg-index_reel { position: relative; box-sizing: border-box; min-height: min(82svh, 780px); display: flex; flex-direction: column; justify-content: space-between; padding-top: var(--_spacing---section-space--small); padding-bottom: var(--_spacing---section-space--small); padding-left: var(--site--margin); padding-right: var(--site--margin); }

.pg-index_reel_masthead { display: flex; justify-content: space-between; align-items: baseline; column-gap: var(--_spacing---space--4); margin-bottom: var(--_spacing---space--4); }

.pg-index_reel_word { font-family: var(--_typography---font--primary-family); font-size: clamp(3rem, 10.5vw, 8rem); font-weight: 200; line-height: var(--_typography---line-height--tightest); letter-spacing: var(--_typography---letter-spacing--negative-md); margin-top: 0px; margin-bottom: 0px; }

.pg-index_reel_word.is-accent { color: var(--swatch--brand-500); }

.pg-index_reel_band { position: relative; width: 100%; max-width: 52rem; margin: 0px auto; }

.pg-index_reel_video { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; object-position: center center; background-color: var(--swatch--dark-900); display: block; border-top-width: var(--border-width--main); border-right-width: var(--border-width--main); border-bottom-width: var(--border-width--main); border-left-width: var(--border-width--main); border-style: solid; border-top-color: var(--_border---divider-color-lg); border-right-color: var(--_border---divider-color-lg); border-bottom-color: var(--_border---divider-color-lg); border-left-color: var(--_border---divider-color-lg); }

.pg-index_reel_band-caption { position: absolute; left: var(--_spacing---space--4); bottom: var(--_spacing---space--4); z-index: 1; display: inline-flex; align-items: baseline; column-gap: var(--_spacing---space--3); padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--3); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--3); background-color: color-mix(in srgb, var(--swatch--light-100) 90%, transparent); }

.pg-index_reel_foot { display: grid; grid-template-columns: 1fr 1fr 1fr auto; column-gap: var(--_gap---size); row-gap: var(--_spacing---space--4); align-items: start; margin-top: var(--_spacing---space--4); padding-top: var(--_spacing---space--4); border-top-width: var(--border-width--main); border-top-style: solid; border-top-color: var(--_border---divider-color-lg); }

.pg-index_reel_proof { display: flex; flex-direction: column; row-gap: var(--_spacing---space--1); max-width: 16rem; }

.pg-index_reel_foot-cta { place-self: center end; }

.pg-index_reel_proof-text { margin-top: 0px; margin-bottom: 0px; }

@media (max-width: 991px) {
  .pg-index_reel_foot { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 478px) {
  .pg-index_reel_foot { grid-template-columns: 1fr; }
  .pg-index_reel_masthead { flex-direction: column; align-items: flex-start; }
  .pg-index_reel_word { font-size: clamp(3rem, 16vw, 5rem); }
}

.gl-home_camara_center { max-width: calc(60rem + 2 * var(--site--margin)); }

.gl-proyecto_desc { max-width: calc(42rem + 2 * var(--site--margin)); }

.gl-legal_content { max-width: calc(42rem + 2 * var(--site--margin)); }

.gl-catalogo_monogram { padding-top: var(--_spacing---space--1); padding-right: var(--_spacing---space--1); padding-bottom: var(--_spacing---space--1); padding-left: var(--_spacing---space--1); }

@media (max-width: 991px) {
  .pg-nav_links { column-gap: var(--_spacing---space--3); }
  .pg-nav_right { column-gap: var(--_spacing---space--3); }
  .pg-nav_group { min-width: 0px; }
  .gl-lab_editorial_text { order: 1; }
  .gl-lab_editorial_img { order: 2; }
  .gl-values_label { flex-shrink: 1; text-align: right; }
  .gl-catalogo_filters-grid { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
  .gl-catalogo_proximas_inner { column-gap: var(--_spacing---space--6); }
  .gl-catalogo_proximas_right { min-width: 0px; }
  .gl-catalogo_proximas_cells { min-width: 0px; grid-template-columns: repeat(3, minmax(0px, 1fr)); }
}

@media (max-width: 767px) {
  .gl-values_item { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--1); }
  .gl-values_label { padding-left: 0px; flex-shrink: 1; text-align: left; }
  .gl-statement_header { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--4); }
  .gl-statement_descriptor { max-width: 100%; text-align: left; }
  .gl-statement_body { max-width: 100%; }
  .gl-statement_coda { max-width: 100%; }
  .gl-catalogo_filters-grid { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
  .gl-catalogo_proximas_inner { grid-template-columns: minmax(0px, 1fr); row-gap: var(--_spacing---space--6); }
  .pg-sistema_specs_table { max-width: 100%; }
  .pg-sistema_specs_row { column-gap: var(--_spacing---space--3); }
  .gl-spec-row { column-gap: var(--_spacing---space--3); }
  .gl-contacto_form_row { min-width: 0px; }
  .gl-contacto_form_input { min-width: 0px; }
  .gl-contacto_form_textarea { min-width: 0px; }
  /* Statement + theme-transition read as full-bleed moments — they must fill
     the viewport on mobile, not sit at ~68% with the next section peeking in.
     svh (not vh) so the collapsing mobile URL bar can't overflow them. */
  .gl-theme-transition { min-height: 100svh; }
  .gl-home_statement { min-height: 100svh; }
  .gl-tt_bg { width: auto; height: 78svh; max-width: none; }
  .gl-home_statement_bg { width: auto; height: 78svh; max-width: none; }
  .gl-tt_center { width: 100%; }
  .gl-home_statement_center { width: 100%; }
  .gl-tt_quote { padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); }
  .gl-theme-transition.is-to-dark .gl-tt_quote { background-color: var(--swatch--light-100); }
  .gl-theme-transition.is-to-light .gl-tt_quote { background-color: var(--swatch--dark-900); }
  .gl-home_statement_quote { padding-top: var(--_spacing---space--2); padding-bottom: var(--_spacing---space--2); padding-left: var(--_spacing---space--4); padding-right: var(--_spacing---space--4); background-color: var(--swatch--dark-900); }
  .pg-sis_hero_frame { object-fit: cover; }
  .pg-sis_hero_scrim { background-image: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--swatch--light-100) 82%, transparent) 22%, color-mix(in srgb, var(--swatch--light-100) 82%, transparent) 74%, transparent); }
  .pg-index_hero { grid-template-columns: minmax(0px, 1fr); grid-template-rows: auto minmax(0px, 1fr); }
  .pg-index_hero_text { display: none; }
  .pg-index_hero_center { position: static; transform: none; width: 100%; grid-row-start: 1; grid-column-start: 1; text-align: left; pointer-events: auto; padding-top: calc(var(--nav--height) + var(--_spacing---space--6)); padding-right: var(--site--margin); padding-bottom: var(--_spacing---space--5); padding-left: var(--site--margin); }
  .pg-index_hero_sub { margin-left: 0px; margin-right: 0px; max-width: 30rem; }
  .pg-index_hero_media-wrap { grid-row-start: 2; grid-column-start: 1; min-height: 58svh; }
  .pg-index_hero_scrim { width: 100%; bottom: auto; height: 24%; background-image: linear-gradient(to bottom, var(--swatch--light-100), color-mix(in srgb, var(--swatch--light-100) 45%, transparent) 55%, transparent); }
  .pg-index_hero_dots { top: 50%; right: var(--site--margin); bottom: auto; left: auto; transform: translateY(-50%); flex-direction: column; row-gap: var(--_spacing---space--1); }
  .pg-index_hero_dot.is-active { width: var(--_spacing---space--1); height: var(--_spacing---space--4); }
  .pg-index_hero_card { background-color: var(--swatch--light-100); }
}

@media (max-width: 478px) {
  .gl-catalogo_filters-grid { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .pg-sistema_specs_row { grid-template-columns: minmax(0px, 1fr); row-gap: var(--_spacing---space--1); }
  .gl-spec-row { flex-direction: column; align-items: flex-start; row-gap: var(--_spacing---space--1); }
  .pg-index_hero_media-wrap { min-height: 52svh; }
}
/* ══════════════════════════════════════════════════════════════════════
   CONTACT FORMS — real controls (gl-contacto / pg-contacto)
   The contact pages used to fake their fields with <div>s. These rules
   make the real <input>/<select>/<textarea> render like those divs did:
   the family classes above still carry the border, padding, font and
   colour — this block only strips the UA control chrome, restores the
   typed-text colour, and moves the muted tone onto ::placeholder.
   Longhand only, no forced overrides, no new breakpoints.
   ══════════════════════════════════════════════════════════════════════ */

input.gl-contacto_form_input,
select.gl-contacto_form_input,
textarea.gl-contacto_form_textarea,
input.pg-contacto_form-input,
select.pg-contacto_form-select,
textarea.pg-contacto_form-textarea {
  appearance: none;
  -webkit-appearance: none;
  color: var(--_theme---text);
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
  outline-width: 0px;
  width: 100%;
  min-width: 0px;
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
  transition-property: border-color;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}

input.gl-contacto_form_input,
select.gl-contacto_form_input,
input.pg-contacto_form-input,
select.pg-contacto_form-select {
  line-height: 1.4;
}

textarea.gl-contacto_form_textarea,
textarea.pg-contacto_form-textarea {
  line-height: 1.6;
  resize: vertical;
}

input.gl-contacto_form_input::placeholder,
textarea.gl-contacto_form_textarea::placeholder {
  color: color-mix(in srgb, var(--_theme---text) 25%, transparent);
}

input.pg-contacto_form-input::placeholder,
textarea.pg-contacto_form-textarea::placeholder {
  color: color-mix(in srgb, var(--_theme---text) 40%, transparent);
}

/* Focus: no UA ring — the border lights up instead (same idea as
   input.gl-filter-input:focus-visible above). */
input.gl-contacto_form_input:focus-visible,
select.gl-contacto_form_input:focus-visible,
textarea.gl-contacto_form_textarea:focus-visible {
  border-bottom-color: var(--_theme---text);
  border-top-color: var(--_theme---text);
  border-right-color: var(--_theme---text);
  border-left-color: var(--_theme---text);
}

input.pg-contacto_form-input:focus-visible,
select.pg-contacto_form-select:focus-visible,
textarea.pg-contacto_form-textarea:focus-visible {
  border-top-color: var(--_theme---text);
  border-right-color: var(--_theme---text);
  border-bottom-color: var(--_theme---text);
  border-left-color: var(--_theme---text);
}

/* Select chevron. appearance:none removed the native arrow, so it is
   drawn as a background SVG — one per brand because a data URI cannot
   read currentColor. The blank right third of the viewBox is the gap. */
select.gl-contacto_form_select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 8' fill='none' stroke='%23ede7dd' stroke-width='1.2'%3E%3Cpath d='M1.5 2 L6.5 6.5 L11.5 2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 100% 50%;
  background-size: 1.125rem 0.5rem;
  padding-top: 0.5rem;
  padding-right: 1.25rem;
  padding-bottom: 0.5rem;
  padding-left: 0px;
  cursor: pointer;
}

select.pg-contacto_form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 8' fill='none' stroke='%230B0B0B' stroke-width='1.2'%3E%3Cpath d='M1.5 2 L6.5 6.5 L11.5 2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 100% 50%;
  background-size: 1.125rem 0.5rem;
  padding-top: 0.625rem;
  padding-right: 1.75rem;
  padding-bottom: 0.625rem;
  padding-left: 0.75rem;
  cursor: pointer;
}

/* Invalid field flagged by forms.js. #C6462F is the one non-palette
   colour in this block: the brand accent (#1400FF) disappears against
   the dark theme at 1px, this red is legible on both #0B0B0B and
   #ede7dd. */
input.gl-contacto_form_input.is-invalid,
select.gl-contacto_form_input.is-invalid,
textarea.gl-contacto_form_textarea.is-invalid,
input.pg-contacto_form-input.is-invalid,
select.pg-contacto_form-select.is-invalid,
textarea.pg-contacto_form-textarea.is-invalid {
  border-top-color: #C6462F;
  border-right-color: #C6462F;
  border-bottom-color: #C6462F;
  border-left-color: #C6462F;
}

/* Cantidad estimada — the fake tags are now a real radio group. The
   tag keeps .gl-tag; this combo only makes room for the native input. */
label.pg-contacto_form-tag {
  align-items: center;
  column-gap: 0.4rem;
  cursor: pointer;
}

.pg-contacto_form-tag_radio {
  width: 0.75rem;
  height: 0.75rem;
  flex-grow: 0;
  flex-shrink: 0;
  accent-color: var(--_theme---text);
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
  cursor: pointer;
}

.pg-contacto_form-upload_link {
  color: var(--_theme---text);
  text-decoration-line: underline;
  text-underline-offset: 0.15em;
}

/* Submit button while the request is in flight (class toggled by
   forms.js, so no attribute selector is needed). */
.gl-btn_skew_element.is-sending {
  opacity: 0.6;
  cursor: progress;
}

/* Status region — aria-live="polite", written by forms.js. Overrides
   .gl-mono's uppercase because these are full sentences. */
.gl-form_status {
  font-family: var(--_typography---font--secondary-family);
  font-size: var(--_typography---font-size--label-sm);
  letter-spacing: 0.04em;
  text-transform: none;
  line-height: 1.6;
  color: color-mix(in srgb, var(--_theme---text) 55%, transparent);
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
  max-width: 34rem;
}

.gl-form_status.is-pending {
  color: color-mix(in srgb, var(--_theme---text) 65%, transparent);
}

.gl-form_status.is-success {
  color: var(--_theme---text);
}

.gl-form_status.is-error {
  color: #C6462F;
}

/* Spam honeypot (_gotcha). Hidden from sight and from the tab order,
   but still a real, submittable field — Formspree drops anything that
   arrives with it filled in. */
.gl-form_honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow-x: hidden;
  overflow-y: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  padding-top: 0px;
  padding-right: 0px;
  padding-bottom: 0px;
  padding-left: 0px;
  margin-top: -1px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: -1px;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
}

/* The project reel has no poster assets. pg-reel.js adds this class on
   touch and small-screen devices so empty video frames are not shown. */
.pg-reel.is-empty {
  display: none;
}

/* ── Mobile scroll-driven panel stack (gl-scroll-stack.js) ─────────────
   Opt-in via data-gl-scroll-stack. The JS adds .gl-scroll-stack_host to
   the section and .gl-scroll-stack to the container, then flags the
   active child with .is-active — all geometry is here so the expansion
   is a plain CSS transition (smooth, interruptible, GPU-friendly enough
   at this item count) rather than a per-frame JS tween. */
@media (max-width: 767px) {
  .gl-scroll-stack_host { height: var(--gl-stack-runway); }

  .gl-scroll-stack {
    position: sticky;
    top: 0px;
    height: 100svh;
    min-height: 0px;
    /* The stack is itself a flex ITEM of the section (.gl-home_spectrum_panels
       ships flex-grow: 1), and along a column axis flex sizing beats `height`
       — without these three the pin resolved to ~3x the viewport. */
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: 100svh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: hidden;
  }

  /* Explicit bases, not grow ratios. With flex-grow the panels' own content
     minimums ate the distribution and the active panel landed at ~41svh —
     under the 50svh floor this section is supposed to hold. Sizing the active
     panel directly makes the floor guaranteed regardless of content, and the
     JS hands us --gl-stack-rest (the leftover split across the others) since
     only it knows the panel count. */
  .gl-scroll-stack > * {
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: var(--gl-stack-rest, 11svh);
    min-height: 0px;
    transition-property: flex-basis;
    transition-duration: 0.55s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  }

  .gl-scroll-stack > .is-active { flex-basis: var(--gl-stack-active, 56svh); }

  /* The panel art is cropped by the panel box, so it must fill whatever
     height the panel currently has instead of keeping its natural size. */
  .gl-scroll-stack > * > img { width: 100%; height: 100%; object-fit: cover; }

  /* Labels fade up only on the panel being read. */
  .gl-scroll-stack > * .gl-home_spectrum_panel-meta {
    opacity: 0;
    transition-property: opacity;
    transition-duration: 0.4s;
    transition-timing-function: ease;
  }
  .gl-scroll-stack > .is-active .gl-home_spectrum_panel-meta { opacity: 1; }
}
