/* Optic One – Lens Options: front-end */
.oolo-native--hidden { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; border: 0 !important; opacity: 0; pointer-events: none; }

.oolo-swatches { --oolo-size: 56px; --oolo-accent: #16406b; --oolo-ring: var(--oolo-accent); list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; }
.oolo-swatches li.oolo-swatch { list-style: none; margin: 0; padding: 0; cursor: pointer; display: inline-flex; flex-direction: column; align-items: center; gap: 4px; max-width: calc(var(--oolo-size) + 24px); outline: none; position: relative; }
.oolo-swatch__inner { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: var(--oolo-size); height: var(--oolo-size); border: 2px solid transparent; box-shadow: 0 0 0 1px rgba(0,0,0,.14); background: #fff; overflow: hidden; transition: box-shadow .12s ease, border-color .12s ease; }
.oolo-shape-round .oolo-swatch__inner { border-radius: 50%; }
.oolo-shape-square .oolo-swatch__inner { border-radius: 10px; }
.oolo-swatch__inner img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; border-radius: inherit; }
.oolo-swatch__color { width: 100%; height: 100%; display: block; border-radius: inherit; }
.oolo-swatch--button .oolo-swatch__inner { width: auto; min-width: var(--oolo-size); height: auto; min-height: 40px; padding: 0 14px; border-radius: 999px; font-size: 14px; line-height: 1.2; white-space: nowrap; }
.oolo-swatches li.oolo-swatch--button { max-width: none; flex: 0 0 auto; }
.oolo-swatch--button .oolo-swatch__inner { box-sizing: border-box; }
.oolo-swatch__name { font-size: 12px; line-height: 1.2; text-align: center; color: inherit; opacity: .8; }

.oolo-swatch:hover .oolo-swatch__inner,
.oolo-swatch:focus-visible .oolo-swatch__inner { box-shadow: 0 0 0 1px rgba(0,0,0,.25), 0 4px 12px rgba(0,0,0,.12); }
.oolo-swatch.is-selected .oolo-swatch__inner { border-color: var(--oolo-ring); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--oolo-ring); }
.oolo-swatch.is-selected .oolo-swatch__name { opacity: 1; font-weight: 600; }
.oolo-swatch--button.is-selected .oolo-swatch__inner { background: var(--oolo-accent); border-color: var(--oolo-accent); }
.oolo-swatch--button.is-selected .oolo-swatch__text { color: #fff; }

.oolo-swatch.is-disabled { cursor: not-allowed; opacity: .35; }
.oolo-swatch--oos .oolo-swatch__inner { opacity: .55; }
.oolo-swatch--oos .oolo-swatch__inner::after { content: ""; position: absolute; left: 50%; top: 50%; width: 130%; height: 2px; background: rgba(200,0,0,.75); transform: translate(-50%,-50%) rotate(-45deg); pointer-events: none; }
.oolo-swatch--oos .oolo-swatch__inner { position: relative; }

.oolo-selected-line { display: block; min-height: 30px; margin: 8px 0 0; line-height: 30px; }
.oolo-selected-line { --oolo-accent: #16406b; }
.oolo-selected-name { display: inline-block; padding: 0 12px; border-radius: 999px; background: var(--oolo-accent); color: #fff; font-size: 15px; font-weight: 700; line-height: 28px; letter-spacing: .01em; vertical-align: top; text-transform: none; white-space: nowrap; }
.oolo-selected-name:empty { visibility: hidden; }
.oolo-selected-name.is-preview { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; font-weight: 600; }
.oolo-selected-name.is-placeholder { background: transparent; color: inherit; opacity: .6; font-weight: 500; padding-left: 0; }

/* Power picker */
.oolo-power { --oolo-accent: #16406b; margin: 16px 0 14px; padding: 0; border: 2px solid var(--oolo-accent); border-radius: 14px; background: #fff; overflow: hidden; scroll-margin: 120px 0 160px; box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.oolo-power__head { background: var(--oolo-accent); color: #fff; padding: 12px 18px; display: flex; flex-direction: column; gap: 2px; }
.oolo-power__title { font-size: 20px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; line-height: 1.2; color: #fff; }
.oolo-power__hint { font-size: 13px; line-height: 1.35; opacity: .88; color: #fff; }
.oolo-power__body { padding: 14px 18px 16px; }
.oolo-power__label { display: block; font-weight: 700; margin: 0 0 6px; color: var(--oolo-accent); font-size: 15px; }
.oolo-power__label .required { color: #c0392b; text-decoration: none; border: 0; }
.oolo-power__select, .oolo-power__qty input { font-size: 16px; } /* 16px stops iOS Safari zooming the page when a field is focused */
.oolo-power__select { width: 100%; max-width: 340px; min-height: 46px; border: 1.5px solid rgba(0,0,0,.22); border-radius: 8px; padding: 0 12px; background-color: #fff; }
.oolo-power__select:focus { outline: none; border-color: var(--oolo-accent); box-shadow: 0 0 0 3px rgba(22,64,107,.15); }
.oolo-power__toggle { display: flex; align-items: center; gap: 10px; margin: 14px 0 0; padding: 10px 12px; border: 1px dashed rgba(0,0,0,.2); border-radius: 10px; font-size: 15px; font-weight: 600; cursor: pointer; background: rgba(0,0,0,.02); }
.oolo-power__toggle input { margin: 0; width: 20px; height: 20px; accent-color: var(--oolo-accent); }
.oolo-power__eyes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 12px; scroll-margin: 120px 0 160px; }
.oolo-power__eye { padding: 12px; border: 1px solid rgba(0,0,0,.1); border-radius: 10px; background: rgba(22,64,107,.03); }
.oolo-power__eye-fields { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.oolo-power__eye-fields .oolo-power__select { flex: 1 1 140px; max-width: none; }
.oolo-power__fields { display: flex; flex-wrap: wrap; gap: 10px 12px; width: 100%; }
.oolo-power__field { flex: 1 1 120px; min-width: 110px; }
.oolo-power__field label { display: block; font-size: 13px; font-weight: 700; margin: 0 0 4px; color: var(--oolo-accent); }
.oolo-power__field .oolo-power__select { width: 100%; max-width: none; }
.oolo-power__eye-fields .oolo-power__fields { flex: 1 1 100%; }
.oolo-power__qty { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.oolo-power__qty input { width: 68px; min-height: 46px; text-align: center; border: 1.5px solid rgba(0,0,0,.22); border-radius: 8px; }
.oolo-power__qty em { font-style: normal; font-size: 13px; opacity: .75; }
.oolo-power__plano { margin: 0; font-weight: 700; color: var(--oolo-accent); }
.oolo-power__error { margin: 10px 0 0; color: #b00020; font-weight: 700; }
.oolo-power__price { margin: 12px 0 0; font-weight: 600; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 15px; }
.oolo-power__price .amount { font-weight: 800; color: var(--oolo-accent); }
.oolo-power__price-note { font-weight: 500; opacity: .85; }
.oolo-power__eye-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.oolo-power__skip { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 13px; font-weight: 600; opacity: .8; cursor: pointer; white-space: nowrap; }
.oolo-power__skip input { margin: 0; width: 16px; height: 16px; accent-color: var(--oolo-accent); }
.oolo-power__eye.is-skipped .oolo-power__eye-fields { opacity: .35; pointer-events: none; }
.oolo-power__eye.is-skipped .oolo-power__skip { opacity: 1; }
.oolo-power__pairs { margin-top: 12px; }
.oolo-power__note { margin: 10px 0 0; padding: 9px 12px; border-radius: 8px; background: rgba(22,64,107,.06); font-size: 14px; line-height: 1.4; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.oolo-power__note-eye strong { color: var(--oolo-accent); font-weight: 700; }
.oolo-power--paired .oolo-power__eyes { margin-top: 0; }
.oolo-power__shared { margin: 0 0 12px; padding: 0 0 12px; border-bottom: 1px dashed rgba(0,0,0,.15); }
.oolo-power__field--shared { flex: 1 1 100%; }
.oolo-power__field--shared .oolo-power__select { max-width: 340px; }
.oolo-price-perlens { display: inline; }
.oolo-price-perlens .oolo-price-lens { font-size: .85em; opacity: .85; }
.oolo-power [hidden] { display: none !important; }
@media (max-width: 560px) { .oolo-power__eyes { grid-template-columns: 1fr; } .oolo-power__title { font-size: 18px; } .oolo-power__body { padding: 12px 14px 14px; } }

.single_add_to_cart_button.oolo-locked { opacity: .55; cursor: not-allowed; }

/* Add-ons (0.7.0): optional accessories offered by rule, each its own cart line linked to the main product */
.oolo-addons { --oolo-accent: #16406b; margin: 16px 0 14px; border: 2px solid var(--oolo-accent); border-radius: 14px; background: #fff; overflow: hidden; box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.oolo-addons__head { background: var(--oolo-accent); color: #fff; padding: 12px 18px; display: flex; flex-direction: column; gap: 2px; }
.oolo-addons__title { font-size: 20px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; line-height: 1.2; color: #fff; }
.oolo-addons__hint { font-size: 13px; line-height: 1.35; opacity: .88; color: #fff; }
.oolo-addons__list { display: grid; grid-template-columns: 1fr; gap: 10px; padding: 14px 18px 16px; }
.oolo-addon { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin: 0; padding: 10px 12px; border: 1.5px solid rgba(0,0,0,.14); border-radius: 12px; cursor: pointer; background: #fff; font-weight: 500; line-height: 1.3; transition: border-color .12s ease, box-shadow .12s ease, background .12s ease; }
.oolo-addon:hover { border-color: rgba(22,64,107,.5); }
.oolo-addon.is-checked { border-color: var(--oolo-accent); background: rgba(22,64,107,.04); box-shadow: 0 0 0 1px var(--oolo-accent); }
.oolo-addon input[type="checkbox"] { margin: 0; width: 22px; height: 22px; accent-color: var(--oolo-accent); flex: none; cursor: pointer; }
.oolo-addon__img { width: 56px; height: 56px; border-radius: 8px; overflow: hidden; background: #f3f4f6; display: inline-flex; align-items: center; justify-content: center; }
.oolo-addon__img img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.oolo-addon__noimg { display: block; width: 26px; height: 26px; border-radius: 50%; border: 2px solid rgba(22,64,107,.25); }
.oolo-addon__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.oolo-addon__name { font-weight: 700; color: var(--oolo-accent); font-size: 15px; }
.oolo-addon__desc { font-size: 13px; line-height: 1.35; opacity: .8; }
.oolo-addon__price { font-weight: 800; color: var(--oolo-accent); white-space: nowrap; font-size: 15px; }
.oolo-addon__price .amount { color: inherit; font-weight: inherit; }
.oolo-addon.is-oos { opacity: .55; cursor: not-allowed; }
.oolo-addon.is-oos .oolo-addon__price { font-weight: 600; color: #b00020; }
.oolo-addons__total { margin: 0; padding: 0 18px 14px; font-weight: 700; color: var(--oolo-accent); }
.oolo-addons [hidden] { display: none !important; }
.oolo-addon-qty { font-weight: 600; }
@media (max-width: 560px) { .oolo-addons__list { padding: 12px 14px 14px; gap: 8px; } .oolo-addons__title { font-size: 18px; } .oolo-addon { gap: 10px; padding: 9px 10px; } .oolo-addon__img { width: 48px; height: 48px; } }

/* Add-ons compact layout (0.7.1, default): one row of small tiles — picture, name, price, corner tick */
.oolo-addons--compact { margin: 14px 0 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.oolo-addons__label { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--oolo-accent); line-height: 1.2; }
.oolo-addons__tiles { --oolo-cols: 3; display: grid; grid-template-columns: repeat(var(--oolo-cols), minmax(0, 1fr)); gap: 8px; }
.oolo-tile { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; margin: 0; padding: 10px 6px 8px; border: 1.5px solid rgba(0,0,0,.14); border-radius: 10px; background: #fff; text-align: center; cursor: pointer; line-height: 1.25; font-weight: 500; transition: border-color .12s ease, box-shadow .12s ease, background .12s ease; }
.oolo-tile:hover { border-color: rgba(22,64,107,.5); }
.oolo-tile:focus-within { outline: 2px solid var(--oolo-accent); outline-offset: 2px; }
.oolo-tile.is-checked { border-color: var(--oolo-accent); background: rgba(22,64,107,.04); box-shadow: 0 0 0 1px var(--oolo-accent); }
.oolo-tile__cb { position: absolute !important; top: 0; left: 0; width: 1px !important; height: 1px !important; margin: 0 !important; opacity: 0; pointer-events: none; }
.oolo-tile__tick { position: absolute; top: 6px; right: 6px; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid rgba(0,0,0,.25); background: #fff; box-sizing: border-box; }
.oolo-tile.is-checked .oolo-tile__tick { background: var(--oolo-accent); border-color: var(--oolo-accent); }
.oolo-tile.is-checked .oolo-tile__tick::after { content: ""; position: absolute; left: 5px; top: 2px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.oolo-tile__img { width: 56px; height: 56px; border-radius: 8px; overflow: hidden; background: #f3f4f6; display: inline-flex; align-items: center; justify-content: center; }
.oolo-tile__img img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.oolo-tile__name { font-size: 12.5px; font-weight: 600; color: var(--oolo-accent); overflow-wrap: anywhere; }
.oolo-tile__price { font-size: 13px; font-weight: 800; color: var(--oolo-accent); white-space: nowrap; }
.oolo-tile__price .amount { color: inherit; font-weight: inherit; }
.oolo-tile.is-oos { opacity: .5; cursor: not-allowed; }
.oolo-tile.is-oos .oolo-tile__price { color: #b00020; font-weight: 600; white-space: normal; }
.oolo-addons--compact .oolo-addons__total { padding: 8px 0 0; font-size: 14px; }
@media (max-width: 560px) { .oolo-addons__tiles { gap: 6px; } .oolo-tile { padding: 9px 4px 7px; } .oolo-tile__img { width: 48px; height: 48px; } .oolo-tile__name { font-size: 12px; } }

/* Add-ons list layout (0.7.4, default): slim lines right under the product price — tick, small picture, name, price */
.oolo-addons--list { margin: 6px 0 14px; max-width: 460px; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.oolo-addons--list[hidden] { display: none !important; }
.oolo-addons--list .oolo-addons__label { margin: 0 0 4px; font-size: 11.5px; }
.oolo-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.oolo-list li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.oolo-list li::before { content: none !important; }
.oolo-line { display: flex; align-items: center; gap: 10px; margin: 0; padding: 4px 0; cursor: pointer; line-height: 1.3; font-weight: 500; }
.oolo-line__cb { -webkit-appearance: checkbox !important; appearance: auto !important; flex: none; width: 17px !important; height: 17px !important; margin: 0 !important; accent-color: var(--oolo-accent); cursor: pointer; }
.oolo-line__img { flex: none; width: 36px; height: 36px; border-radius: 6px; overflow: hidden; background: #f3f4f6; display: inline-flex; align-items: center; justify-content: center; }
.oolo-line__img img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.oolo-line__img .oolo-addon__noimg { width: 18px; height: 18px; }
.oolo-line__name { flex: 1 1 auto; min-width: 0; font-size: 14px; color: inherit; }
.oolo-line__price { flex: none; font-size: 14px; font-weight: 700; color: var(--oolo-accent); white-space: nowrap; }
.oolo-line__price .amount { color: inherit; font-weight: inherit; }
.oolo-line.is-checked .oolo-line__name { font-weight: 600; color: var(--oolo-accent); }
.oolo-line.is-oos { opacity: .5; cursor: not-allowed; }
.oolo-line.is-oos .oolo-line__price { color: #b00020; font-weight: 600; }
.oolo-addons--list .oolo-addons__total { padding: 4px 0 0; font-size: 13px; }
@media (max-width: 560px) { .oolo-line__name, .oolo-line__price { font-size: 13.5px; } }
