{"title":"The Ovia Range","description":"\u003cdiv class=\"ovrd\"\u003e\n  \u003cp class=\"ovrd-lead\"\u003e\u003cstrong\u003eThe complete Ovia Milan range\u003c\/strong\u003e — solid brass tapware, showers and matching accessories in six enduring finishes.\u003c\/p\u003e\n  \u003cp\u003eMilan tapware is machined from solid, corrosion-resistant brass around a precision European cartridge, and every piece comes in your choice of Brushed Gold, Warm Brushed Nickel, Champagne, Chrome, Gun Metal or Matte Black — one silhouette, carried through the whole bathroom.\u003c\/p\u003e\n  \u003ch2\u003eWhat's in the range\u003c\/h2\u003e\n  \u003cul\u003e\n    \u003cli\u003eBasin mixers and tall basin mixers\u003c\/li\u003e\n    \u003cli\u003eWall mixers, diverter mixers and mixer + spout sets\u003c\/li\u003e\n    \u003cli\u003eBath and basin spouts\u003c\/li\u003e\n    \u003cli\u003eKitchen mixers, including pull-out\u003c\/li\u003e\n    \u003cli\u003eRail showers and twin showers\u003c\/li\u003e\n    \u003cli\u003eTowel rails, robe hooks and toilet roll holders\u003c\/li\u003e\n  \u003c\/ul\u003e\n  \u003cp\u003eTapware is WELS-registered where rated, WaterMark certified, and every piece is backed by a lifetime replacement warranty that includes the finish itself.\u003c\/p\u003e\n  \u003cp class=\"ovrd-sign\"\u003eBuilt to be the last one you buy.\u003c\/p\u003e\n  \u003cp class=\"ovrd-brand\"\u003eMilan is one chapter of the wider Ovia catalogue — Ovia also makes toilet suites, baths, vanities and more for the whole bathroom. \u003ca href=\"\/collections\/ovia\"\u003eBrowse the full Ovia collection\u003c\/a\u003e.\u003c\/p\u003e\n\u003cstyle\u003e\n    .ovrd{font-family:'Outfit',sans-serif;color:#3d3b36;line-height:1.75;font-size:15px;}\n    .ovrd p{margin:0 0 13px;}\n    .ovrd .ovrd-lead{margin-bottom:20px;}\n    .ovrd .ovrd-lead strong{font-weight:500;color:#26241f;}\n    .ovrd h2{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#8a8781;font-weight:600;margin:18px 0 8px;}\n    .ovrd ul{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 26px;}\n    .ovrd li{padding-left:16px;position:relative;font-size:14px;}\n    .ovrd li::before{content:\"\";position:absolute;left:0;top:.72em;width:7px;height:1.5px;background:#9A7B46;}\n    .ovrd .ovrd-sign{margin-top:16px;font-style:italic;color:#6f6c66;font-size:14.5px;}\n    .ovrd .ovrd-brand{margin-top:18px;padding-top:14px;border-top:1px solid #e9e7e3;font-size:14px;color:#6f6c66;}\n    .ovrd .ovrd-brand a{color:#9A7B46;text-decoration:underline;text-underline-offset:2px;}\n    @media (max-width:640px){.ovrd ul{grid-template-columns:1fr;}}\n  \u003c\/style\u003e\n\u003c\/div\u003e\n","products":[{"product_id":"ovia-milan-swivel-kitchen-mixer-brushed-gold","title":"Ovia Milan Gooseneck Kitchen Mixer Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eKitchen Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e kitchen mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\" alt=\"Ovia Milan Kitchen Mixer in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe kitchen tap earns its keep — filling pots, rinsing produce, washing up long after dinner. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a tall, swivelling gooseneck in solid brass, finished in brushed gold sealed to hold its colour for the life of the room — smooth on a European cartridge, with a spout tall enough to clear a full sink. Made to take a decade of daily use without a wobble or a drip.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and certified safe for the water you drink and cook with.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_f32e62f0-d5bb-43d6-a744-249776fccb25.png?v=1779892505\" alt=\"Milan kitchen mixer gooseneck\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eA tall gooseneck\u003c\/b\u003eOne clean arc of solid brass.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_B_2e582b48-2daf-4c2f-a20a-6f70c9947915.png?v=1779892505\" alt=\"Milan kitchen mixer swivel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSwivels across\u003c\/b\u003eReaches both bowls of a double sink.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_C_c0f2c70b-be9e-4c2e-8692-f0144ec942f9.png?v=1779892505\" alt=\"Milan kitchen mixer brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the kitchen\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_f32e62f0-d5bb-43d6-a744-249776fccb25.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_7ad32538-79db-49ef-8ce4-afe1f483fc7b.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_A_fc469835-3f1b-4e2a-9471-ec906fee9378.png?v=1779892506\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_7bc0d534-83e1-46e2-80b7-a593b96a8da4.png?v=1779892507\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_e823402b-da48-4e5e-b6cc-edd90f60fa04.png?v=1779892508\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_0a00a836-9e13-40d5-90f9-04f8a6d69bd8.png?v=1779892511\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_B.png?v=1779883195\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e364 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e210 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T48171  |  SKU MIL08BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46219453137045,"sku":"OVMI25KBG","price":211.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_44a8d4e1-2cb1-4149-8d18-95f9a3a659c3.png?v=1785829815"},{"product_id":"ovia-milan-wall-mounted-spout-brushed-nickel","title":"Ovia Milan Bath\/Basin Spout Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBath \u0026amp; Basin Spout\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e spout you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Bath \u0026amp; Basin Spout in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA spout is the quiet half of the equation — pure water delivery, no mixing. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e bath \u0026amp; basin spout pours from a single, downturned outlet in DZR brass, finished in brushed nickel sealed to hold its colour for the life of the room. Pair it with a Milan wall mixer for the controls — clean, weighted, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eType\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBath \u0026amp; Basin\u003csmall\u003eoutlet\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or leach in constant contact with water the way ordinary brass can over the years.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure water delivery\u003c\/div\u003e\n\u003cp\u003eNo cartridge, no moving parts — just a clean, downturned outlet. Pair it with a Milan wall mixer and you control hot and cold from the wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the spout.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_A_77d52827-2c39-4ca9-9553-031f160ceb2b.png?v=1779892556\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003ePure delivery\u003c\/b\u003eOne clean, downturned outlet.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_B_e33f18d3-d4bf-44c6-8b22-77dbb0fe555b.png?v=1779892554\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBath or basin\u003c\/b\u003eA wall spout — no mixing.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_C_8d516f87-d7c0-4ca3-abdf-20eaef203992.png?v=1779892554\" alt=\"Milan spout brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_A_3c1c6c5d-76c8-4c42-b307-d1d090f9b12d.png?v=1779892553\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_A_77d52827-2c39-4ca9-9553-031f160ceb2b.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_A_d198a680-3eca-4c70-9727-f6f2775fe749.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_A_8f93c9df-df33-476e-82b1-a47c41d86a01.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_A_19ec04bd-9736-4441-9d4f-b564ee8fc17f.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_A_dfec5d9f-5894-4cae-a7b3-f8d4da8b233c.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_B.png?v=1779883577\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL10200BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46219453169813,"sku":"OVKSP15","price":61.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_A_9431a95a-fbad-4d74-b784-ddac37033c23.png?v=1785829865"},{"product_id":"ovia-milan-swivel-kitchen-mixer-brushed-nickel","title":"Ovia Milan Gooseneck Kitchen Mixer Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eKitchen Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e kitchen mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\" alt=\"Ovia Milan Kitchen Mixer in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe kitchen tap earns its keep — filling pots, rinsing produce, washing up long after dinner. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a tall, swivelling gooseneck in solid brass, finished in brushed nickel sealed to hold its colour for the life of the room — smooth on a European cartridge, with a spout tall enough to clear a full sink. Made to take a decade of daily use without a wobble or a drip.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and certified safe for the water you drink and cook with.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_7ad32538-79db-49ef-8ce4-afe1f483fc7b.png?v=1779892505\" alt=\"Milan kitchen mixer gooseneck\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eA tall gooseneck\u003c\/b\u003eOne clean arc of solid brass.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_B_ae146a52-f8d0-4b06-8281-659ae3a046f5.png?v=1779892506\" alt=\"Milan kitchen mixer swivel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSwivels across\u003c\/b\u003eReaches both bowls of a double sink.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_C_6cf1c03a-0045-4746-bcdc-1f0ad76b2287.png?v=1779892505\" alt=\"Milan kitchen mixer brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the kitchen\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_f32e62f0-d5bb-43d6-a744-249776fccb25.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_7ad32538-79db-49ef-8ce4-afe1f483fc7b.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_A_fc469835-3f1b-4e2a-9471-ec906fee9378.png?v=1779892506\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_7bc0d534-83e1-46e2-80b7-a593b96a8da4.png?v=1779892507\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_e823402b-da48-4e5e-b6cc-edd90f60fa04.png?v=1779892508\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_0a00a836-9e13-40d5-90f9-04f8a6d69bd8.png?v=1779892511\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_B.png?v=1779883348\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e364 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e210 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T48171  |  SKU MIL08BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46219453268117,"sku":"OVMI25KBN","price":159.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_0ebbc03a-f901-4c13-8f09-ebbae60baa31.png?v=1785829823"},{"product_id":"ovia-milan-wall-mounted-spout-chrome","title":"Ovia Milan Bath\/Basin Spout Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBath \u0026amp; Basin Spout\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e spout you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Bath \u0026amp; Basin Spout in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA spout is the quiet half of the equation — pure water delivery, no mixing. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e bath \u0026amp; basin spout pours from a single, downturned outlet in DZR brass, finished in chrome, multi-layer electroplated to stay hard-wearing and true for the life of the room. Pair it with a Milan wall mixer for the controls — clean, weighted, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eType\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBath \u0026amp; Basin\u003csmall\u003eoutlet\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or leach in constant contact with water the way ordinary brass can over the years.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure water delivery\u003c\/div\u003e\n\u003cp\u003eNo cartridge, no moving parts — just a clean, downturned outlet. Pair it with a Milan wall mixer and you control hot and cold from the wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the spout.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_A_8f93c9df-df33-476e-82b1-a47c41d86a01.png?v=1779892556\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003ePure delivery\u003c\/b\u003eOne clean, downturned outlet.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_B_2969ae3f-edb8-4528-8219-f4ad7010615f.png?v=1779892556\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBath or basin\u003c\/b\u003eA wall spout — no mixing.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_C_2b0248b4-1690-4a2f-ac36-e17c55b3d313.png?v=1779892555\" alt=\"Milan spout chrome\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_A_3c1c6c5d-76c8-4c42-b307-d1d090f9b12d.png?v=1779892553\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_A_77d52827-2c39-4ca9-9553-031f160ceb2b.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_A_d198a680-3eca-4c70-9727-f6f2775fe749.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_A_8f93c9df-df33-476e-82b1-a47c41d86a01.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_A_19ec04bd-9736-4441-9d4f-b564ee8fc17f.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_A_dfec5d9f-5894-4cae-a7b3-f8d4da8b233c.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_B.png?v=1779883615\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL10200CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46219454120085,"sku":"OVKSP15CH","price":57.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_A_2a588eb4-6f24-4a29-b71d-c548435b4a7a.png?v=1785829874"},{"product_id":"ovia-milan-swivel-kitchen-mixer-chrome","title":"Ovia Milan Gooseneck Kitchen Mixer Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eKitchen Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e kitchen mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\" alt=\"Ovia Milan Kitchen Mixer in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe kitchen tap earns its keep — filling pots, rinsing produce, washing up long after dinner. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a tall, swivelling gooseneck in solid brass, finished in chrome, multi-layer electroplated to stay hard-wearing and true for the life of the room — smooth on a European cartridge, with a spout tall enough to clear a full sink. Made to take a decade of daily use without a wobble or a drip.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and certified safe for the water you drink and cook with.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_7bc0d534-83e1-46e2-80b7-a593b96a8da4.png?v=1779892507\" alt=\"Milan kitchen mixer gooseneck\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eA tall gooseneck\u003c\/b\u003eOne clean arc of solid brass.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_B_9ad5cc60-21ba-4aaa-8853-1e7f765ca07b.png?v=1779892507\" alt=\"Milan kitchen mixer swivel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSwivels across\u003c\/b\u003eReaches both bowls of a double sink.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_C_fffcd0cf-bf9a-4c71-aa52-12b034c30af5.png?v=1779892507\" alt=\"Milan kitchen mixer chrome\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the kitchen\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_f32e62f0-d5bb-43d6-a744-249776fccb25.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_7ad32538-79db-49ef-8ce4-afe1f483fc7b.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_A_fc469835-3f1b-4e2a-9471-ec906fee9378.png?v=1779892506\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_7bc0d534-83e1-46e2-80b7-a593b96a8da4.png?v=1779892507\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_e823402b-da48-4e5e-b6cc-edd90f60fa04.png?v=1779892508\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_0a00a836-9e13-40d5-90f9-04f8a6d69bd8.png?v=1779892511\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_B.png?v=1779883387\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e364 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e210 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T48171  |  SKU MIL08CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46219454152853,"sku":"OVMI25CHR","price":167.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_0ac2c84e-233b-46ba-84bd-4080d6bd09db.png?v=1785829832"},{"product_id":"ovia-milan-swivel-pull-out-kitchen-mixer-pvd-brushed-gold","title":"Ovia Milan Pull Out Kitchen Mixer Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_Hero_A.png?v=1779883437');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003ePull-out Kitchen Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e kitchen mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_Hero_A.png?v=1779883437\" alt=\"Ovia Milan Pull-out Kitchen Mixer in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883455\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_Champagne_Hero_A.png?v=1779883474\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_Chrome_Hero_A.png?v=1779883494\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_GunMetal_Hero_A.png?v=1779883513\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_MatteBlack_Hero_A.png?v=1779883534\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe kitchen tap earns its keep — and the \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e pull-out goes further: a tall gooseneck in solid brass whose spray head lifts out on a braided hose, toggling between a soft stream and a strong spray for filling, rinsing and washing the sink down. Finished in brushed gold sealed to hold its colour for the life of the room, smooth on a European cartridge. Made to take a decade of daily use.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and certified safe for the water you drink and cook with.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePull-out spray\u003c\/div\u003e\n\u003cp\u003eThe spray head lifts out on a braided hose and clicks back home, with a stream-or-spray toggle for filling pots and rinsing the sink down.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_A_fb0d376b-0557-410b-b615-d9ab4307bc68.png?v=1779892510\" alt=\"Milan kitchen mixer gooseneck\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eA tall gooseneck\u003c\/b\u003eOne clean arc of solid brass.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_B_f5cca4c8-972f-4659-bff0-970365ae3639.png?v=1779892510\" alt=\"Milan kitchen mixer swivel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSwivels across\u003c\/b\u003eReaches both bowls of a double sink.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_C_4d78c78a-4dfc-4091-95f0-54492fe1bccf.png?v=1779892509\" alt=\"Milan kitchen mixer brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the kitchen\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_A_fb0d376b-0557-410b-b615-d9ab4307bc68.png?v=1779892510\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_Hero_A.png?v=1779883437\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedNickelWarm_A_0c38715d-8174-455a-a84e-2ade140349df.png?v=1779892510\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883455\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_Champagne_A_430f4843-159c-43ba-9c79-e58869bddd1d.png?v=1779892511\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_Champagne_Hero_A.png?v=1779883474\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_Chrome_A_bb4cc8e8-5420-4d04-9ff7-056ab0f961ef.png?v=1779892512\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_Chrome_Hero_A.png?v=1779883494\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_GunMetal_A_4a549166-f352-4a31-8979-901893a6c9ab.png?v=1779892513\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_GunMetal_Hero_A.png?v=1779883513\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_MatteBlack_A_95cb818d-0e48-465a-9c66-acabc517e53e.png?v=1779892514\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_MatteBlack_Hero_A.png?v=1779883534\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_Hero_B.png?v=1779883442\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e414.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e221 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47572  |  SKU MIL09BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46219476271253,"sku":"OV215BG","price":307.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_PullOutKitchenMixer_BrushedGold_A_a867b6bb-d7d9-4a92-9928-bfdb165d4015.png?v=1785829856"},{"product_id":"1-round-black-double-towel-rack-rail-800mm","title":"Ovia Milan 750 Double Towel Rail Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_Hero_A.png?v=1779884098');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003e750 Double Towel Rail\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e towel rail you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_BrushedGold_Hero_A.png?v=1779884005\" alt=\"Ovia Milan 750 Double Towel Rail in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_BrushedNickelWarm_Hero_A.png?v=1779884023\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_Champagne_Hero_A.png?v=1779884042\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_Chrome_Hero_A.png?v=1779884061\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_GunMetal_Hero_A.png?v=1779884080\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_Hero_A.png?v=1779884098\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA towel rail is the most-handled fitting in the bathroom — wet towels, steam and a daily tug — so it has to be built for it. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e rail is machined from DZR brass and finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room, fixed dead-level on concealed mounts. The detail that pulls the room together — and the last one you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e750 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e131 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary rail metal does in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that take the weight of wet towels without working loose — solid, dead-level and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_A_7bb37025-1814-4753-9a78-80abc39ccb20.png?v=1779892493\" alt=\"Milan towel rail in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_B_39411753-aba0-4ca8-9fcc-fae7303f27e2.png?v=1779892493\" alt=\"Milan towel rail mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_C_99164353-4e37-4d1d-8110-0fbe1323cf68.png?v=1779892493\" alt=\"Milan towel rail matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_BrushedGold_A_ec6331ec-5558-4a2f-b4b4-916ab6617c45.png?v=1779892492\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_BrushedGold_Hero_A.png?v=1779884005\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_BrushedNickelWarm_A_74ed69d1-ac9c-4723-bf75-983933aec476.png?v=1779892490\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_BrushedNickelWarm_Hero_A.png?v=1779884023\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_Champagne_A_d016df3f-06f1-4e1e-acac-0361ee5fb83f.png?v=1779892491\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_Champagne_Hero_A.png?v=1779884042\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_Chrome_A_3bc88e37-b208-40ff-a4df-2d968d31f1bd.png?v=1779892491\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_Chrome_Hero_A.png?v=1779884061\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_GunMetal_A_2b049ef0-1cef-4f1e-a535-89454303aa56.png?v=1779892492\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_GunMetal_Hero_A.png?v=1779884080\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_A_7bb37025-1814-4753-9a78-80abc39ccb20.png?v=1779892493\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_Hero_A.png?v=1779884098\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_Hero_B.png?v=1779884105\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e750 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e131 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan rail carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL2175MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46321031839893,"sku":"BK401-750-B","price":107.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail750_MatteBlack_A_415b9241-383d-4602-b4f3-d0b65937a148.png?v=1785832669"},{"product_id":"1-round-black-toilet-paper-holder-solid-brass-wall-mounted","title":"Ovia Milan Toilet Roll Holder Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte opd--compact\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n  \/* compact banner render — wide horizontal accessories (hand-towel \/ toilet-roll\n     holder) overrun the right edge at the default 170%; inert without the class *\/\n  .ovia-pd.opd--compact .opd-prod{width:120%;}\n  .ovia-pd.opd--compact .opd-glint{-webkit-mask-size:120% auto,120% auto,120% auto;mask-size:120% auto,120% auto,120% auto;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eToilet Roll Holder\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e toilet roll holder you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\" alt=\"Ovia Milan Toilet Roll Holder in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe most-reached-for fitting in the smallest room. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e toilet roll holder is machined from DZR brass and finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room, fixed dead-level on a concealed mount — solid, quiet, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e178 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that hold it dead-level and never work loose — solid and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_aba4f578-d8dc-4ca2-a182-8dc5a1c3ed71.png?v=1779892547\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_B_4b654b53-3d42-4675-b35e-2c600fb0ca4b.png?v=1779892547\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_C_b96c7b94-681b-4beb-959f-5e5224c2e914.png?v=1779892547\" alt=\"Milan accessory matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_448d48fd-a4e7-4bf9-b46e-378af7e9a31f.png?v=1779892542\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_392c07c9-f71b-47cb-9920-a2b0c18435db.png?v=1779892543\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_A_98fe59a8-dc0f-424c-928c-694b2397f350.png?v=1779892544\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_61552bb1-ea0a-448e-9407-bc0657b47f41.png?v=1779892545\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_28dc991c-0dde-44f2-9a38-6c26bc2d4b2b.png?v=1779892546\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_aba4f578-d8dc-4ca2-a182-8dc5a1c3ed71.png?v=1779892547\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_B.png?v=1779884219\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e178 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eRail length\u003c\/span\u003e\u003cspan class=\"v\"\u003e130 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL22MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46321032003733,"sku":"OVTPBLK","price":47.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_3b9a1e68-8852-4bf5-8de6-136fcdadd883.png?v=1785832704"},{"product_id":"star-trade-2-in-1-twin-rail-shower-system-gun-metal","title":"Ovia Milan Twin Shower Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTwin Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\" alt=\"Ovia Milan Twin Shower in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e gives you two ways to bathe from a single column — a broad 200 mm stainless-steel rain head overhead, a paddle hand shower on the rail, and a simple diverter to move between them, all finished in gun metal, multi-layer electroplated to stay hard-wearing and true for the life of the room. The fitting you stand under every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eStainless Steel\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eOverhead + Hand\u003csmall\u003ediverter\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eStainless steel, built for water\u003c\/div\u003e\n\u003cp\u003eThe rail and 200 mm overhead are stainless steel — it won’t rust, corrode or stain in a constantly wet zone, the way lesser showers do.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up in successive electroplated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eTwo ways to bathe\u003c\/div\u003e\n\u003cp\u003eA simple diverter moves you between the overhead rain and the paddle hand shower — drench from above, or take it in the hand to rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality fittings for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\" alt=\"Milan twin shower overhead and hand shower\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eTwo heads, one column\u003c\/b\u003eRain overhead, hand shower on the rail.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_B_a3f31d26-10ce-4f0c-a0af-1d3bf9b8a467.png?v=1779892552\" alt=\"Milan twin shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eThe paddle, on its slider.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_C_a943041d-eb35-4a0d-be3d-2c9d995ad490.png?v=1779892551\" alt=\"Milan twin shower gun metal\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_B.png?v=1779884916\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e1030 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverhead reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e345 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e500 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous, drenching flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47777  |  SKU MIL31GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46331737505941,"sku":"BSD013PGM","price":457.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_7de694f7-a039-489b-be3d-bd18b390e3bd.png?v=1785830020"},{"product_id":"star-trade-2-in-1-twin-rail-shower-system-dusk-champagne","title":"Ovia Milan Twin Shower Champagne","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#DDB3AE;--ac-deep:#A1726D;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Champagne\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTwin Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\" alt=\"Ovia Milan Twin Shower in Champagne\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e gives you two ways to bathe from a single column — a broad 200 mm stainless-steel rain head overhead, a paddle hand shower on the rail, and a simple diverter to move between them, all finished in champagne sealed to hold its colour for the life of the room. The fitting you stand under every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eStainless Steel\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChampagne\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eOverhead + Hand\u003csmall\u003ediverter\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eStainless steel, built for water\u003c\/div\u003e\n\u003cp\u003eThe rail and 200 mm overhead are stainless steel — it won’t rust, corrode or stain in a constantly wet zone, the way lesser showers do.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the surface by physical vapour deposition, the champagne resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eTwo ways to bathe\u003c\/div\u003e\n\u003cp\u003eA simple diverter moves you between the overhead rain and the paddle hand shower — drench from above, or take it in the hand to rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChampagne PVD\u003c\/b\u003e · molecularly bonded to the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe champagne is fused to the surface by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\" alt=\"Milan twin shower overhead and hand shower\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eTwo heads, one column\u003c\/b\u003eRain overhead, hand shower on the rail.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_B_d80b0456-bf8a-4ed2-9162-4167390907c9.png?v=1779892550\" alt=\"Milan twin shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eThe paddle, on its slider.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_C_4311edbd-63b5-4283-8ecb-b6c714d049a3.png?v=1779892550\" alt=\"Milan twin shower champagne\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChampagne lends a soft, warm blush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm is-current\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_B.png?v=1779884878\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e1030 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverhead reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e345 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e500 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the champagne is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous, drenching flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47777  |  SKU MIL31CG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same champagne finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46331738259605,"sku":"STR013-PDS","price":497.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_35d206e9-41bd-4239-a5d2-92ead02bafe6.png?v=1785830004"},{"product_id":"ovia-trade-2-in-1-multi-function-shower-station-brushed-nickel-pvd","title":"Ovia Milan Twin Shower Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTwin Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\" alt=\"Ovia Milan Twin Shower in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e gives you two ways to bathe from a single column — a broad 200 mm stainless-steel rain head overhead, a paddle hand shower on the rail, and a simple diverter to move between them, all finished in brushed nickel sealed to hold its colour for the life of the room. The fitting you stand under every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eStainless Steel\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eOverhead + Hand\u003csmall\u003ediverter\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eStainless steel, built for water\u003c\/div\u003e\n\u003cp\u003eThe rail and 200 mm overhead are stainless steel — it won’t rust, corrode or stain in a constantly wet zone, the way lesser showers do.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the surface by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eTwo ways to bathe\u003c\/div\u003e\n\u003cp\u003eA simple diverter moves you between the overhead rain and the paddle hand shower — drench from above, or take it in the hand to rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the surface by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\" alt=\"Milan twin shower overhead and hand shower\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eTwo heads, one column\u003c\/b\u003eRain overhead, hand shower on the rail.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_B_066c3a49-ec7e-46ef-be10-e764fe7a6d59.png?v=1779892549\" alt=\"Milan twin shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eThe paddle, on its slider.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_C_01b46693-3610-41d7-99a3-8c483e15bf5b.png?v=1779892549\" alt=\"Milan twin shower brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_B.png?v=1779884859\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e1030 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverhead reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e345 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e500 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous, drenching flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47777  |  SKU MIL31BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46331809136789,"sku":"BSD013PBN","price":457.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_fdaf0855-b1e9-4f85-9c60-73ef4ca5a931.png?v=1785829995"},{"product_id":"ovia-trade-2-in-1-multi-function-shower-station-brushed-gold-pvd","title":"Ovia Milan Twin Shower Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTwin Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\" alt=\"Ovia Milan Twin Shower in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e gives you two ways to bathe from a single column — a broad 200 mm stainless-steel rain head overhead, a paddle hand shower on the rail, and a simple diverter to move between them, all finished in brushed gold sealed to hold its colour for the life of the room. The fitting you stand under every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eStainless Steel\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eOverhead + Hand\u003csmall\u003ediverter\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eStainless steel, built for water\u003c\/div\u003e\n\u003cp\u003eThe rail and 200 mm overhead are stainless steel — it won’t rust, corrode or stain in a constantly wet zone, the way lesser showers do.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the surface by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eTwo ways to bathe\u003c\/div\u003e\n\u003cp\u003eA simple diverter moves you between the overhead rain and the paddle hand shower — drench from above, or take it in the hand to rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the surface by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\" alt=\"Milan twin shower overhead and hand shower\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eTwo heads, one column\u003c\/b\u003eRain overhead, hand shower on the rail.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_B_2dd4404d-4e9c-4d57-a756-9c883b6a6346.png?v=1779892548\" alt=\"Milan twin shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eThe paddle, on its slider.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_C_4672a5e2-7e1c-41b8-b734-46cbe7c414e1.png?v=1779892548\" alt=\"Milan twin shower brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_B.png?v=1779884840\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e1030 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverhead reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e345 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e500 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous, drenching flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47777  |  SKU MIL31BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46817652932757,"sku":"BSD013PBM","price":457.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_feba95f6-ab95-483a-af17-60ce2fd7d73b.png?v=1785829987"},{"product_id":"ovia-milan-shower-bath-mixer-round-matt-black","title":"Ovia Milan Wall Mixer Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e wall mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\" alt=\"Ovia Milan Wall Mixer in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe mixer behind the wall does the real work — temperature, flow, on and off. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall mixer hides all of it behind a single lever and a slim, 60 mm backplate, machined from solid brass and finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room. Pair it with a spout, an overhead or a shower rail — the Milan does the controlling.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eShower \u0026amp; Bath\u003csmall\u003ewall mixer\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe in everyday contact with your water supply.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control of temperature and flow, with a clean shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the mixer.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_bd194896-9c3c-442f-a95d-80afc408ab82.png?v=1779892525\" alt=\"Milan wall mixer lever\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOne lever\u003c\/b\u003eTemperature and flow in a single turn.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_B_4805bd88-3a68-483a-b1b7-9448294ac7a9.png?v=1779892525\" alt=\"Milan wall mixer backplate\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSlim on the wall\u003c\/b\u003eA compact 60 mm backplate.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_C_6256f73f-5a22-4b33-8353-8e52a930a87a.png?v=1779892525\" alt=\"Milan wall mixer matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_aaff3d66-c554-49a3-94c8-09ab1523108d.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_842a6a5f-191f-4ee5-b333-ece50fc7aaee.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_A_a51a025e-f3f6-4f48-9cc1-01ae540b305f.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_fdfd2d74-488c-45f6-aa8d-2db3f11c9d8d.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_68191608-56af-411c-b101-7b264482fade.png?v=1779892524\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_bd194896-9c3c-442f-a95d-80afc408ab82.png?v=1779892525\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_B.png?v=1779883046\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBackplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Behind it, a precision European cartridge controls temperature and flow with a smooth, drip-free action, year after year.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eSolid brass · European cartridge  |  SKU MIL04MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341176819861,"sku":"OVMIXMB","price":107.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_1ac013fe-e84d-414e-a4a5-fad49c0f0b50.png?v=1785829929"},{"product_id":"ovia-milan-shower-bath-mixer-round-gunmetal-grey","title":"Ovia Milan Wall Mixer Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e wall mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\" alt=\"Ovia Milan Wall Mixer in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe mixer behind the wall does the real work — temperature, flow, on and off. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall mixer hides all of it behind a single lever and a slim, 60 mm backplate, machined from solid brass and finished in gun metal, multi-layer electroplated to stay hard-wearing and true for the life of the room. Pair it with a spout, an overhead or a shower rail — the Milan does the controlling.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eShower \u0026amp; Bath\u003csmall\u003ewall mixer\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe in everyday contact with your water supply.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control of temperature and flow, with a clean shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the mixer.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_68191608-56af-411c-b101-7b264482fade.png?v=1779892524\" alt=\"Milan wall mixer lever\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOne lever\u003c\/b\u003eTemperature and flow in a single turn.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_B_f25d62ed-11bf-4871-8ec7-f1bcdde768be.png?v=1779892525\" alt=\"Milan wall mixer backplate\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSlim on the wall\u003c\/b\u003eA compact 60 mm backplate.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_C_5fea03ae-437c-426b-9449-f9971dbbd7b5.png?v=1779892525\" alt=\"Milan wall mixer gun metal\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_aaff3d66-c554-49a3-94c8-09ab1523108d.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_842a6a5f-191f-4ee5-b333-ece50fc7aaee.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_A_a51a025e-f3f6-4f48-9cc1-01ae540b305f.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_fdfd2d74-488c-45f6-aa8d-2db3f11c9d8d.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_68191608-56af-411c-b101-7b264482fade.png?v=1779892524\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_bd194896-9c3c-442f-a95d-80afc408ab82.png?v=1779892525\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_B.png?v=1779883026\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBackplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Behind it, a precision European cartridge controls temperature and flow with a smooth, drip-free action, year after year.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eSolid brass · European cartridge  |  SKU MIL04GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341176885397,"sku":"OVMIXGM","price":168.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_671c7327-7139-476d-80a4-a5f90e38e7f9.png?v=1785829922"},{"product_id":"ovia-milan-shower-bath-mixer-round-chrome","title":"Ovia Milan Wall Mixer Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e wall mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\" alt=\"Ovia Milan Wall Mixer in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe mixer behind the wall does the real work — temperature, flow, on and off. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall mixer hides all of it behind a single lever and a slim, 60 mm backplate, machined from solid brass and finished in chrome, multi-layer electroplated to stay hard-wearing and true for the life of the room. Pair it with a spout, an overhead or a shower rail — the Milan does the controlling.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eShower \u0026amp; Bath\u003csmall\u003ewall mixer\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe in everyday contact with your water supply.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control of temperature and flow, with a clean shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the mixer.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_fdfd2d74-488c-45f6-aa8d-2db3f11c9d8d.png?v=1779892523\" alt=\"Milan wall mixer lever\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOne lever\u003c\/b\u003eTemperature and flow in a single turn.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_B_4a9a2f1c-1c05-4c01-83af-fb89e9b35901.png?v=1779892524\" alt=\"Milan wall mixer backplate\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSlim on the wall\u003c\/b\u003eA compact 60 mm backplate.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_C_dbcc7426-6e86-49a8-b67a-376b4713cc97.png?v=1779892524\" alt=\"Milan wall mixer chrome\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_aaff3d66-c554-49a3-94c8-09ab1523108d.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_842a6a5f-191f-4ee5-b333-ece50fc7aaee.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_A_a51a025e-f3f6-4f48-9cc1-01ae540b305f.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_fdfd2d74-488c-45f6-aa8d-2db3f11c9d8d.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_68191608-56af-411c-b101-7b264482fade.png?v=1779892524\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_bd194896-9c3c-442f-a95d-80afc408ab82.png?v=1779892525\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_B.png?v=1779883005\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBackplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Behind it, a precision European cartridge controls temperature and flow with a smooth, drip-free action, year after year.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eSolid brass · European cartridge  |  SKU MIL04CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341176918165,"sku":"OVMIXCH","price":97.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_c8f2fcd3-9b97-4e10-9723-aced1fcc2c32.png?v=1785829914"},{"product_id":"ovia-milan-shower-bath-mixer-round-brushed-nickel","title":"Ovia Milan Wall Mixer Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e wall mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\" alt=\"Ovia Milan Wall Mixer in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe mixer behind the wall does the real work — temperature, flow, on and off. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall mixer hides all of it behind a single lever and a slim, 60 mm backplate, machined from solid brass and finished in brushed nickel sealed to hold its colour for the life of the room. Pair it with a spout, an overhead or a shower rail — the Milan does the controlling.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eShower \u0026amp; Bath\u003csmall\u003ewall mixer\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe in everyday contact with your water supply.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control of temperature and flow, with a clean shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the mixer.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_842a6a5f-191f-4ee5-b333-ece50fc7aaee.png?v=1779892521\" alt=\"Milan wall mixer lever\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOne lever\u003c\/b\u003eTemperature and flow in a single turn.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_B_f59a6f8c-7690-437d-9915-f2394986ffda.png?v=1779892522\" alt=\"Milan wall mixer backplate\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSlim on the wall\u003c\/b\u003eA compact 60 mm backplate.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_C_5fa162c0-7d83-44b0-b990-971c177f2221.png?v=1779892521\" alt=\"Milan wall mixer brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_aaff3d66-c554-49a3-94c8-09ab1523108d.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_842a6a5f-191f-4ee5-b333-ece50fc7aaee.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_A_a51a025e-f3f6-4f48-9cc1-01ae540b305f.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_fdfd2d74-488c-45f6-aa8d-2db3f11c9d8d.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_68191608-56af-411c-b101-7b264482fade.png?v=1779892524\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_bd194896-9c3c-442f-a95d-80afc408ab82.png?v=1779892525\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_B.png?v=1779882963\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBackplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Behind it, a precision European cartridge controls temperature and flow with a smooth, drip-free action, year after year.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eSolid brass · European cartridge  |  SKU MIL04BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341176950933,"sku":"OVMIXBN","price":107.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_44ae9dbd-eb22-4c10-8506-d265fcc8a2d3.png?v=1785829906"},{"product_id":"ovia-milan-shower-bath-mixer-round-brushed-gold","title":"Ovia Milan Wall Mixer Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e wall mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\" alt=\"Ovia Milan Wall Mixer in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe mixer behind the wall does the real work — temperature, flow, on and off. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall mixer hides all of it behind a single lever and a slim, 60 mm backplate, machined from solid brass and finished in brushed gold sealed to hold its colour for the life of the room. Pair it with a spout, an overhead or a shower rail — the Milan does the controlling.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eShower \u0026amp; Bath\u003csmall\u003ewall mixer\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe in everyday contact with your water supply.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control of temperature and flow, with a clean shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the mixer.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_aaff3d66-c554-49a3-94c8-09ab1523108d.png?v=1779892521\" alt=\"Milan wall mixer lever\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOne lever\u003c\/b\u003eTemperature and flow in a single turn.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_B_49259bcb-7390-41d3-9f6b-d397733e1568.png?v=1779892521\" alt=\"Milan wall mixer backplate\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSlim on the wall\u003c\/b\u003eA compact 60 mm backplate.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_C_b416b08d-d497-425e-b8da-edb8e39b2144.png?v=1779892521\" alt=\"Milan wall mixer brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_aaff3d66-c554-49a3-94c8-09ab1523108d.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_A.png?v=1779882931\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_A_842a6a5f-191f-4ee5-b333-ece50fc7aaee.png?v=1779892521\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_A.png?v=1779882956\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_A_a51a025e-f3f6-4f48-9cc1-01ae540b305f.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Champagne_Hero_A.png?v=1779882976\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_A_fdfd2d74-488c-45f6-aa8d-2db3f11c9d8d.png?v=1779892523\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_A.png?v=1779882998\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_A_68191608-56af-411c-b101-7b264482fade.png?v=1779892524\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_A.png?v=1779883018\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_A_bd194896-9c3c-442f-a95d-80afc408ab82.png?v=1779892525\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_A.png?v=1779883040\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_B.png?v=1779882939\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBackplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Behind it, a precision European cartridge controls temperature and flow with a smooth, drip-free action, year after year.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eSolid brass · European cartridge  |  SKU MIL04BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341176983701,"sku":"OVMIXBG","price":168.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_A_1370b6cc-6d01-43b2-bb81-e2a483a41e0e.png?v=1785829898"},{"product_id":"ovia-milan-wall-basin-bath-mixer-with-180mm-spout-matt-black","title":"Ovia Milan Wall Bath\/Basin Mixer Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Bath\/Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e bath\/basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Wall Bath\/Basin Mixer in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA complete wall set in one — the control and the pour. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall bath\/basin mixer pairs a single-lever wall mixer with a downturned bath \u0026amp; basin spout, both finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room. One hand sets temperature and flow; the spout delivers it, clean and unmixed — a coordinated pair, made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid \u0026amp; DZR Brass\u003csmall\u003emixer + spout\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eIncludes\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMixer + Spout\u003csmall\u003ewall set\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eOne lever, full control\u003c\/div\u003e\n\u003cp\u003eThe wall mixer runs on a precision European cartridge — smooth, weighted control of temperature and flow from a single lever, with a clean, drip-free shut-off.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure delivery, no compromise\u003c\/div\u003e\n\u003cp\u003eThe downturned spout is machined from DZR (dezincification-resistant) brass — no moving parts, just a clean pour, and a body that won’t corrode or break down under constant contact with water.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the set.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_9932d42d-8cbd-49b5-a879-163c5b11da58.png?v=1779953447\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eThe full set\u003c\/b\u003eMixer and spout, together.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_B_8fbcfa1d-a45d-4fbd-817e-e5946cfc9480.png?v=1779953447\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eControl + pour\u003c\/b\u003eOne lever sets it; the spout delivers.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_C_6f09f28d-ad7f-47f9-9d2a-7d81025416ed.png?v=1779953447\" alt=\"Milan spout matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_b7b5aa29-be0a-403b-a3a1-02a2997fe085.png?v=1779953441\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_6a184aab-2b7e-4f19-8222-9a8aeeef7b56.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Champagne_A_e7515784-58c5-424a-b3c9-2e8bb81f6d4f.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_9e15d9b4-29d9-4456-b58e-62e27600d24f.png?v=1779953445\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8e4376a4-51e1-4771-aa6e-104354799c77.png?v=1779953446\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_9932d42d-8cbd-49b5-a879-163c5b11da58.png?v=1779953447\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_MatteBlack_Hero_B.png?v=1779883046\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer backplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer projection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL06MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341177049237,"sku":"OVMIXMB1","price":197.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_d4b90f18-5169-448b-a124-b51d35f9f997.png?v=1785829970"},{"product_id":"ovia-milan-wall-basin-bath-mixer-with-180mm-spout-gunmetal-grey","title":"Ovia Milan Wall Bath\/Basin Mixer Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Bath\/Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e bath\/basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Wall Bath\/Basin Mixer in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA complete wall set in one — the control and the pour. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall bath\/basin mixer pairs a single-lever wall mixer with a downturned bath \u0026amp; basin spout, both finished in gun metal, multi-layer electroplated to stay hard-wearing and true for the life of the room. One hand sets temperature and flow; the spout delivers it, clean and unmixed — a coordinated pair, made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid \u0026amp; DZR Brass\u003csmall\u003emixer + spout\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eIncludes\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMixer + Spout\u003csmall\u003ewall set\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eOne lever, full control\u003c\/div\u003e\n\u003cp\u003eThe wall mixer runs on a precision European cartridge — smooth, weighted control of temperature and flow from a single lever, with a clean, drip-free shut-off.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure delivery, no compromise\u003c\/div\u003e\n\u003cp\u003eThe downturned spout is machined from DZR (dezincification-resistant) brass — no moving parts, just a clean pour, and a body that won’t corrode or break down under constant contact with water.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the set.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8e4376a4-51e1-4771-aa6e-104354799c77.png?v=1779953446\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eThe full set\u003c\/b\u003eMixer and spout, together.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_B_a919c224-d1af-45de-b051-b59882f461d9.png?v=1779953445\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eControl + pour\u003c\/b\u003eOne lever sets it; the spout delivers.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_C_264020da-c7b4-49bd-a25d-8d6c658d3055.png?v=1779953446\" alt=\"Milan spout gun metal\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_b7b5aa29-be0a-403b-a3a1-02a2997fe085.png?v=1779953441\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_6a184aab-2b7e-4f19-8222-9a8aeeef7b56.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Champagne_A_e7515784-58c5-424a-b3c9-2e8bb81f6d4f.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_9e15d9b4-29d9-4456-b58e-62e27600d24f.png?v=1779953445\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8e4376a4-51e1-4771-aa6e-104354799c77.png?v=1779953446\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_9932d42d-8cbd-49b5-a879-163c5b11da58.png?v=1779953447\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_GunMetal_Hero_B.png?v=1779883026\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer backplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer projection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL06GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341177082005,"sku":"OVMIXCGM","price":277.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8dabb877-5dfe-4575-ac57-950bb68cacc4.png?v=1785829962"},{"product_id":"ovia-milan-wall-basin-bath-mixer-with-180mm-spout-brushed-nickel","title":"Ovia Milan Wall Bath\/Basin Mixer Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Bath\/Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e bath\/basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Wall Bath\/Basin Mixer in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA complete wall set in one — the control and the pour. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall bath\/basin mixer pairs a single-lever wall mixer with a downturned bath \u0026amp; basin spout, both finished in brushed nickel sealed to hold its colour for the life of the room. One hand sets temperature and flow; the spout delivers it, clean and unmixed — a coordinated pair, made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid \u0026amp; DZR Brass\u003csmall\u003emixer + spout\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eIncludes\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMixer + Spout\u003csmall\u003ewall set\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eOne lever, full control\u003c\/div\u003e\n\u003cp\u003eThe wall mixer runs on a precision European cartridge — smooth, weighted control of temperature and flow from a single lever, with a clean, drip-free shut-off.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure delivery, no compromise\u003c\/div\u003e\n\u003cp\u003eThe downturned spout is machined from DZR (dezincification-resistant) brass — no moving parts, just a clean pour, and a body that won’t corrode or break down under constant contact with water.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the set.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_6a184aab-2b7e-4f19-8222-9a8aeeef7b56.png?v=1779953443\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eThe full set\u003c\/b\u003eMixer and spout, together.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_B_a7c715db-7348-4a79-b9c8-5076e6c2a35d.png?v=1779953442\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eControl + pour\u003c\/b\u003eOne lever sets it; the spout delivers.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_C_b562fee4-a578-4d7c-af42-e02c5240b6d2.png?v=1779953442\" alt=\"Milan spout brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_b7b5aa29-be0a-403b-a3a1-02a2997fe085.png?v=1779953441\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_6a184aab-2b7e-4f19-8222-9a8aeeef7b56.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Champagne_A_e7515784-58c5-424a-b3c9-2e8bb81f6d4f.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_9e15d9b4-29d9-4456-b58e-62e27600d24f.png?v=1779953445\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8e4376a4-51e1-4771-aa6e-104354799c77.png?v=1779953446\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_9932d42d-8cbd-49b5-a879-163c5b11da58.png?v=1779953447\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedNickelWarm_Hero_B.png?v=1779882963\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer backplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer projection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL06BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341177114773,"sku":"OVMIXCH-1-1","price":237.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_dceaa499-d3f2-4761-8429-5344ab5f182f.png?v=1785829946"},{"product_id":"ovia-milan-wall-basin-bath-mixer-with-180mm-spout-brushed-gold","title":"Ovia Milan Wall Bath\/Basin Mixer Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Bath\/Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e bath\/basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Wall Bath\/Basin Mixer in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA complete wall set in one — the control and the pour. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall bath\/basin mixer pairs a single-lever wall mixer with a downturned bath \u0026amp; basin spout, both finished in brushed gold sealed to hold its colour for the life of the room. One hand sets temperature and flow; the spout delivers it, clean and unmixed — a coordinated pair, made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid \u0026amp; DZR Brass\u003csmall\u003emixer + spout\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eIncludes\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMixer + Spout\u003csmall\u003ewall set\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eOne lever, full control\u003c\/div\u003e\n\u003cp\u003eThe wall mixer runs on a precision European cartridge — smooth, weighted control of temperature and flow from a single lever, with a clean, drip-free shut-off.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure delivery, no compromise\u003c\/div\u003e\n\u003cp\u003eThe downturned spout is machined from DZR (dezincification-resistant) brass — no moving parts, just a clean pour, and a body that won’t corrode or break down under constant contact with water.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the set.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_b7b5aa29-be0a-403b-a3a1-02a2997fe085.png?v=1779953441\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eThe full set\u003c\/b\u003eMixer and spout, together.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_B_656e3bd8-0da8-4ac1-8128-45e1b5d31569.png?v=1779953441\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eControl + pour\u003c\/b\u003eOne lever sets it; the spout delivers.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_C_3c292c0b-2d2a-4a07-b642-56369af92d79.png?v=1779953441\" alt=\"Milan spout brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_b7b5aa29-be0a-403b-a3a1-02a2997fe085.png?v=1779953441\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_6a184aab-2b7e-4f19-8222-9a8aeeef7b56.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Champagne_A_e7515784-58c5-424a-b3c9-2e8bb81f6d4f.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_9e15d9b4-29d9-4456-b58e-62e27600d24f.png?v=1779953445\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8e4376a4-51e1-4771-aa6e-104354799c77.png?v=1779953446\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_9932d42d-8cbd-49b5-a879-163c5b11da58.png?v=1779953447\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_BrushedGold_Hero_B.png?v=1779882939\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer backplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer projection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL06BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341177245845,"sku":"OVMIXCH-1-2","price":277.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_1cb8f384-5e25-4bbb-af9d-0e135983c23a.png?v=1785829938"},{"product_id":"ovia-milan-wall-basin-bath-mixer-with-180mm-spout-chrome","title":"Ovia Milan Wall Bath\/Basin Mixer Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eWall Bath\/Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e bath\/basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Wall Bath\/Basin Mixer in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA complete wall set in one — the control and the pour. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e wall bath\/basin mixer pairs a single-lever wall mixer with a downturned bath \u0026amp; basin spout, both finished in chrome, multi-layer electroplated to stay hard-wearing and true for the life of the room. One hand sets temperature and flow; the spout delivers it, clean and unmixed — a coordinated pair, made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid \u0026amp; DZR Brass\u003csmall\u003emixer + spout\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eIncludes\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMixer + Spout\u003csmall\u003ewall set\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eOne lever, full control\u003c\/div\u003e\n\u003cp\u003eThe wall mixer runs on a precision European cartridge — smooth, weighted control of temperature and flow from a single lever, with a clean, drip-free shut-off.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure delivery, no compromise\u003c\/div\u003e\n\u003cp\u003eThe downturned spout is machined from DZR (dezincification-resistant) brass — no moving parts, just a clean pour, and a body that won’t corrode or break down under constant contact with water.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the set.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_9e15d9b4-29d9-4456-b58e-62e27600d24f.png?v=1779953445\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eThe full set\u003c\/b\u003eMixer and spout, together.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_B_a3b85c7c-1f0d-4966-9a70-3057f56cf7cc.png?v=1779953444\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eControl + pour\u003c\/b\u003eOne lever sets it; the spout delivers.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_C_383266c2-e702-4057-9932-fbaf13916788.png?v=1779953444\" alt=\"Milan spout chrome\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedGold_A_b7b5aa29-be0a-403b-a3a1-02a2997fe085.png?v=1779953441\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_BrushedNickelWarm_A_6a184aab-2b7e-4f19-8222-9a8aeeef7b56.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Champagne_A_e7515784-58c5-424a-b3c9-2e8bb81f6d4f.png?v=1779953443\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_9e15d9b4-29d9-4456-b58e-62e27600d24f.png?v=1779953445\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_GunMetal_A_8e4376a4-51e1-4771-aa6e-104354799c77.png?v=1779953446\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_MatteBlack_A_9932d42d-8cbd-49b5-a879-163c5b11da58.png?v=1779953447\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ShowerMixer_Chrome_Hero_B.png?v=1779883005\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer backplate\u003c\/span\u003e\u003cspan class=\"v\"\u003e60 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eMixer projection\u003c\/span\u003e\u003cspan class=\"v\"\u003e80 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHandle length\u003c\/span\u003e\u003cspan class=\"v\"\u003e75 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL06CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341177311381,"sku":"OVMIXCH-1","price":187.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BathBasinMixerCombo_Chrome_A_30e8eaf1-88f3-4525-9be2-8759b26e063d.png?v=1785829954"},{"product_id":"ovia-milan-brushed-gold-basin-mixer","title":"Ovia Milan Basin Mixer Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBasin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\" alt=\"Ovia Milan Basin Mixer in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eEvery basin deserves a mixer with intent. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a single, curved spout in solid brass — poised over the basin at an easy, everyday height, with a smooth-weighted lever and a brushed gold finish sealed to hold its colour for the life of the room. The piece you reach for a dozen times a day, made to be the one you never think to replace.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe for everyday drinking water.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_B_24952aab-a057-4a49-a770-2e417e4e7d0b.png?v=1779892479\" alt=\"Milan basin mixer on a basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOn the basin\u003c\/b\u003eSized for an inset or drop-in basin.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_C_9ef0f8c1-2203-4a6a-91c2-77fba1bd5e8a.png?v=1779892478\" alt=\"Milan basin mixer detail\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWithin reach\u003c\/b\u003eAn easy height for hands and brush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_D_67de28ea-96a0-488d-a627-9617599ae779.png?v=1779892478\" alt=\"Milan basin mixer brushed gold against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_A_7bc2d2f8-8679-4d88-8f51-2d8e4f43bd1a.png?v=1779892478\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_A_0ae3dc11-aadd-4990-9216-78fb32822fb5.png?v=1779892479\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_A_80ba6898-308b-4d14-886e-fd218f830a3b.png?v=1779892481\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_A_599513b0-8571-4675-a63d-4a9971c02bab.png?v=1779892227\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_A_0b48954b-3aed-42ea-be2f-eeaf5823aabc.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_A_780e34e9-72f0-441e-b6d1-f4e5947e9221.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_B.png?v=1779882671\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e171 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e74.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e125 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47491  |  SKU MIL01BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341178687637,"sku":"OVMI25BG","price":197.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_A_58fddf33-bf30-4dd5-84e4-0f1b5dd2013d.png?v=1785829733"},{"product_id":"ovia-chloe-brushed-gold-toilet-roll-paper-holder","title":"Ovia Milan Toilet Roll Holder Brushed Gold","description":"\u003cdiv class=\"ovia-pd opd--compact\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n  \/* compact banner render — wide horizontal accessories (hand-towel \/ toilet-roll\n     holder) overrun the right edge at the default 170%; inert without the class *\/\n  .ovia-pd.opd--compact .opd-prod{width:120%;}\n  .ovia-pd.opd--compact .opd-glint{-webkit-mask-size:120% auto,120% auto,120% auto;mask-size:120% auto,120% auto,120% auto;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eToilet Roll Holder\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e toilet roll holder you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\" alt=\"Ovia Milan Toilet Roll Holder in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe most-reached-for fitting in the smallest room. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e toilet roll holder is machined from DZR brass and finished in brushed gold sealed to hold its colour for the life of the room, fixed dead-level on a concealed mount — solid, quiet, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e178 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that hold it dead-level and never work loose — solid and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_448d48fd-a4e7-4bf9-b46e-378af7e9a31f.png?v=1779892542\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_B_9b9f551c-a964-488b-83d7-ce94b92f51e6.png?v=1779892542\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_C_46dc4ac1-3ee6-4aff-ab83-6dc1fdc067b6.png?v=1779892542\" alt=\"Milan accessory brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_448d48fd-a4e7-4bf9-b46e-378af7e9a31f.png?v=1779892542\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_392c07c9-f71b-47cb-9920-a2b0c18435db.png?v=1779892543\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_A_98fe59a8-dc0f-424c-928c-694b2397f350.png?v=1779892544\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_61552bb1-ea0a-448e-9407-bc0657b47f41.png?v=1779892545\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_28dc991c-0dde-44f2-9a38-6c26bc2d4b2b.png?v=1779892546\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_aba4f578-d8dc-4ca2-a182-8dc5a1c3ed71.png?v=1779892547\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_B.png?v=1779884124\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e178 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eRail length\u003c\/span\u003e\u003cspan class=\"v\"\u003e130 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL22BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341178785941,"sku":"OVIATPGCH","price":61.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_a986cae1-5866-4499-a371-4dd2ba5bc49b.png?v=1785830053"},{"product_id":"ovia-milan-tall-brushed-gold-basin-mixer","title":"Ovia Milan Tall Basin Mixer Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* Banner stays fixed on the CURRENT finish — the old hover-to-preview-in-the-\n     banner behaviour is replaced by the local finish-preview overlay below. *\/\n  \/* finish PROCESS word — fixed per finish (set by the rollout; gold = PVD). *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n  \/* compact banner render — wide horizontal accessories (hand-towel \/ toilet-roll\n     holder) overrun the right edge at the default 170%; inert without the class *\/\n  .ovia-pd.opd--compact .opd-prod{width:120%;}\n  .ovia-pd.opd--compact .opd-glint{-webkit-mask-size:120% auto,120% auto,120% auto;mask-size:120% auto,120% auto,120% auto;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTall Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e tall basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\" alt=\"Ovia Milan Tall Basin Mixer in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA tall basin mixer has to earn its height. Raised to clear an above-counter or vessel basin, the \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e pours from a confident, elongated spout — one sculpted line in solid brass, finished in a brushed gold that’s sealed to hold its colour for the life of the room. The kind of detail that quietly elevates the whole space.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid brass, all the way through\u003c\/div\u003e\n\u003cp\u003eMachined from solid brass, the Milan carries a reassuring weight and the structural integrity to last decades, not seasons.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eAt its core, the Milan turns on a precision European cartridge — smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_B_f06d4e8b-a8c9-47eb-95b7-163e52ec449e.png?v=1779892537\" alt=\"Milan with an above-counter basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAbove the counter\u003c\/b\u003eSized for vessel \u0026amp; above-counter basins.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_C_022679e8-a7e6-49ec-84a1-0373fe0ee791.png?v=1779892536\" alt=\"Milan beside a vessel basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBeside the basin\u003c\/b\u003eClears the rim with room to spare.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_D_b3c8619c-1dc0-49b0-9b9e-65acb7bc3cf5.png?v=1779892537\" alt=\"Milan brushed gold against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opx\"\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_A_a8b73553-2153-4cef-a74b-0e7427718003.png?v=1779892536\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_A_bae38b82-0690-48db-bbb5-edb6e3ebf44c.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_A_61bdee5e-fb63-49ac-89a8-83c9dd2f5e32.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_A_1a8230a1-cd39-4a18-a5e8-c65f0e8bca79.png?v=1779892539\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_A_d23ffc14-5dcf-4809-8656-2ec16c9e3e9c.png?v=1779892540\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_A_8563a8ef-cf16-41ec-8ea2-b9a8278ee615.png?v=1779892541\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_B.png?v=1779882807\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e290.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e194 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e160 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47573  |  SKU MIL03BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341178818709,"sku":"OVMI25TBG","price":254.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_A_8fa1f241-f713-42f9-b584-418dcd8ff9a8.png?v=1785829773"},{"product_id":"ovia-chloe-brushed-gold-robe-hook","title":"Ovia Milan Robe Hook Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_Hero_A.png?v=1779884606');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eRobe Hook\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e robe hook you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_Hero_A.png?v=1779884606\" alt=\"Ovia Milan Robe Hook in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_Hero_A.png?v=1779884625\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Champagne_Hero_A.png?v=1779884644\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Chrome_Hero_A.png?v=1779884664\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_GunMetal_Hero_A.png?v=1779884683\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_MatteBlack_Hero_A.png?v=1779884702\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA hook carries more than it looks — a loaded robe, a wet towel, day after day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e hook takes it in DZR brass, finished in brushed gold sealed to hold its colour for the life of the room, on a single concealed fixing that won’t pull from the wall. The last hook you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e67 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eType\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSingle hook\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eA single concealed fixing takes the weight of a loaded robe or wet towel without ever pulling away from the wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_A_b42863be-d10a-4eb2-9d90-b78bbe45fa16.png?v=1779892516\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_B_a3e4d310-0828-4f89-9895-cd277dec2dbd.png?v=1779892516\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_C_c2bbc10e-5db1-47af-ae7c-954d6d50a05d.png?v=1779892515\" alt=\"Milan accessory brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_A_b42863be-d10a-4eb2-9d90-b78bbe45fa16.png?v=1779892516\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_Hero_A.png?v=1779884606\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_A_81cbd313-61d2-436e-a3a8-b15771350d35.png?v=1779892516\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_Hero_A.png?v=1779884625\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Champagne_A_2b956dae-630f-45ce-b227-6952c6c02f2e.png?v=1779892517\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Champagne_Hero_A.png?v=1779884644\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Chrome_A_b9f26059-b5c6-4b48-b2d5-873d84d49eab.png?v=1779892518\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Chrome_Hero_A.png?v=1779884664\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_GunMetal_A_1edf6857-76d2-49ba-b806-74cfc6ec63d7.png?v=1779892519\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_GunMetal_Hero_A.png?v=1779884683\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_MatteBlack_A_70b8c8b1-fd4a-40a4-8c06-7b2092ceb873.png?v=1779892520\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_MatteBlack_Hero_A.png?v=1779884702\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_Hero_B.png?v=1779884612\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e67 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBody Ø\u003c\/span\u003e\u003cspan class=\"v\"\u003e20 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHook Ø\u003c\/span\u003e\u003cspan class=\"v\"\u003e8 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL25BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341178982549,"sku":"OVIATPRB","price":39.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_A_bb526692-907f-4ed5-a559-f45b2b5390a2.png?v=1785824189"},{"product_id":"ovia-chloe-brushed-gold-600mm-single-towel-rail","title":"Ovia Milan 600 Single Towel Rail Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_Hero_A.png?v=1779883665');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003e600 Single Towel Rail\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e towel rail you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_Hero_A.png?v=1779883665\" alt=\"Ovia Milan 600 Single Towel Rail in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883684\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_Champagne_Hero_A.png?v=1779883702\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_Chrome_Hero_A.png?v=1779883722\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_GunMetal_Hero_A.png?v=1779883740\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_MatteBlack_Hero_A.png?v=1779883759\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA towel rail is the most-handled fitting in the bathroom — wet towels, steam and a daily tug — so it has to be built for it. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e rail is machined from DZR brass and finished in brushed gold sealed to hold its colour for the life of the room, fixed dead-level on concealed mounts. The detail that pulls the room together — and the last one you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e607 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary rail metal does in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that take the weight of wet towels without working loose — solid, dead-level and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_A_cbb82b1f-5cbd-418f-9bb9-3a9d5b167056.png?v=1779892529\" alt=\"Milan towel rail in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_B_a022988f-08aa-4c57-929e-c127cd5c5fae.png?v=1779892526\" alt=\"Milan towel rail mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_C_24d454d7-59c6-4291-9785-ebc0e680374e.png?v=1779892526\" alt=\"Milan towel rail brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_A_cbb82b1f-5cbd-418f-9bb9-3a9d5b167056.png?v=1779892529\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_Hero_A.png?v=1779883665\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedNickelWarm_A_d3c24611-34b8-4492-8b6f-4d2a08cf44ea.png?v=1779892527\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883684\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_Champagne_A_8d5e05d2-fdad-49a1-bab8-1366620a1a9d.png?v=1779892528\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_Champagne_Hero_A.png?v=1779883702\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_Chrome_A_413aea1e-77fd-4e1a-a31e-4f987e51bbd8.png?v=1779892529\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_Chrome_Hero_A.png?v=1779883722\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_GunMetal_A_b3aa9d36-011d-4bf6-9564-006dc9ba0ccc.png?v=1779892530\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_GunMetal_Hero_A.png?v=1779883740\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_MatteBlack_A_d0559658-9de9-47bb-a275-1170489885fb.png?v=1779892531\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_MatteBlack_Hero_A.png?v=1779883759\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_Hero_B.png?v=1779883671\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e607 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan rail carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL2060BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179015317,"sku":"OVIATP600","price":104.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail600_BrushedGold_A_1f7511c4-27d8-4fb0-b50b-9bbef5a32413.png?v=1785830037"},{"product_id":"ovia-milan-brushed-gold-hand-shower-on-rail","title":"Ovia Milan Rail Shower Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_Hero_A.png?v=1779884722');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eRail Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_Hero_A.png?v=1779884722\" alt=\"Ovia Milan Rail Shower in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedNickelWarm_Hero_A.png?v=1779884742\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_Champagne_Hero_A.png?v=1779884759\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_Chrome_Hero_A.png?v=1779884779\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_GunMetal_Hero_A.png?v=1779884798\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_MatteBlack_Hero_A.png?v=1779884816\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a paddle hand shower on a solid-brass slide rail — glide it to the right height, set the spray, and rinse from wherever you stand, all finished in brushed gold sealed to hold its colour for the life of the room. The fitting you reach for every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eHand Shower\u003csmall\u003eon slide rail\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid brass, built to last\u003c\/div\u003e\n\u003cp\u003eThe slide rail is machined from solid brass — the weight and integrity of real metal, and the corrosion resistance for a constantly wet zone.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the surface by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSet to suit everyone\u003c\/div\u003e\n\u003cp\u003eThe hand shower glides up and down the rail and holds at any height — comfortable for the whole household, and easy to lift off for a rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the surface by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_A_ac31dae8-28aa-4d2a-a651-0a0825939e58.png?v=1779892499\" alt=\"Milan rail shower on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOn the rail\u003c\/b\u003eThe hand shower glides to any height.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_B_c187f5bf-f1a1-4b02-bee8-dae6bf7e4e76.png?v=1779892499\" alt=\"Milan rail shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eLift it off the rail to rinse.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_C_1e10b2e7-9f2b-4c0a-9a51-7b3da45e021b.png?v=1779892500\" alt=\"Milan rail shower brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_A_ac31dae8-28aa-4d2a-a651-0a0825939e58.png?v=1779892499\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_Hero_A.png?v=1779884722\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedNickelWarm_A_1e464458-6bcb-446c-bb19-369f158ee38c.png?v=1779892500\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedNickelWarm_Hero_A.png?v=1779884742\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_Champagne_A_30fa62ea-e249-400e-b02a-36695c5e51e0.png?v=1779892501\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_Champagne_Hero_A.png?v=1779884759\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_Chrome_A_82ca6856-506b-4ac8-968a-790117d0ee81.png?v=1779892502\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_Chrome_Hero_A.png?v=1779884779\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_GunMetal_A_f6e08ac6-2abe-4167-a934-e76a71219c70.png?v=1779892503\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_GunMetal_Hero_A.png?v=1779884798\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_MatteBlack_A_a618f77b-9d25-44c9-a199-c44f247f6e32.png?v=1779892504\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_MatteBlack_Hero_A.png?v=1779884816\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_Hero_B.png?v=1779884728\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e700 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e650 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWall projection\u003c\/span\u003e\u003cspan class=\"v\"\u003e69 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47623  |  SKU MIL30BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179113621,"sku":"OVIAHNDBGR","price":235.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_HandShowerOnRail_BrushedGold_A_feee06f7-2ef0-40f4-813e-c06cef7c1a32.png?v=1785829979"},{"product_id":"ovia-chloe-brushed-gold-800mm-single-towel-rail","title":"Ovia Milan 750 Single Towel Rail Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_Hero_A.png?v=1779883778');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003e750 Single Towel Rail\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e towel rail you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_Hero_A.png?v=1779883778\" alt=\"Ovia Milan 750 Single Towel Rail in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedNickelWarm_Hero_A.png?v=1779883797\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_Champagne_Hero_A.png?v=1779883816\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_Chrome_Hero_A.png?v=1779883835\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_GunMetal_Hero_A.png?v=1779883855\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_MatteBlack_Hero_A.png?v=1779883873\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA towel rail is the most-handled fitting in the bathroom — wet towels, steam and a daily tug — so it has to be built for it. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e rail is machined from DZR brass and finished in brushed gold sealed to hold its colour for the life of the room, fixed dead-level on concealed mounts. The detail that pulls the room together — and the last one you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e750 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary rail metal does in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that take the weight of wet towels without working loose — solid, dead-level and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_A_4c62e3ae-0ba2-4697-bfc2-06743e84a51b.png?v=1779892531\" alt=\"Milan towel rail in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_B_b379af69-a061-47e0-9f5a-f0c7fa771fcf.png?v=1779892531\" alt=\"Milan towel rail mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_C_a8e00a1a-54c1-4ce5-90c0-17732111dfba.png?v=1779892531\" alt=\"Milan towel rail brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_A_4c62e3ae-0ba2-4697-bfc2-06743e84a51b.png?v=1779892531\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_Hero_A.png?v=1779883778\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedNickelWarm_A_8c7eeb7f-6a08-411b-8502-bfb2f420b0cc.png?v=1779892532\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedNickelWarm_Hero_A.png?v=1779883797\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_Champagne_A_bc5cbfcd-c5f4-4086-928f-98624cb11b6f.png?v=1779892534\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_Champagne_Hero_A.png?v=1779883816\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_Chrome_A_057ca513-133d-43d9-804f-b66a8e4a3f72.png?v=1779892534\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_Chrome_Hero_A.png?v=1779883835\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_GunMetal_A_47599f28-461a-4855-91b1-03ab16e16b69.png?v=1779892535\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_GunMetal_Hero_A.png?v=1779883855\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_MatteBlack_A_9c08c365-0b39-4f18-b5d0-5656f8ab92ab.png?v=1779892536\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_MatteBlack_Hero_A.png?v=1779883873\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_Hero_B.png?v=1779883783\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e750 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan rail carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL2075BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179244693,"sku":"OVIATP800","price":114.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_SingleTowelRail750_BrushedGold_A_c889cb05-1dae-4d25-8e52-1319be76c312.png?v=1785830045"},{"product_id":"ovia-milan-brushed-nickel-basin-mixer","title":"Ovia Milan Basin Mixer Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBasin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\" alt=\"Ovia Milan Basin Mixer in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eEvery basin deserves a mixer with intent. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a single, curved spout in solid brass — poised over the basin at an easy, everyday height, with a smooth-weighted lever and a brushed nickel finish sealed to hold its colour for the life of the room. The piece you reach for a dozen times a day, made to be the one you never think to replace.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe for everyday drinking water.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_B_575cd2e5-159c-4fcf-be89-82497d2625a2.png?v=1779892479\" alt=\"Milan basin mixer on a basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOn the basin\u003c\/b\u003eSized for an inset or drop-in basin.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_C_d3a9d871-7d00-40e4-821f-3c8e33b8e447.png?v=1779892479\" alt=\"Milan basin mixer detail\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWithin reach\u003c\/b\u003eAn easy height for hands and brush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_D_40776b76-33a3-44f0-855b-74352906def0.png?v=1779892479\" alt=\"Milan basin mixer brushed nickel against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_A_7bc2d2f8-8679-4d88-8f51-2d8e4f43bd1a.png?v=1779892478\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_A_0ae3dc11-aadd-4990-9216-78fb32822fb5.png?v=1779892479\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_A_80ba6898-308b-4d14-886e-fd218f830a3b.png?v=1779892481\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_A_599513b0-8571-4675-a63d-4a9971c02bab.png?v=1779892227\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_A_0b48954b-3aed-42ea-be2f-eeaf5823aabc.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_A_780e34e9-72f0-441e-b6d1-f4e5947e9221.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_B.png?v=1779882693\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e171 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e74.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e125 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47491  |  SKU MIL01BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179310229,"sku":"OVMI25BN","price":168.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_A_321fa771-8499-46e9-92c1-46b6a348cbdb.png?v=1785829741"},{"product_id":"ovia-milan-tall-brushed-nickel-basin-mixer","title":"Ovia Milan Tall Basin Mixer Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTall Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e tall basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\" alt=\"Ovia Milan Tall Basin Mixer in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA tall basin mixer has to earn its height. Raised to clear an above-counter or vessel basin, the \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e pours from a confident, elongated spout — one sculpted line in solid brass, finished in a brushed nickel that’s sealed to hold its colour for the life of the room. The kind of detail that quietly elevates the whole space.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid brass, all the way through\u003c\/div\u003e\n\u003cp\u003eMachined from solid brass, the Milan carries a reassuring weight and the structural integrity to last decades, not seasons.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eAt its core, the Milan turns on a precision European cartridge — smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_B_a2bdd3cc-4548-4e58-886b-c41abe2b3c08.png?v=1779892537\" alt=\"Milan with an above-counter basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAbove the counter\u003c\/b\u003eSized for vessel \u0026amp; above-counter basins.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_C_143e2eae-9cf0-42d9-94d1-903ca5f0f80b.png?v=1779892538\" alt=\"Milan beside a vessel basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBeside the basin\u003c\/b\u003eClears the rim with room to spare.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_D_168b7bac-f834-4b89-8618-98da073b764a.png?v=1779892538\" alt=\"Milan brushed nickel against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_A_a8b73553-2153-4cef-a74b-0e7427718003.png?v=1779892536\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_A_bae38b82-0690-48db-bbb5-edb6e3ebf44c.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_A_61bdee5e-fb63-49ac-89a8-83c9dd2f5e32.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_A_1a8230a1-cd39-4a18-a5e8-c65f0e8bca79.png?v=1779892539\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_A_d23ffc14-5dcf-4809-8656-2ec16c9e3e9c.png?v=1779892540\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_A_8563a8ef-cf16-41ec-8ea2-b9a8278ee615.png?v=1779892541\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_B.png?v=1779882829\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e290.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e194 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e160 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47573  |  SKU MIL03BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179375765,"sku":"OVMI25TBN","price":211.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_A_05dffd6f-73ee-498e-a906-12aef969c6a4.png?v=1785829782"},{"product_id":"ovia-milan-matte-black-basin-mixer","title":"Ovia Milan Basin Mixer Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBasin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\" alt=\"Ovia Milan Basin Mixer in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eEvery basin deserves a mixer with intent. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a single, curved spout in solid brass — poised over the basin at an easy, everyday height, with a smooth-weighted lever and a matte black finish, multi-layer electroplated to stay hard-wearing and true for the life of the room. The piece you reach for a dozen times a day, made to be the one you never think to replace.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe for everyday drinking water.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_B_57246897-9ed4-4ea0-8c61-fd744fd733e3.png?v=1779892482\" alt=\"Milan basin mixer on a basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOn the basin\u003c\/b\u003eSized for an inset or drop-in basin.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_C_5fd04efc-92dc-4471-8beb-de347c77371e.png?v=1779892482\" alt=\"Milan basin mixer detail\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWithin reach\u003c\/b\u003eAn easy height for hands and brush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_D_0a620d22-6b11-4e1b-aa00-1d6d1305e75e.png?v=1779892482\" alt=\"Milan basin mixer matte black against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_A_7bc2d2f8-8679-4d88-8f51-2d8e4f43bd1a.png?v=1779892478\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_A_0ae3dc11-aadd-4990-9216-78fb32822fb5.png?v=1779892479\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_A_80ba6898-308b-4d14-886e-fd218f830a3b.png?v=1779892481\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_A_599513b0-8571-4675-a63d-4a9971c02bab.png?v=1779892227\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_A_0b48954b-3aed-42ea-be2f-eeaf5823aabc.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_A_780e34e9-72f0-441e-b6d1-f4e5947e9221.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_B.png?v=1779882785\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e171 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e74.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e125 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47491  |  SKU MIL01MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179408533,"sku":"OVMI25MB","price":157.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_A_a5f169e2-1d61-4c3e-9e6f-9f7d69f9c495.png?v=1785829765"},{"product_id":"ovia-milan-swivel-kitchen-mixer-matte-black","title":"Ovia Milan Gooseneck Kitchen Mixer Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eKitchen Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e kitchen mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\" alt=\"Ovia Milan Kitchen Mixer in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe kitchen tap earns its keep — filling pots, rinsing produce, washing up long after dinner. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a tall, swivelling gooseneck in solid brass, finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room — smooth on a European cartridge, with a spout tall enough to clear a full sink. Made to take a decade of daily use without a wobble or a drip.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and certified safe for the water you drink and cook with.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_0a00a836-9e13-40d5-90f9-04f8a6d69bd8.png?v=1779892511\" alt=\"Milan kitchen mixer gooseneck\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eA tall gooseneck\u003c\/b\u003eOne clean arc of solid brass.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_B_ef89335f-1d24-4fb6-9722-d69606625948.png?v=1779892509\" alt=\"Milan kitchen mixer swivel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSwivels across\u003c\/b\u003eReaches both bowls of a double sink.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_C_5b16fecb-8398-4e65-8198-2b8bbc88b2cc.png?v=1779892509\" alt=\"Milan kitchen mixer matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the kitchen\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_f32e62f0-d5bb-43d6-a744-249776fccb25.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_7ad32538-79db-49ef-8ce4-afe1f483fc7b.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_A_fc469835-3f1b-4e2a-9471-ec906fee9378.png?v=1779892506\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_7bc0d534-83e1-46e2-80b7-a593b96a8da4.png?v=1779892507\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_e823402b-da48-4e5e-b6cc-edd90f60fa04.png?v=1779892508\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_0a00a836-9e13-40d5-90f9-04f8a6d69bd8.png?v=1779892511\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_B.png?v=1779883424\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e364 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e210 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T48171  |  SKU MIL08MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179441301,"sku":"OVMI25KMB","price":159.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_e431df1a-4a20-4e75-bc7a-8a03f453e419.png?v=1785829848"},{"product_id":"ovia-milan-tall-matte-black-basin-mixer","title":"Ovia Milan Tall Basin Mixer Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTall Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e tall basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\" alt=\"Ovia Milan Tall Basin Mixer in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA tall basin mixer has to earn its height. Raised to clear an above-counter or vessel basin, the \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e pours from a confident, elongated spout — one sculpted line in solid brass, finished in a matte black that’s multi-layer electroplated to stay hard-wearing and true for the life of the room. The kind of detail that quietly elevates the whole space.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid brass, all the way through\u003c\/div\u003e\n\u003cp\u003eMachined from solid brass, the Milan carries a reassuring weight and the structural integrity to last decades, not seasons.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eAt its core, the Milan turns on a precision European cartridge — smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_B_0d248d08-4cdf-43f0-aff7-0382c69b650e.png?v=1779892541\" alt=\"Milan with an above-counter basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAbove the counter\u003c\/b\u003eSized for vessel \u0026amp; above-counter basins.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_C_8cddb1f5-2902-4aa3-b975-de770960ef10.png?v=1779892541\" alt=\"Milan beside a vessel basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBeside the basin\u003c\/b\u003eClears the rim with room to spare.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_D_5e72eb30-01c2-483f-8f2d-ce9b221f29ac.png?v=1779892542\" alt=\"Milan matte black against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_A_a8b73553-2153-4cef-a74b-0e7427718003.png?v=1779892536\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_A_bae38b82-0690-48db-bbb5-edb6e3ebf44c.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_A_61bdee5e-fb63-49ac-89a8-83c9dd2f5e32.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_A_1a8230a1-cd39-4a18-a5e8-c65f0e8bca79.png?v=1779892539\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_A_d23ffc14-5dcf-4809-8656-2ec16c9e3e9c.png?v=1779892540\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_A_8563a8ef-cf16-41ec-8ea2-b9a8278ee615.png?v=1779892541\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_B.png?v=1779882914\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e290.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e194 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e160 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47573  |  SKU MIL03MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179474069,"sku":"OVMI25TMB","price":200.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_A_e024b040-8ee8-4ebe-8e54-a29eacd47b97.png?v=1785829807"},{"product_id":"ovia-milan-wall-mounted-spout-matte-black","title":"Ovia Milan Bath\/Basin Spout Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBath \u0026amp; Basin Spout\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e spout you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Bath \u0026amp; Basin Spout in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA spout is the quiet half of the equation — pure water delivery, no mixing. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e bath \u0026amp; basin spout pours from a single, downturned outlet in DZR brass, finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room. Pair it with a Milan wall mixer for the controls — clean, weighted, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eType\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBath \u0026amp; Basin\u003csmall\u003eoutlet\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or leach in constant contact with water the way ordinary brass can over the years.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure water delivery\u003c\/div\u003e\n\u003cp\u003eNo cartridge, no moving parts — just a clean, downturned outlet. Pair it with a Milan wall mixer and you control hot and cold from the wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the spout.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_A_dfec5d9f-5894-4cae-a7b3-f8d4da8b233c.png?v=1779892557\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003ePure delivery\u003c\/b\u003eOne clean, downturned outlet.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_B_0bb5e052-8bf3-4bd0-ba23-dffa3d50ec14.png?v=1779892557\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBath or basin\u003c\/b\u003eA wall spout — no mixing.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_C_d8ca3391-73db-467d-bf5c-b0bdf3ec5865.png?v=1779892557\" alt=\"Milan spout matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_A_3c1c6c5d-76c8-4c42-b307-d1d090f9b12d.png?v=1779892553\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_A_77d52827-2c39-4ca9-9553-031f160ceb2b.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_A_d198a680-3eca-4c70-9727-f6f2775fe749.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_A_8f93c9df-df33-476e-82b1-a47c41d86a01.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_A_19ec04bd-9736-4441-9d4f-b564ee8fc17f.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_A_dfec5d9f-5894-4cae-a7b3-f8d4da8b233c.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_B.png?v=1779883652\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL10200MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341179572373,"sku":"OVKSP15MB","price":61.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_A_692343d2-4be9-4440-87fd-14c15db02385.png?v=1785829890"},{"product_id":"ovia-milan-gunmetal-grey-basin-mixer","title":"Ovia Milan Basin Mixer Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBasin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\" alt=\"Ovia Milan Basin Mixer in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eEvery basin deserves a mixer with intent. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a single, curved spout in solid brass — poised over the basin at an easy, everyday height, with a smooth-weighted lever and a gun metal finish, multi-layer electroplated to stay hard-wearing and true for the life of the room. The piece you reach for a dozen times a day, made to be the one you never think to replace.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe for everyday drinking water.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_B_4145b540-eb9a-41c3-a85a-eb438abc96a3.png?v=1779892481\" alt=\"Milan basin mixer on a basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOn the basin\u003c\/b\u003eSized for an inset or drop-in basin.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_C_8c3a21e3-7132-4a3d-8452-13dba9d5ec0a.png?v=1779892482\" alt=\"Milan basin mixer detail\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWithin reach\u003c\/b\u003eAn easy height for hands and brush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_D_05550e8f-825b-4882-a1ab-bd85edfe6abd.png?v=1779892481\" alt=\"Milan basin mixer gun metal against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_A_7bc2d2f8-8679-4d88-8f51-2d8e4f43bd1a.png?v=1779892478\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_A_0ae3dc11-aadd-4990-9216-78fb32822fb5.png?v=1779892479\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_A_80ba6898-308b-4d14-886e-fd218f830a3b.png?v=1779892481\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_A_599513b0-8571-4675-a63d-4a9971c02bab.png?v=1779892227\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_A_0b48954b-3aed-42ea-be2f-eeaf5823aabc.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_A_780e34e9-72f0-441e-b6d1-f4e5947e9221.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_B.png?v=1779882763\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e171 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e74.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e125 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47491  |  SKU MIL01GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341191205013,"sku":"OVMI25GM","price":197.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_A_00dd2bdb-f7e5-418d-811d-aef0f77fe739.png?v=1785829757"},{"product_id":"ovia-milan-tall-gunmetal-grey-basin-mixer","title":"Ovia Milan Tall Basin Mixer Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTall Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e tall basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\" alt=\"Ovia Milan Tall Basin Mixer in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA tall basin mixer has to earn its height. Raised to clear an above-counter or vessel basin, the \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e pours from a confident, elongated spout — one sculpted line in solid brass, finished in a gun metal that’s multi-layer electroplated to stay hard-wearing and true for the life of the room. The kind of detail that quietly elevates the whole space.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid brass, all the way through\u003c\/div\u003e\n\u003cp\u003eMachined from solid brass, the Milan carries a reassuring weight and the structural integrity to last decades, not seasons.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eAt its core, the Milan turns on a precision European cartridge — smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_B_577dec47-59d6-48d4-b133-4d9369fd3bf8.png?v=1779892541\" alt=\"Milan with an above-counter basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAbove the counter\u003c\/b\u003eSized for vessel \u0026amp; above-counter basins.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_C_a5b933a0-d9bb-44c3-8a8f-dc44651c546d.png?v=1779892541\" alt=\"Milan beside a vessel basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBeside the basin\u003c\/b\u003eClears the rim with room to spare.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_D_09eaf091-8645-438f-9306-9c86d48267e6.png?v=1779892540\" alt=\"Milan gun metal against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_A_a8b73553-2153-4cef-a74b-0e7427718003.png?v=1779892536\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_A_bae38b82-0690-48db-bbb5-edb6e3ebf44c.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_A_61bdee5e-fb63-49ac-89a8-83c9dd2f5e32.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_A_1a8230a1-cd39-4a18-a5e8-c65f0e8bca79.png?v=1779892539\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_A_d23ffc14-5dcf-4809-8656-2ec16c9e3e9c.png?v=1779892540\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_A_8563a8ef-cf16-41ec-8ea2-b9a8278ee615.png?v=1779892541\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_B.png?v=1779882894\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e290.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e194 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e160 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47573  |  SKU MIL03GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341191270549,"sku":"OVMI25TGM","price":254.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_A_8ed9f15a-31a6-42f4-82da-5883cba93695.png?v=1785829799"},{"product_id":"ovia-milan-wall-mounted-spout-gunmetal-grey","title":"Ovia Milan Bath\/Basin Spout Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBath \u0026amp; Basin Spout\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e spout you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\" alt=\"Ovia Milan Bath \u0026amp; Basin Spout in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA spout is the quiet half of the equation — pure water delivery, no mixing. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e bath \u0026amp; basin spout pours from a single, downturned outlet in DZR brass, finished in gun metal, multi-layer electroplated to stay hard-wearing and true for the life of the room. Pair it with a Milan wall mixer for the controls — clean, weighted, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e5.5 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eType\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBath \u0026amp; Basin\u003csmall\u003eoutlet\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or leach in constant contact with water the way ordinary brass can over the years.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003ePure water delivery\u003c\/div\u003e\n\u003cp\u003eNo cartridge, no moving parts — just a clean, downturned outlet. Pair it with a Milan wall mixer and you control hot and cold from the wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the spout.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_A_19ec04bd-9736-4441-9d4f-b564ee8fc17f.png?v=1779892557\" alt=\"Milan bath and basin spout\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003ePure delivery\u003c\/b\u003eOne clean, downturned outlet.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_B_1848c42a-d189-44fe-8708-a94050baeb91.png?v=1779892556\" alt=\"Milan spout on the wall\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBath or basin\u003c\/b\u003eA wall spout — no mixing.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_C_38975a63-1c7c-472a-8166-96af5edde6bd.png?v=1779892559\" alt=\"Milan spout gun metal\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_A_3c1c6c5d-76c8-4c42-b307-d1d090f9b12d.png?v=1779892553\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedGold_Hero_A.png?v=1779883552\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_A_77d52827-2c39-4ca9-9553-031f160ceb2b.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_BrushedNickelWarm_Hero_A.png?v=1779883571\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_A_d198a680-3eca-4c70-9727-f6f2775fe749.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Champagne_Hero_A.png?v=1779883589\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_A_8f93c9df-df33-476e-82b1-a47c41d86a01.png?v=1779892556\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_Chrome_Hero_A.png?v=1779883608\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_A_19ec04bd-9736-4441-9d4f-b564ee8fc17f.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_A.png?v=1779883626\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_A_dfec5d9f-5894-4cae-a7b3-f8d4da8b233c.png?v=1779892557\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_MatteBlack_Hero_A.png?v=1779883645\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_Hero_B.png?v=1779883632\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e200 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e5.5 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan fitting carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Rated WELS 5 Star at just 5.5 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 5.5 L\/min · Reg. T48249  |  SKU MIL10200GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341191303317,"sku":"OVKSP15GM","price":87.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_WallSpout_GunMetal_A_34b3ff47-adb7-46fd-a6c5-2b9b4be5a9d5.png?v=1785829882"},{"product_id":"ovia-milan-swivel-kitchen-mixer-gunmetal-grey","title":"Ovia Milan Gooseneck Kitchen Mixer Gun Metal","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eKitchen Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e kitchen mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\" alt=\"Ovia Milan Kitchen Mixer in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe kitchen tap earns its keep — filling pots, rinsing produce, washing up long after dinner. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a tall, swivelling gooseneck in solid brass, finished in gun metal, multi-layer electroplated to stay hard-wearing and true for the life of the room — smooth on a European cartridge, with a spout tall enough to clear a full sink. Made to take a decade of daily use without a wobble or a drip.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and certified safe for the water you drink and cook with.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_e823402b-da48-4e5e-b6cc-edd90f60fa04.png?v=1779892508\" alt=\"Milan kitchen mixer gooseneck\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eA tall gooseneck\u003c\/b\u003eOne clean arc of solid brass.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_B_47900ac3-79ef-4594-93df-25e27a71c050.png?v=1779892508\" alt=\"Milan kitchen mixer swivel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eSwivels across\u003c\/b\u003eReaches both bowls of a double sink.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_C_d6914bfa-0e89-4b6b-8b76-30dc13f6a803.png?v=1779892508\" alt=\"Milan kitchen mixer gun metal\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the kitchen\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_A_f32e62f0-d5bb-43d6-a744-249776fccb25.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedGold_Hero_A.png?v=1779883187\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_A_7ad32538-79db-49ef-8ce4-afe1f483fc7b.png?v=1779892505\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_BrushedNickelWarm_Hero_A.png?v=1779883341\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_A_fc469835-3f1b-4e2a-9471-ec906fee9378.png?v=1779892506\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Champagne_Hero_A.png?v=1779883361\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_A_7bc0d534-83e1-46e2-80b7-a593b96a8da4.png?v=1779892507\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_Chrome_Hero_A.png?v=1779883380\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_e823402b-da48-4e5e-b6cc-edd90f60fa04.png?v=1779892508\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_A.png?v=1779883399\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_A_0a00a836-9e13-40d5-90f9-04f8a6d69bd8.png?v=1779892511\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_MatteBlack_Hero_A.png?v=1779883418\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_Hero_B.png?v=1779883406\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e364 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e210 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T48171  |  SKU MIL08GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341191925909,"sku":"OVMI25KGM","price":245.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_KitchenMixer_GunMetal_A_6e33e844-993d-4369-a3ab-8addd9b4c21b.png?v=1785829840"},{"product_id":"ovia-milan-tall-chrome-basin-mixer","title":"Ovia Milan Tall Basin Mixer Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTall Basin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e tall basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\" alt=\"Ovia Milan Tall Basin Mixer in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA tall basin mixer has to earn its height. Raised to clear an above-counter or vessel basin, the \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e pours from a confident, elongated spout — one sculpted line in solid brass, finished in a chrome that’s multi-layer electroplated to stay hard-wearing and true for the life of the room. The kind of detail that quietly elevates the whole space.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid brass, all the way through\u003c\/div\u003e\n\u003cp\u003eMachined from solid brass, the Milan carries a reassuring weight and the structural integrity to last decades, not seasons.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eAt its core, the Milan turns on a precision European cartridge — smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_B_b42221a5-c0bc-4c75-a04f-5879a2dadf78.png?v=1779892539\" alt=\"Milan with an above-counter basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAbove the counter\u003c\/b\u003eSized for vessel \u0026amp; above-counter basins.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_C_4aa4862f-f640-433f-9977-9614135614a5.png?v=1779892539\" alt=\"Milan beside a vessel basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eBeside the basin\u003c\/b\u003eClears the rim with room to spare.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_D_c5e2c75f-d120-4845-adbd-5dd19420ef0e.png?v=1779892539\" alt=\"Milan chrome against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_A_a8b73553-2153-4cef-a74b-0e7427718003.png?v=1779892536\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedGold_Hero_A.png?v=1779882799\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_A_bae38b82-0690-48db-bbb5-edb6e3ebf44c.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882822\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_A_61bdee5e-fb63-49ac-89a8-83c9dd2f5e32.png?v=1779892538\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Champagne_Hero_A.png?v=1779882844\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_A_1a8230a1-cd39-4a18-a5e8-c65f0e8bca79.png?v=1779892539\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_A.png?v=1779882865\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_A_d23ffc14-5dcf-4809-8656-2ec16c9e3e9c.png?v=1779892540\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_GunMetal_Hero_A.png?v=1779882886\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_A_8563a8ef-cf16-41ec-8ea2-b9a8278ee615.png?v=1779892541\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_MatteBlack_Hero_A.png?v=1779882907\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_Hero_B.png?v=1779882872\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e290.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e194 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e160 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47573  |  SKU MIL03CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341350883477,"sku":"OVMI25TCH","price":187.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TallBasinMixer_Chrome_A_786c1f17-4387-4491-94e7-e2c33331bcd3.png?v=1785829790"},{"product_id":"ovia-chloe-brushed-nickel-toilet-roll-paper-holder","title":"Ovia Milan Toilet Roll Holder Brushed Nickel","description":"\u003cdiv class=\"ovia-pd opd--compact\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n  \/* compact banner render — wide horizontal accessories (hand-towel \/ toilet-roll\n     holder) overrun the right edge at the default 170%; inert without the class *\/\n  .ovia-pd.opd--compact .opd-prod{width:120%;}\n  .ovia-pd.opd--compact .opd-glint{-webkit-mask-size:120% auto,120% auto,120% auto;mask-size:120% auto,120% auto,120% auto;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eToilet Roll Holder\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e toilet roll holder you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\" alt=\"Ovia Milan Toilet Roll Holder in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe most-reached-for fitting in the smallest room. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e toilet roll holder is machined from DZR brass and finished in brushed nickel sealed to hold its colour for the life of the room, fixed dead-level on a concealed mount — solid, quiet, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e178 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that hold it dead-level and never work loose — solid and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_392c07c9-f71b-47cb-9920-a2b0c18435db.png?v=1779892543\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_B_974b8986-f2ca-4adc-9484-6d2634a34822.png?v=1779892543\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_C_17765eec-e7d3-480a-a422-ad4bcabfde7a.png?v=1779892543\" alt=\"Milan accessory brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_448d48fd-a4e7-4bf9-b46e-378af7e9a31f.png?v=1779892542\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_392c07c9-f71b-47cb-9920-a2b0c18435db.png?v=1779892543\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_A_98fe59a8-dc0f-424c-928c-694b2397f350.png?v=1779892544\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_61552bb1-ea0a-448e-9407-bc0657b47f41.png?v=1779892545\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_28dc991c-0dde-44f2-9a38-6c26bc2d4b2b.png?v=1779892546\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_aba4f578-d8dc-4ca2-a182-8dc5a1c3ed71.png?v=1779892547\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_B.png?v=1779884143\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e178 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eRail length\u003c\/span\u003e\u003cspan class=\"v\"\u003e130 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL22BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341352521877,"sku":"OVIATPBN","price":47.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_4b88ed12-1612-4546-8b38-75fd69ce4261.png?v=1785832678"},{"product_id":"ovia-milan-chrome-basin-mixer","title":"Ovia Milan Basin Mixer Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eBasin Mixer\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e basin mixer you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\" alt=\"Ovia Milan Basin Mixer in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eEvery basin deserves a mixer with intent. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e answers with a single, curved spout in solid brass — poised over the basin at an easy, everyday height, with a smooth-weighted lever and a chrome finish, multi-layer electroplated to stay hard-wearing and true for the life of the room. The piece you reach for a dozen times a day, made to be the one you never think to replace.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSolid Brass\u003csmall\u003elead-free\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 5★\u003csmall\u003e6.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eCartridge\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eEuropean\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eSolid, lead-free brass\u003c\/div\u003e\n\u003cp\u003eMachined from solid, lead-free brass — the weight and integrity to last decades, not seasons, and safe for everyday drinking water.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eEuropean cartridge control\u003c\/div\u003e\n\u003cp\u003eA precision European cartridge gives smooth, weighted control and a clean, drip-free shut-off that feels the same thousands of uses later.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the tap.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_B_5932f561-841d-44cb-913e-23f2bae6ac16.png?v=1779892227\" alt=\"Milan basin mixer on a basin\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eOn the basin\u003c\/b\u003eSized for an inset or drop-in basin.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_C_b736e53f-edcb-4fca-afcd-45b2df49972a.png?v=1779892226\" alt=\"Milan basin mixer detail\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWithin reach\u003c\/b\u003eAn easy height for hands and brush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_D_656604d1-83b1-4855-8dd4-7e9b36ace98f.png?v=1779892226\" alt=\"Milan basin mixer chrome against stone\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eAgainst stone\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_A_7bc2d2f8-8679-4d88-8f51-2d8e4f43bd1a.png?v=1779892478\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedGold_Hero_A.png?v=1779882662\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_A_0ae3dc11-aadd-4990-9216-78fb32822fb5.png?v=1779892479\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_BrushedNickelWarm_Hero_A.png?v=1779882686\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_A_80ba6898-308b-4d14-886e-fd218f830a3b.png?v=1779892481\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Champagne_Hero_A.png?v=1779882709\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_A_599513b0-8571-4675-a63d-4a9971c02bab.png?v=1779892227\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_A.png?v=1779882733\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_A_0b48954b-3aed-42ea-be2f-eeaf5823aabc.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_GunMetal_Hero_A.png?v=1779882756\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_A_780e34e9-72f0-441e-b6d1-f4e5947e9221.png?v=1779892482\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_MatteBlack_Hero_A.png?v=1779882778\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_Hero_B.png?v=1779882741\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e171 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout height\u003c\/span\u003e\u003cspan class=\"v\"\u003e74.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSpout reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e125 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e6.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e5 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan mixer carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Rated WELS 5 Star at just 6.0 L\/min, it’s as efficient as it is enduring.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 5★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3718\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 5 Star · 6.0 L\/min · Reg. T47491  |  SKU MIL01CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341352947861,"sku":"OVMI25CH","price":147.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_BasinMixer_Chrome_A_7ce999d1-0c23-4405-a190-202cce008d04.png?v=1785829750"},{"product_id":"ovia-chloe-chrome-toilet-roll-paper-holder","title":"Ovia Milan Toilet Roll Holder Chrome","description":"\u003cdiv class=\"ovia-pd opd--compact\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n  \/* compact banner render — wide horizontal accessories (hand-towel \/ toilet-roll\n     holder) overrun the right edge at the default 170%; inert without the class *\/\n  .ovia-pd.opd--compact .opd-prod{width:120%;}\n  .ovia-pd.opd--compact .opd-glint{-webkit-mask-size:120% auto,120% auto,120% auto;mask-size:120% auto,120% auto,120% auto;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eToilet Roll Holder\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e toilet roll holder you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\" alt=\"Ovia Milan Toilet Roll Holder in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe most-reached-for fitting in the smallest room. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e toilet roll holder is machined from DZR brass and finished in chrome, multi-layer electroplated to stay hard-wearing and true for the life of the room, fixed dead-level on a concealed mount — solid, quiet, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e178 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that hold it dead-level and never work loose — solid and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_61552bb1-ea0a-448e-9407-bc0657b47f41.png?v=1779892545\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_B_60ecb93d-980b-4849-9dc2-38db2d1f5637.png?v=1779892545\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_C_0c3d44b8-15ac-4569-8d4d-28a0bae5761e.png?v=1779892546\" alt=\"Milan accessory chrome\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_448d48fd-a4e7-4bf9-b46e-378af7e9a31f.png?v=1779892542\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_392c07c9-f71b-47cb-9920-a2b0c18435db.png?v=1779892543\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_A_98fe59a8-dc0f-424c-928c-694b2397f350.png?v=1779892544\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_61552bb1-ea0a-448e-9407-bc0657b47f41.png?v=1779892545\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_28dc991c-0dde-44f2-9a38-6c26bc2d4b2b.png?v=1779892546\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_aba4f578-d8dc-4ca2-a182-8dc5a1c3ed71.png?v=1779892547\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_B.png?v=1779884181\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e178 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eRail length\u003c\/span\u003e\u003cspan class=\"v\"\u003e130 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL22CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341353504917,"sku":"OVIATPCR","price":47.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_5103199a-144a-4210-ab65-6c6e46c19bf5.png?v=1785832688"},{"product_id":"ovia-trade-2-in-1-multi-function-shower-station-chrome","title":"Ovia Milan Twin Shower Chrome","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C8D2DA;--ac-deep:#6E7B86;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Chrome\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cr{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTwin Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\" alt=\"Ovia Milan Twin Shower in Chrome\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e gives you two ways to bathe from a single column — a broad 200 mm stainless-steel rain head overhead, a paddle hand shower on the rail, and a simple diverter to move between them, all finished in chrome, multi-layer electroplated to stay hard-wearing and true for the life of the room. The fitting you stand under every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eStainless Steel\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChrome\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eOverhead + Hand\u003csmall\u003ediverter\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eStainless steel, built for water\u003c\/div\u003e\n\u003cp\u003eThe rail and 200 mm overhead are stainless steel — it won’t rust, corrode or stain in a constantly wet zone, the way lesser showers do.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up in successive electroplated layers, the chrome resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eTwo ways to bathe\u003c\/div\u003e\n\u003cp\u003eA simple diverter moves you between the overhead rain and the paddle hand shower — drench from above, or take it in the hand to rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-polished\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChrome Electroplated\u003c\/b\u003e · layered and sealed over the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe chrome is built up in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality fittings for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\" alt=\"Milan twin shower overhead and hand shower\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eTwo heads, one column\u003c\/b\u003eRain overhead, hand shower on the rail.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_B_41599ea3-60e9-4a75-a41c-3f11ed003bb3.png?v=1779892551\" alt=\"Milan twin shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eThe paddle, on its slider.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_C_281ae913-8ea3-47dd-8565-8a32d8a84442.png?v=1779892550\" alt=\"Milan twin shower chrome\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChrome adds a crisp, cool gleam.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr is-current\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_B.png?v=1779884897\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e1030 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverhead reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e345 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e500 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the chrome is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous, drenching flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47777  |  SKU MIL31CH\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same chrome finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341401084053,"sku":"BSD013P","price":287.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_a21b33d8-f588-4a8a-9232-ad8f715969c1.png?v=1785830012"},{"product_id":"ovia-trade-2-in-1-multi-function-shower-station-matte-black","title":"Ovia Milan Twin Shower Matte Black","description":"\u003cdiv class=\"ovia-pd opd--matte\" style=\"--ac:#7E7A75;--ac-deep:#1A1815;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Matte Black\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--mb{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eTwin Shower\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e shower you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\" alt=\"Ovia Milan Twin Shower in Matte Black\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA shower sets the tone for the whole day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e gives you two ways to bathe from a single column — a broad 200 mm stainless-steel rain head overhead, a paddle hand shower on the rail, and a simple diverter to move between them, all finished in matte black, multi-layer electroplated to stay hard-wearing and true for the life of the room. The fitting you stand under every morning, made to outlast the room around it.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eStainless Steel\u003csmall\u003e\u0026amp; ABS handpiece\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eMatte Black\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWater\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eWELS 3★\u003csmall\u003e9.0 L\/min\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFunction\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eOverhead + Hand\u003csmall\u003ediverter\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eStainless steel, built for water\u003c\/div\u003e\n\u003cp\u003eThe rail and 200 mm overhead are stainless steel — it won’t rust, corrode or stain in a constantly wet zone, the way lesser showers do.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up in successive electroplated layers, the matte black resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eTwo ways to bathe\u003c\/div\u003e\n\u003cp\u003eA simple diverter moves you between the overhead rain and the paddle hand shower — drench from above, or take it in the hand to rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch is-matte\" style=\"--ac:#2e2b28\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eMatte Black Electroplated\u003c\/b\u003e · layered and sealed over the surface\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe matte black is built up in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality fittings for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for the life of the shower.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\" alt=\"Milan twin shower overhead and hand shower\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eTwo heads, one column\u003c\/b\u003eRain overhead, hand shower on the rail.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_B_e8b265b7-18e9-4884-8e0b-9bae23a6135e.png?v=1779892552\" alt=\"Milan twin shower hand piece\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the hand\u003c\/b\u003eThe paddle, on its slider.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_C_ccf8a89b-eac2-47cd-9985-bc3591bd07fe.png?v=1779892552\" alt=\"Milan twin shower matte black\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eMatte black anchors a bright palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_A_b2d991c0-f9a4-4443-b153-0ab90e4da0e0.png?v=1779892548\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedGold_Hero_A.png?v=1779884834\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_A_4d360856-9bb5-4883-b1c9-ba3f9ff83bce.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_BrushedNickelWarm_Hero_A.png?v=1779884853\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_A_d867b792-285d-4479-983f-aeb3246a7410.png?v=1779892549\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Champagne_Hero_A.png?v=1779884872\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_A_6df14d02-5e2f-4eff-b6b9-fb30087c3440.png?v=1779892550\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_Chrome_Hero_A.png?v=1779884891\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_A_c649b305-3bec-4bb5-9172-038bd2de3aa9.png?v=1779892551\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_GunMetal_Hero_A.png?v=1779884910\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb is-current\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_a2db150a-c266-45d4-961c-8265f62f4f25.png?v=1779892552\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_A.png?v=1779884929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_Hero_B.png?v=1779884935\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverall height\u003c\/span\u003e\u003cspan class=\"v\"\u003e1030 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eOverhead reach\u003c\/span\u003e\u003cspan class=\"v\"\u003e345 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eSlide rail\u003c\/span\u003e\u003cspan class=\"v\"\u003e500 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eFlow rate\u003c\/span\u003e\u003cspan class=\"v\"\u003e9.0 L\/min\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eWELS rating\u003c\/span\u003e\u003cspan class=\"v\"\u003e3 Star\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan shower carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the matte black is guaranteed not to wear away. Rated WELS 3 Star at 9.0 L\/min, it pairs a generous, drenching flow with everyday efficiency.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TRUST BADGES — under both warranty + care --\u003e\n\u003cdiv class=\"opd-cert reveal\"\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wm\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWaterMark\u003c\/b\u003e Certified\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-wels\"\u003e\u003c\/i\u003e\u003cspan\u003e\u003cb\u003eWELS\u003c\/b\u003e 3★ Registered\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-cert__i\"\u003e\n\u003ci class=\"ic-as\"\u003e\u003c\/i\u003e\u003cspan\u003eMade to \u003cb\u003eAS\/NZS 3662\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-reg reveal\"\u003eWELS 3 Star · 9.0 L\/min · Reg. S47777  |  SKU MIL31MB\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same matte black finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341401149589,"sku":"BSD013PBK","price":307.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_TwoInOneShower_MatteBlack_A_abf435b2-3b8f-43f9-8f80-48039ec29bcf.png?v=1785830028"},{"product_id":"ovia-chloe-pvd-gunmetal-toilet-roll-paper-holder","title":"Ovia Milan Toilet Roll Holder Gun Metal","description":"\u003cdiv class=\"ovia-pd opd--compact\" style=\"--ac:#9C958C;--ac-deep:#403D39;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Gun Metal\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--gm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"Electroplated\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n  \/* compact banner render — wide horizontal accessories (hand-towel \/ toilet-roll\n     holder) overrun the right edge at the default 170%; inert without the class *\/\n  .ovia-pd.opd--compact .opd-prod{width:120%;}\n  .ovia-pd.opd--compact .opd-glint{-webkit-mask-size:120% auto,120% auto,120% auto;mask-size:120% auto,120% auto,120% auto;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eToilet Roll Holder\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e toilet roll holder you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\" alt=\"Ovia Milan Toilet Roll Holder in Gun Metal\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eThe most-reached-for fitting in the smallest room. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e toilet roll holder is machined from DZR brass and finished in gun metal, multi-layer electroplated to stay hard-wearing and true for the life of the room, fixed dead-level on a concealed mount — solid, quiet, and made to outlast the room.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGun Metal\u003csmall\u003eElectroplated\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e178 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e72 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBuilt up over the brass in multiple plated layers, the gun metal resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that hold it dead-level and never work loose — solid and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\" style=\"--ac:#94908A;--shadow:#0d0e0e\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eGun Metal Electroplated\u003c\/b\u003e · layered and sealed over solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePlated to last\u003c\/h4\u003e\n    \u003cp\u003eThe gun metal is built up over the solid-brass body in successive electroplated layers, then sealed against tarnish and everyday wear — the same proven process trusted on quality tapware for generations. Hard-wearing and true to tone, and backed, like every Milan finish, for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_28dc991c-0dde-44f2-9a38-6c26bc2d4b2b.png?v=1779892546\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_B_50b686c4-c30b-4707-9779-b6750f758222.png?v=1779892546\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_C_5e8634d5-387b-40b8-b0fe-67ff90c91941.png?v=1779892546\" alt=\"Milan accessory gun metal\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eGun metal grounds a light palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_A_448d48fd-a4e7-4bf9-b46e-378af7e9a31f.png?v=1779892542\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedGold_Hero_A.png?v=1779884118\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_A_392c07c9-f71b-47cb-9920-a2b0c18435db.png?v=1779892543\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_BrushedNickelWarm_Hero_A.png?v=1779884136\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_A_98fe59a8-dc0f-424c-928c-694b2397f350.png?v=1779892544\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Champagne_Hero_A.png?v=1779884156\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_A_61552bb1-ea0a-448e-9407-bc0657b47f41.png?v=1779892545\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_Chrome_Hero_A.png?v=1779884175\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm is-current\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_28dc991c-0dde-44f2-9a38-6c26bc2d4b2b.png?v=1779892546\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_A.png?v=1779884194\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_A_aba4f578-d8dc-4ca2-a182-8dc5a1c3ed71.png?v=1779892547\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_MatteBlack_Hero_A.png?v=1779884213\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_Hero_B.png?v=1779884200\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e178 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e72 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eRail length\u003c\/span\u003e\u003cspan class=\"v\"\u003e130 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the gun metal is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL22GM\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same gun metal finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":46341402591381,"sku":"OVIATPGM","price":52.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_ToiletRollHolder_GunMetal_A_859260d3-5cb0-41e6-8282-69585f4a74e1.png?v=1785832696"},{"product_id":"ovia-chloe-brushed-nickel-robe-hook","title":"Ovia Milan Robe Hook Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_Hero_A.png?v=1779884625');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003eRobe Hook\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e robe hook you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_Hero_A.png?v=1779884606\" alt=\"Ovia Milan Robe Hook in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_Hero_A.png?v=1779884625\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Champagne_Hero_A.png?v=1779884644\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Chrome_Hero_A.png?v=1779884664\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_GunMetal_Hero_A.png?v=1779884683\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_MatteBlack_Hero_A.png?v=1779884702\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA hook carries more than it looks — a loaded robe, a wet towel, day after day. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e hook takes it in DZR brass, finished in brushed nickel sealed to hold its colour for the life of the room, on a single concealed fixing that won’t pull from the wall. The last hook you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e67 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eType\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eSingle hook\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary fittings do in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eA single concealed fixing takes the weight of a loaded robe or wet towel without ever pulling away from the wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_A_81cbd313-61d2-436e-a3a8-b15771350d35.png?v=1779892516\" alt=\"Milan accessory in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_B_9b3158f1-44d1-4cdc-b5f9-da2b6e12829d.png?v=1779892516\" alt=\"Milan accessory mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_C_89e10c42-9d56-4553-a127-8c3d6e9d330e.png?v=1779892516\" alt=\"Milan accessory brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_A_b42863be-d10a-4eb2-9d90-b78bbe45fa16.png?v=1779892516\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedGold_Hero_A.png?v=1779884606\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_A_81cbd313-61d2-436e-a3a8-b15771350d35.png?v=1779892516\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_Hero_A.png?v=1779884625\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Champagne_A_2b956dae-630f-45ce-b227-6952c6c02f2e.png?v=1779892517\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Champagne_Hero_A.png?v=1779884644\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Chrome_A_b9f26059-b5c6-4b48-b2d5-873d84d49eab.png?v=1779892518\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_Chrome_Hero_A.png?v=1779884664\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_GunMetal_A_1edf6857-76d2-49ba-b806-74cfc6ec63d7.png?v=1779892519\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_GunMetal_Hero_A.png?v=1779884683\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_MatteBlack_A_70b8c8b1-fd4a-40a4-8c06-7b2092ceb873.png?v=1779892520\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_MatteBlack_Hero_A.png?v=1779884702\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_Hero_B.png?v=1779884631\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e67 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eBody Ø\u003c\/span\u003e\u003cspan class=\"v\"\u003e20 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eHook Ø\u003c\/span\u003e\u003cspan class=\"v\"\u003e8 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan accessory carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL25BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":47304877179029,"sku":"OVIATPRBN","price":39.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_RobeHook_BrushedNickelWarm_A_76b7f5cf-cf85-4b33-924e-940a5e3d30b2.png?v=1785832713"},{"product_id":"ovia-milan-600-double-towel-rail-brushed-gold","title":"Ovia Milan 600 Double Towel Rail Brushed Gold","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#C5A253;--ac-deep:#9A7B46;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Gold\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bg{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003e600 Double Towel Rail\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e towel rail you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892\" alt=\"Ovia Milan 600 Double Towel Rail in Brushed Gold\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_Hero_A.png?v=1779883947\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_Hero_A.png?v=1779883966\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_Hero_A.png?v=1779883986\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA towel rail is the most-handled fitting in the bathroom — wet towels, steam and a daily tug — so it has to be built for it. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e rail is machined from DZR brass and finished in brushed gold sealed to hold its colour for the life of the room, fixed dead-level on concealed mounts. The detail that pulls the room together — and the last one you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Gold\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e607 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e131 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary rail metal does in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed gold resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that take the weight of wet towels without working loose — solid, dead-level and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Gold PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed gold is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_A_dcff9cc9-f207-4f46-adc2-4b49bc5211cb.png?v=1779892484\" alt=\"Milan towel rail in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_B_1a3ab119-c599-40c3-9b32-39f64246903b.png?v=1779892484\" alt=\"Milan towel rail mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_C_8b301240-e499-405f-bbd7-cc375054b76d.png?v=1779892484\" alt=\"Milan towel rail brushed gold\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eBrushed gold warms a cool palette.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg is-current\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_A_dcff9cc9-f207-4f46-adc2-4b49bc5211cb.png?v=1779892484\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_A_9150e774-09aa-452e-94db-a2b2461447e7.png?v=1779892485\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_A_4a6ddc31-b723-4a6d-97e3-76d7900d242a.png?v=1779892485\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_A_edfedbab-6ecd-47e2-9d6d-e9c597b53e30.png?v=1779892486\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_Hero_A.png?v=1779883947\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_A_2caf5f2c-e1c3-474d-8a2d-a838b8c67918.png?v=1779892487\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_Hero_A.png?v=1779883966\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_A_e502aaff-47b0-4b84-84fc-3d07b5d68053.png?v=1779892488\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_Hero_A.png?v=1779883986\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_B.png?v=1779883898\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e607 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e131 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan rail carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed gold is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL2160BG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed gold finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":47338118414485,"sku":"MIL2160BG","price":147.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_A_dcff9cc9-f207-4f46-adc2-4b49bc5211cb.png?v=1779892484"},{"product_id":"ovia-milan-600-double-towel-rail-brushed-nickel","title":"Ovia Milan 600 Double Towel Rail Brushed Nickel","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#CFC4B0;--ac-deep:#897E6B;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Brushed Nickel\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--bn{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003e600 Double Towel Rail\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e towel rail you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892\" alt=\"Ovia Milan 600 Double Towel Rail in Brushed Nickel\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_Hero_A.png?v=1779883947\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_Hero_A.png?v=1779883966\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_Hero_A.png?v=1779883986\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA towel rail is the most-handled fitting in the bathroom — wet towels, steam and a daily tug — so it has to be built for it. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e rail is machined from DZR brass and finished in brushed nickel sealed to hold its colour for the life of the room, fixed dead-level on concealed mounts. The detail that pulls the room together — and the last one you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eBrushed Nickel\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e607 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e131 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary rail metal does in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the brushed nickel resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that take the weight of wet towels without working loose — solid, dead-level and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eBrushed Nickel PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe brushed nickel is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_A_9150e774-09aa-452e-94db-a2b2461447e7.png?v=1779892485\" alt=\"Milan towel rail in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_B_82b35cd6-6149-49fb-a6f0-50c271b62229.png?v=1779892484\" alt=\"Milan towel rail mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_C_27dd1659-7e3a-4354-ae06-316334cfdf8d.png?v=1779892484\" alt=\"Milan towel rail brushed nickel\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eWarm nickel keeps the palette calm.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_A_dcff9cc9-f207-4f46-adc2-4b49bc5211cb.png?v=1779892484\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn is-current\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_A_9150e774-09aa-452e-94db-a2b2461447e7.png?v=1779892485\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_A_4a6ddc31-b723-4a6d-97e3-76d7900d242a.png?v=1779892485\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_A_edfedbab-6ecd-47e2-9d6d-e9c597b53e30.png?v=1779892486\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_Hero_A.png?v=1779883947\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_A_2caf5f2c-e1c3-474d-8a2d-a838b8c67918.png?v=1779892487\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_Hero_A.png?v=1779883966\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_A_e502aaff-47b0-4b84-84fc-3d07b5d68053.png?v=1779892488\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_Hero_A.png?v=1779883986\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_B.png?v=1779883917\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e607 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e131 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan rail carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the brushed nickel is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL2160BN\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same brushed nickel finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":47338118447253,"sku":"MIL2160BN","price":147.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_A_9150e774-09aa-452e-94db-a2b2461447e7.png?v=1779892485"},{"product_id":"ovia-milan-600-double-towel-rail-champagne","title":"Ovia Milan 600 Double Towel Rail Champagne","description":"\u003cdiv class=\"ovia-pd\" style=\"--ac:#DDB3AE;--ac-deep:#A1726D;--hero:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929');\"\u003e\n\u003cstyle\u003e\n  .accordion-body:has(\u003e .ovia-pd) \u003e h2{display:none;}\n\n  .ovia-pd{font-family:inherit;color:#26241f;line-height:1.6;\n    \/* soft container tint, derived from the finish's DEEP accent — the colour\n       family tuned for the LIGHT body (ink, rules, drop-cap), NOT the --ac glow\n       that's tuned to sit on the dark banner. Was hard-coded cream (#fcfaf6 \/\n       #fffdf8), which is golden and so only ever suited Brushed Gold. ~4% of\n       --ac-deep into white reproduces that cream on gold and shifts per finish;\n       on the light body the dark finishes resolve to a clean, soft cool-grey\n       (matte black's near-black deep -\u003e pale charcoal, not a dingy mid-grey).\n       Fixed per product finish like the ink — not hover-reactive. *\/\n    --cream:color-mix(in srgb,var(--ac-deep) 4%,#fff);\n    --cream-soft:color-mix(in srgb,var(--ac-deep) 2.5%,#fff);\n    \/* finish-tracking NEUTRALS — a fixed-lightness grey nudged toward the finish's\n       deep accent, so the old warm\/cream greys read warm on gold but cool on\n       chrome\/gun metal and neutral on matte, WITHOUT shifting text hierarchy\n       (the base grey holds the lightness; --ac-deep only swings the hue). *\/\n    --label:color-mix(in srgb,var(--ac-deep) 20%,#898780); \/* uppercase labels \/ section heads *\/\n    --body:color-mix(in srgb,var(--ac-deep) 16%,#505050);  \/* body copy *\/\n    --faint:color-mix(in srgb,var(--ac-deep) 16%,#a7a299); \/* fine print \/ hints *\/\n    --line:color-mix(in srgb,var(--ac-deep) 9%,#efece6);   \/* hairlines \/ borders *\/\n    --line-2:color-mix(in srgb,var(--ac-deep) 7%,#f4f1eb); \/* lighter grid lines \/ dividers *\/\n    \/* the finish grid shows ALL six finishes at once, so its tiles stay NEUTRAL *\/\n    --tile:#f2f1ef;\n    --tile-line:#e9e7e3;\n    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}\n  .ovia-pd *{box-sizing:border-box;}\n  .ovia-pd img{max-width:100%;}\n\n  \/* ============ 1. BANNER ============ *\/\n  .ovia-pd .opd-banner{position:relative;overflow:hidden;border-radius:16px;isolation:isolate;\n    background:radial-gradient(120% 140% at 88% 18%, #2a241a 0%, #1a160f 42%, #0e0b08 100%);\n    padding:22px 30px;display:flex;align-items:stretch;gap:24px;min-height:220px;\n    transition:background .5s ease;}\n  .ovia-pd .opd-banner::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(62% 84% at 80% 44%, color-mix(in srgb,var(--ac) 50%,transparent) 0%, transparent 66%);\n    animation:opdBloom 1.4s ease-out both;transition:background .5s ease;}\n  .ovia-pd .opd-bL{position:relative;z-index:3;flex:1 1 46%;max-width:46%;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-logo{display:block;width:68px;height:23px;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') left center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.92;margin-bottom:12px;animation:opdRise .7s .05s ease-out both;}\n  .ovia-pd .opd-kicker{font-size:.594rem;letter-spacing:.34em;text-transform:uppercase;\n    color:color-mix(in srgb,var(--ac) 76%,#fff);margin-bottom:9px;font-weight:500;animation:opdRise .7s .14s ease-out both;}\n  .ovia-pd .opd-name{font-size:1.5rem;line-height:1.07;font-weight:300;color:#f6f1e9;\n    margin:0 0 5px;letter-spacing:-.012em;animation:opdRise .7s .22s ease-out both;}\n  .ovia-pd .opd-finish{font-size:.781rem;color:#b9af9c;font-weight:300;letter-spacing:.03em;animation:opdRise .7s .3s ease-out both;}\n  \/* finish name driven by :has() so it tracks the hovered swatch *\/\n  .ovia-pd .opd-finish__nm::before{content:\"Champagne\";}\n  .ovia-pd .opd-manifesto{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);\n    font-size:.844rem;font-weight:300;color:#e7ddcc;font-style:italic;line-height:1.45;animation:opdRise .7s .4s ease-out both;}\n  .ovia-pd .opd-manifesto em{color:var(--ac);font-style:italic;font-weight:400;}\n\n  .ovia-pd .opd-bR{position:static;flex:0 0 0;}\n  .ovia-pd .opd-figure{position:absolute;z-index:1;top:0;right:0;bottom:0;width:58%;margin:0;overflow:hidden;\n    \/* soft left-edge fade — some renders (e.g. the twin shower) crop on the left;\n       fading the leftmost sliver blends that hard cut into the banner ground *\/\n    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%);mask-image:linear-gradient(to right,transparent 0,#000 12%);\n    animation:opdFloatIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;}\n  \/* stacked finish renders — crossfade on swatch hover (FEATURE 1) *\/\n  .ovia-pd .opd-prod{position:absolute;left:0;bottom:0;width:170%;max-width:none !important;height:auto;\n    opacity:0;transition:opacity .5s ease;-webkit-user-drag:none;user-select:none;pointer-events:none;}\n  .ovia-pd .ph--cm{opacity:1;}\n  \/* accent + banner finish label follow the hovered finish *\/\n  \/* finish PROCESS word (PVD vs Electroplated) — honest per finish, tracks hover too.\n     Default (non-hover) label is set per-finish by the rollout. *\/\n  .ovia-pd .opd-finish__pr::before{content:\"PVD\";}\n\n  .ovia-pd .opd-glint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;\n    background:linear-gradient(108deg,transparent 40%,rgba(255,252,242,.84) 50%,transparent 60%);\n    background-size:260% 100%;background-repeat:no-repeat;\n    \/* mask to the fixture silhouette, stacked x3 with intersect so the alpha\n       MULTIPLIES — the opaque metal stays lit but the semi-transparent baked\n       shadow (low alpha) drops out, so the shine never bleeds onto the shadow *\/\n    -webkit-mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    mask:var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat,var(--hero) left bottom\/170% auto no-repeat;\n    -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;\n    animation:opdGlint 9s 2.5s ease-in-out infinite;}\n\n  \/* ============ 2. OPENING ============ *\/\n  .ovia-pd .opd-lead{margin:38px 4px 6px;font-size:1.2rem;line-height:1.62;font-weight:300;color:#34302a;letter-spacing:.002em;}\n  .ovia-pd .opd-lead .drop{color:var(--ac-deep);font-weight:500;}\n\n  \/* ============ 3. SPEC STRIP ============ *\/\n  .ovia-pd .opd-specs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);\n    border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:30px 0;}\n  .ovia-pd .opd-spec{background:#fff;padding:16px 12px;text-align:center;position:relative;transition:background .3s ease;}\n  .ovia-pd .opd-spec::after{content:\"\";position:absolute;left:50%;bottom:0;height:2px;width:0;background:var(--ac-deep);transform:translateX(-50%);transition:width .35s ease;}\n  .ovia-pd .opd-spec:hover{background:var(--cream-soft);}\n  .ovia-pd .opd-spec:hover::after{width:42%;}\n  .ovia-pd .opd-spec .l{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}\n  .ovia-pd .opd-spec .v{font-size:.86rem;font-weight:500;color:#2a2722;line-height:1.3;}\n  .ovia-pd .opd-spec .v small{display:block;font-weight:400;font-size:.74rem;color:var(--label);margin-top:2px;}\n\n  \/* ============ section heading ============ *\/\n  .ovia-pd .opd-h{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--label);font-weight:600;\n    margin:46px 4px 22px;display:flex;align-items:center;gap:16px;}\n  .ovia-pd .opd-h::after{content:\"\";flex:1;height:1px;background:linear-gradient(90deg,var(--ac-deep),var(--line) 70%);transform-origin:left;}\n  .ovia-pd .opd-h .opd-hint{flex:0 0 auto;font-size:.58rem;letter-spacing:.14em;color:var(--faint);font-weight:500;text-transform:none;font-style:italic;}\n\n  \/* ============ 4. CRAFT ============ *\/\n  .ovia-pd .opd-craft{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 8px;}\n  .ovia-pd .opd-c .n{font-size:.96rem;font-weight:600;color:var(--ac-deep);margin-bottom:12px;font-variant-numeric:tabular-nums;position:relative;padding-bottom:10px;}\n  .ovia-pd .opd-c .n::after{content:\"\";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--ac-deep);}\n  .ovia-pd .opd-c .t{font-size:1.05rem;font-weight:500;color:#2a2722;margin:0 0 8px;line-height:1.25;}\n  .ovia-pd .opd-c p{margin:0;font-size:.9rem;color:var(--body);line-height:1.58;}\n\n  \/* ============ NEW: MACRO-DETAIL STRIP (FEATURE 2) ============ *\/\n  .ovia-pd .opd-macro{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\n  .ovia-pd .opd-macro figure{margin:0;}\n  \/* square tiles — the gallery scenes are 2000x2000, so 1:1 shows them uncropped *\/\n  .ovia-pd .opd-macro .frame{display:block;aspect-ratio:1\/1;overflow:hidden;border-radius:12px;background:var(--cream);position:relative;}\n  .ovia-pd .opd-macro .frame img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}\n  .ovia-pd .opd-macro figure:hover .frame img{transform:scale(1.08);}\n  .ovia-pd .opd-macro figcaption{margin-top:10px;font-size:.82rem;color:var(--body);}\n  .ovia-pd .opd-macro figcaption b{display:block;color:#2a2722;font-weight:500;font-size:.9rem;margin-bottom:1px;}\n\n  \/* ============ 5. FINISH FAMILY — interactive (FEATURE 1) ============ *\/\n  .ovia-pd .opd-finishes{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 18px;\n    max-width:506px;margin:12px auto 8px;}\n  .ovia-pd .opd-fin{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;\n    width:150px;font:inherit;color:var(--body);display:flex;flex-direction:column;gap:9px;text-align:center;}\n  .ovia-pd .opd-fin__img{display:block;aspect-ratio:4\/3;overflow:hidden;border-radius:11px;\n    background:var(--tile);border:1px solid var(--tile-line);\n    transition:transform .28s cubic-bezier(.2,.7,.2,1),border-color .25s ease,box-shadow .25s ease;}\n  .ovia-pd .opd-fin__img img{width:100% !important;height:100% !important;object-fit:cover;object-position:6% bottom;display:block;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;}\n  .ovia-pd .opd-fin__name{font-size:.78rem;letter-spacing:.01em;line-height:1.2;transition:color .2s ease;}\n  .ovia-pd .opd-fin:hover .opd-fin__img{transform:translateY(-4px);\n    border-color:color-mix(in srgb,var(--c) 55%,#d8d2c5);box-shadow:0 12px 26px rgba(80,66,40,.14);}\n  .ovia-pd .opd-fin:hover .opd-fin__name{color:#2a2722;}\n  .ovia-pd .opd-fin.is-current .opd-fin__img{border-color:var(--c);box-shadow:0 0 0 1px var(--c);}\n  .ovia-pd .opd-fin.is-current .opd-fin__name{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-fin.is-current .opd-fin__name::before{content:\"\";display:inline-block;width:6px;height:6px;\n    border-radius:50%;background:var(--c);margin-right:7px;vertical-align:middle;\n    box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#fff);}\n\n  \/* ---- finish PREVIEW OVERLAY: each card owns a pane directly ABOVE IT.\n       hover (desktop) \/ press-hold (:active, mobile) pops that finish's\n       Gallery-A render in a metallic pane, pointer centred under it pointing\n       at that card. Per-finish --ac is set inline on each card (matte black =\n       true #1a1a1a — bright render bg). Pure CSS, no :has(). ---- *\/\n  .ovia-pd .opd-fin{position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}\n  .ovia-pd .opv{position:absolute;left:calc(50% - var(--co,0px));bottom:calc(100% + 12px);z-index:30;width:min(400px,88vw);transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);}\n  .ovia-pd .opd-fin:active .opv{opacity:1;transform:translate(-50%,0);}\n  @media (hover:hover){.ovia-pd .opd-fin:hover .opv{opacity:1;transform:translate(-50%,0);}}\n  .ovia-pd .opv__frame{display:block;position:relative;border-radius:14px;padding:1.5px;width:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 90%,#fff) 0%,var(--ac) 26%,color-mix(in srgb,var(--ac) 48%,#241a10) 50%,color-mix(in srgb,var(--ac) 95%,#fff) 72%,var(--ac) 100%);box-shadow:0 6px 16px -4px rgba(34,24,10,.42),0 2px 5px -1px rgba(34,24,10,.34);}\n  .ovia-pd .opv__inner{display:block;position:relative;border-radius:12.5px;overflow:hidden;aspect-ratio:1\/1;background:#f3ede2;z-index:2;}\n  .ovia-pd .opv__img{display:block;width:100% !important;height:100% !important;object-fit:cover;object-position:center;pointer-events:none;}\n  .ovia-pd .opv__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.55rem .75rem .5rem;background:linear-gradient(to top,rgba(8,6,5,.82),transparent);display:flex;align-items:center;gap:.45em;}\n  .ovia-pd .opv__dot{width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 8px color-mix(in srgb,var(--ac) 60%,transparent);flex-shrink:0;}\n  .ovia-pd .opv__nm{font-size:.78rem;font-weight:400;letter-spacing:.03em;color:#f3ece0;}\n  .ovia-pd .opv__tip{position:absolute;left:calc(50% + var(--co,0px));bottom:-5px;width:14px;height:14px;z-index:1;transform:translateX(-50%) rotate(45deg);border-radius:0 0 4px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 80%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 58%,#241a10));box-shadow:2px 2px 5px -2px rgba(34,24,10,.34);}\n  \/* pane re-centres on the grid; pointer slides to sit under the HELD card.\n     --co = held card's centre offset from the grid centre. 3 columns on desktop,\n     2 on phones (card 150px + 18px gap =\u003e 168px step). *\/\n  .ovia-pd .opd-fin--bg{--co:-168px;} .ovia-pd .opd-fin--bn{--co:0px;} .ovia-pd .opd-fin--cm{--co:168px;}\n  .ovia-pd .opd-fin--cr{--co:-168px;} .ovia-pd .opd-fin--gm{--co:0px;} .ovia-pd .opd-fin--mb{--co:168px;}\n  @media (max-width:600px){\n    .ovia-pd .opd-fin--bg{--co:-84px;} .ovia-pd .opd-fin--bn{--co:84px;} .ovia-pd .opd-fin--cm{--co:-84px;}\n    .ovia-pd .opd-fin--cr{--co:84px;} .ovia-pd .opd-fin--gm{--co:-84px;} .ovia-pd .opd-fin--mb{--co:84px;}\n  }\n  .ovia-pd .opd-hint .hint-hold{display:none;}\n  @media (hover:none){.ovia-pd .opd-hint .hint-hover{display:none;}.ovia-pd .opd-hint .hint-hold{display:inline;}}\n\n\n  \/* ============ NEW: DIMENSIONS — render + spec table (FEATURE 5) ============ *\/\n  .ovia-pd .opd-dims{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);}\n  .ovia-pd .opd-dims__draw{flex:1 1 58%;position:relative;min-height:300px;overflow:hidden;\n    background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);\n    background-size:26px 26px;}\n  .ovia-pd .opd-dims__img{position:absolute;left:4%;bottom:0;height:90% !important;width:auto;max-width:none !important;\n    \/* tight top-edge fade — tall renders (twin shower, rail shower) crop at the top\n       of this Hero_B; fading the very top blends that hard cut into the grid *\/\n    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%);}\n  .ovia-pd .opd-dims__table{flex:0 0 248px;padding:22px 26px;border-left:1px solid var(--line-2);background:#fff;\n    display:flex;flex-direction:column;justify-content:center;}\n  .ovia-pd .opd-dims__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;\n    padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.84rem;}\n  .ovia-pd .opd-dims__row:last-child{border-bottom:none;}\n  .ovia-pd .opd-dims__row .k{color:var(--label);}\n  .ovia-pd .opd-dims__row .v{color:#2a2722;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}\n  .ovia-pd .opd-dims__row .v.tbc{color:var(--faint);}\n  .ovia-pd .opd-dims__note{margin:10px 4px 0;font-size:.74rem;color:var(--faint);}\n  .ovia-pd .opd-dims__note b{color:var(--ac-deep);}\n\n  \/* ============ 6. ASSURANCE — original lifetime-warranty badge ============ *\/\n  .ovia-pd .opd-warranty{display:flex;align-items:stretch;border:1px solid var(--ac-deep);border-radius:12px;\n    overflow:hidden;margin:30px 0 10px;background:var(--cream-soft);position:relative;}\n  .ovia-pd .opd-warranty .badge{flex:0 0 152px;position:relative;overflow:hidden;\n    background:linear-gradient(160deg,#2a241a,#14110b);color:#f3ead8;\n    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 14px;gap:6px;}\n  .ovia-pd .opd-warranty .badge::before{content:\"\";position:absolute;inset:0;\n    background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.14) 50%,transparent 60%);\n    background-size:250% 100%;animation:opdGlint 6s 1s ease-in-out infinite;}\n  .ovia-pd .opd-warranty .badge .big{font-size:2rem;font-weight:300;color:var(--ac);line-height:1;position:relative;}\n  .ovia-pd .opd-warranty .badge .sm{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#b6ab97;position:relative;}\n  .ovia-pd .opd-warranty .body{padding:18px 22px;font-size:.92rem;color:#3a352d;line-height:1.58;}\n  .ovia-pd .opd-warranty .body b{color:#2a2722;}\n  .ovia-pd .opd-reg{font-size:.74rem;letter-spacing:.08em;color:var(--faint);margin:12px 4px 0;}\n\n  \/* ============ 7. COLLECTION — dark \"bookend\" panel (echoes the hero banner) ============ *\/\n  .ovia-pd .opd-coll{position:relative;overflow:hidden;isolation:isolate;margin:46px 0 6px;padding:44px 36px 40px;\n    border-radius:16px;text-align:center;\n    background:radial-gradient(120% 130% at 50% 0%, #2a241a 0%, #1a160f 46%, #0e0b08 100%);}\n  .ovia-pd .opd-coll::before{content:\"\";position:absolute;inset:0;z-index:0;\n    background:radial-gradient(52% 64% at 50% 2%, color-mix(in srgb,var(--ac) 22%,transparent), transparent 72%);}\n  .ovia-pd .opd-coll__logo{display:block;width:78px;height:26px;margin:0 auto 18px;position:relative;z-index:1;\n    background:url('https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/ovia-logo-black.png?v=1779186226') center\/contain no-repeat;\n    filter:brightness(0) invert(1);opacity:.9;}\n  .ovia-pd .opd-coll .t{position:relative;z-index:1;font-size:1.5rem;font-weight:300;color:#f4ecdd;margin:0 0 12px;letter-spacing:-.01em;}\n  .ovia-pd .opd-coll .t b{font-weight:600;color:var(--ac);}\n  .ovia-pd .opd-coll p{position:relative;z-index:1;margin:0 auto;max-width:52ch;font-size:.92rem;color:#bcb29e;line-height:1.65;}\n  .ovia-pd .opd-coll__rule{position:relative;z-index:1;width:56px;height:1px;margin:20px auto 0;\n    background:linear-gradient(90deg,transparent,var(--ac),transparent);}\n\n  \/* ============ FEATURE 3: SCROLL-REVEAL (CSS scroll-driven, JS-free) ============ *\/\n  @keyframes opdReveal{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}\n  @keyframes opdDrawLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}\n  @supports (animation-timeline: view()){\n    .ovia-pd .reveal{animation:opdReveal both linear;animation-timeline:view();animation-range:entry 2% entry 46%;}\n    .ovia-pd .opd-h::after{animation:opdDrawLine both linear;animation-timeline:view();animation-range:entry 0% entry 40%;}\n  }\n\n  \/* ============ keyframes ============ *\/\n  @keyframes opdRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n  @keyframes opdBloom{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}\n  @keyframes opdFloatIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}\n  @keyframes opdGlint{0%{background-position:160% 0;}26%{background-position:-60% 0;}100%{background-position:-60% 0;}}\n  @keyframes opdSpin{to{transform:rotate(360deg);}}\n\n  @media (prefers-reduced-motion:reduce){.ovia-pd *{animation:none !important;}}\n\n  \/* ============ responsive ============ *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-banner{flex-direction:column;text-align:center;padding:26px 22px 0;min-height:0;}\n    .ovia-pd .opd-bL{max-width:100%;flex-basis:auto;align-items:center;}\n    .ovia-pd .opd-bR{position:relative;flex:0 0 auto;width:100%;height:230px;}\n    \/* MUST stay a containing block on mobile — if this goes position:static the\n       absolutely-positioned render escapes to .opd-banner (auto height), its\n       height:100% collapses and the render vanishes while the inset-pinned glint\n       still shows. Keep position:relative so height:100% resolves to the 230px slot. *\/\n    .ovia-pd .opd-figure{position:absolute;inset:0;width:100%;height:100%;}\n    \/* match the render to the glint mask exactly (left bottom \/ 170% width) so the\n       physical product sits under its own shine — don't size by height (overblows). *\/\n    .ovia-pd .opd-prod{width:170%;height:auto;left:0;bottom:0;transform:none;}\n    .ovia-pd .opd-manifesto{border-top:none;padding-top:6px;}\n    \/* 5 specs on a 6-col grid: top row 3 cells span 2 each, bottom row 2 cells\n       span 3 each — both rows fill the full width, no trailing empty gap. *\/\n    .ovia-pd .opd-specs{grid-template-columns:repeat(6,1fr);}\n    .ovia-pd .opd-spec:nth-child(-n+3){grid-column:span 2;}\n    .ovia-pd .opd-spec:nth-child(n+4){grid-column:span 3;}\n    .ovia-pd .opd-craft{grid-template-columns:1fr;gap:20px;}\n    \/* 3 scene shots: 2 per row, the lone last one centres (not left-anchored)\n       and sits a touch wider so the row isn't cramped. Flex-wrap + justify-center;\n       :last-child:nth-child(odd) only fires when an item is genuinely orphaned. *\/\n    .ovia-pd .opd-macro{display:flex;flex-wrap:wrap;justify-content:center;}\n    .ovia-pd .opd-macro figure{flex:0 1 calc(50% - 7px);}\n    .ovia-pd .opd-macro figure:last-child:nth-child(odd){flex-basis:62%;}\n    .ovia-pd .opd-warranty{flex-direction:column;text-align:center;}\n    \/* stack the dimensions block on mobile — the fixed 248px table otherwise\n       eats ~70% of the row and squeezes the render\/grid to a sliver. Drawing on\n       top at full width with a real height, spec table full-width beneath it. *\/\n    .ovia-pd .opd-dims{flex-direction:column;}\n    .ovia-pd .opd-dims__draw{flex:none;width:100%;min-height:280px;}\n    .ovia-pd .opd-dims__table{flex:none;width:100%;border-left:none;border-top:1px solid var(--line-2);}\n  }\n\n  \/* ============ MATTE BLACK modifier (gated to the mb description only) ============ *\/\n  .ovia-pd.opd--matte .opd-banner{background:radial-gradient(120% 140% at 80% 30%, #1a1918 0%, #0b0a0a 52%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-banner::before{background:radial-gradient(56% 78% at 80% 44%, rgba(150,147,142,.16) 0%, transparent 60%);}\n  .ovia-pd.opd--matte .opd-coll{background:radial-gradient(120% 130% at 50% 0%, #1a1918 0%, #0b0a0a 50%, #030303 100%);}\n  .ovia-pd.opd--matte .opd-warranty .badge{background:linear-gradient(160deg,#1d1c1b,#070706);}\n  .ovia-pd.opd--matte .opd-glint{display:none;}\n  .ovia-pd.opd--matte .opd-name{color:#eeedeb;}\n  .ovia-pd.opd--matte .opd-finish{color:#9c9a96;}\n  .ovia-pd.opd--matte .opd-manifesto{color:#d6d4d0;}\n\n  \/* ====================================================================== *\/\n  \/* ============  PREMIUM ADDITIONS (creative pass)  ====================== *\/\n  \/* ====================================================================== *\/\n\n  \/* --- BENEATH THE SURFACE: finished-surface feature (visual beside the text) --- *\/\n  .ovia-pd .opd-bond{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:center;\n    border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:26px 28px;}\n  .ovia-pd .opd-eng__s{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac-deep);font-weight:600;margin-bottom:7px;}\n  .ovia-pd .opd-bond__t{font-size:1.2rem;font-weight:500;color:#2a2722;margin:0 0 11px;letter-spacing:-.01em;}\n  .ovia-pd .opd-bond p{font-size:.9rem;color:var(--body);line-height:1.6;margin:0;}\n\n  \/* finish swatch — believable brushed metal, themed by --ac (fully repeatable) *\/\n  .ovia-pd .opd-swatch{display:block;position:relative;height:172px;border-radius:9px;overflow:hidden;isolation:isolate;\n    box-shadow:0 6px 16px rgba(70,48,12,.28),inset 0 0 0 1px rgba(255,255,255,.12);\n    background:linear-gradient(90deg,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 0%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 16%,\n      var(--ac) 32%,\n      color-mix(in srgb,var(--ac) 52%,#fff) 50%,\n      var(--ac) 68%,\n      color-mix(in srgb,var(--ac) 62%,var(--shadow,#241803)) 84%,\n      color-mix(in srgb,var(--ac) 38%,var(--shadow,#241803)) 100%);}\n  .ovia-pd .opd-swatch::before{content:\"\";position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;opacity:.9;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='280' height='280'\u003e\u003cfilter id='b'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.82 0.012' numOctaves='3' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='280' height='280' filter='url(%23b)'\/\u003e\u003c\/svg\u003e\") 0 0\/280px 280px;}\n  .ovia-pd .opd-swatch::after{content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.42;\n    background:url(\"data:image\/svg+xml,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='360' height='360'\u003e\u003cfilter id='p'\u003e\u003cfeTurbulence type='fractalNoise' baseFrequency='0.13 0.012' numOctaves='2' stitchTiles='stitch'\/\u003e\u003cfeColorMatrix type='saturate' values='0'\/\u003e\u003c\/filter\u003e\u003crect width='360' height='360' filter='url(%23p)'\/\u003e\u003c\/svg\u003e\") 0 0\/360px 360px;}\n  \/* POLISHED (chrome) — mirror reflection, no brush grain *\/\n  .ovia-pd .opd-swatch.is-polished{background:linear-gradient(90deg,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 0%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 20%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 41%,\n    #fbfdff 50%,\n    color-mix(in srgb,var(--ac) 88%,#fff) 59%,\n    color-mix(in srgb,var(--ac) 64%,#0b0f13) 80%,\n    color-mix(in srgb,var(--ac) 34%,#0b0f13) 100%);}\n  .ovia-pd .opd-swatch.is-polished::before{display:none;}\n  .ovia-pd .opd-swatch.is-polished::after{opacity:.1;}\n  \/* MATTE (matte black) — flat, soft diffuse shading, no grain, no specular *\/\n  .ovia-pd .opd-swatch.is-matte{background:radial-gradient(135% 115% at 50% 24%,\n    color-mix(in srgb,var(--ac) 78%,#fff) 0%,\n    var(--ac) 44%,\n    color-mix(in srgb,var(--ac) 72%,#000) 100%);}\n  .ovia-pd .opd-swatch.is-matte::before{display:none;}\n  .ovia-pd .opd-swatch.is-matte::after{opacity:.14;}\n  .ovia-pd .opd-macroshot__cap{font-size:.68rem;letter-spacing:.04em;color:var(--label);margin-top:11px;}\n  .ovia-pd .opd-macroshot__cap b{color:#2a2722;font-weight:600;}\n\n  \/* --- COMPLIANCE marks + care --- *\/\n  .ovia-pd .opd-cert{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:34px 0 0;padding:20px 0;\n    border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n  .ovia-pd .opd-cert__i{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--body);letter-spacing:.01em;}\n  .ovia-pd .opd-cert__i b{color:#2a2722;font-weight:600;}\n  .ovia-pd .opd-cert__i i{flex:0 0 auto;width:22px;height:22px;position:relative;}\n  .ovia-pd .opd-cert__i .ic-wm{border:1.5px solid var(--ac-deep);border-radius:6px;}\n  .ovia-pd .opd-cert__i .ic-wm::after{content:\"\";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid var(--ac-deep);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}\n  .ovia-pd .opd-cert__i .ic-wels::after{content:\"★\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ac-deep);}\n  .ovia-pd .opd-cert__i .ic-as{border:1.5px solid var(--ac-deep);border-radius:4px;}\n  .ovia-pd .opd-cert__i .ic-as::after{content:\"\";position:absolute;left:5px;right:5px;top:6px;height:1.5px;background:var(--ac-deep);box-shadow:0 4px 0 var(--ac-deep),0 8px 0 var(--ac-deep);}\n  \/* --- CARE card --- *\/\n  .ovia-pd .opd-care2{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px 26px;}\n  .ovia-pd .opd-care2__icon{flex:0 0 46px;height:46px;border-radius:50%;position:relative;\n    background:color-mix(in srgb,var(--ac) 16%,#fff);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));}\n  .ovia-pd .opd-care2__icon::before{content:\"\\2726\";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\n    font-size:19px;color:var(--ac-deep);line-height:1;}\n  .ovia-pd .opd-care2__lead{font-size:.98rem;font-weight:500;color:#2a2722;margin:0 0 11px;}\n  .ovia-pd .opd-care2__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;}\n  .ovia-pd .opd-care2__list li{position:relative;padding-left:23px;font-size:.86rem;color:var(--body);line-height:1.4;}\n  .ovia-pd .opd-care2__list li::before{position:absolute;left:0;top:0;font-weight:700;font-size:.84rem;}\n  .ovia-pd .opd-care2__list .ok::before{content:\"\\2713\";color:var(--ac-deep);}\n  .ovia-pd .opd-care2__list .no::before{content:\"\\2715\";color:#c4b9a3;}\n\n  \/* responsive — premium additions *\/\n  @media (max-width:680px){\n    .ovia-pd .opd-bond{grid-template-columns:1fr;}\n    .ovia-pd .opd-cert{gap:12px 20px;}\n  }\n\u003c\/style\u003e\n\n\u003c!-- 1. BANNER --\u003e\n\u003cdiv class=\"opd-banner\"\u003e\n  \u003cdiv class=\"opd-bL\"\u003e\n    \u003cspan class=\"opd-logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n    \u003cdiv class=\"opd-kicker\"\u003eMilan Collection\u003c\/div\u003e\n    \u003ch2 class=\"opd-name\"\u003e600 Double Towel Rail\u003c\/h2\u003e\n    \u003cdiv class=\"opd-finish\"\u003e\n\u003cspan class=\"opd-finish__nm\"\u003e\u003c\/span\u003e · \u003cspan class=\"opd-finish__pr\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-manifesto\"\u003e“The \u003cem\u003elast\u003c\/em\u003e towel rail you’ll buy.”\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bR\"\u003e\n    \u003cdiv class=\"opd-figure\"\u003e\n      \u003cimg class=\"opd-prod ph--bg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892\" alt=\"Ovia Milan 600 Double Towel Rail in Champagne\"\u003e\n      \u003cimg class=\"opd-prod ph--bn\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--cr\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_Hero_A.png?v=1779883947\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--gm\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_Hero_A.png?v=1779883966\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cimg class=\"opd-prod ph--mb\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_Hero_A.png?v=1779883986\" alt=\"\" aria-hidden=\"true\"\u003e\n      \u003cspan class=\"opd-glint\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. OPENING --\u003e\n\u003cp class=\"opd-lead reveal\"\u003eA towel rail is the most-handled fitting in the bathroom — wet towels, steam and a daily tug — so it has to be built for it. The \u003cspan class=\"drop\"\u003eMilan\u003c\/span\u003e rail is machined from DZR brass and finished in champagne sealed to hold its colour for the life of the room, fixed dead-level on concealed mounts. The detail that pulls the room together — and the last one you’ll ever fit.\u003c\/p\u003e\n\n\u003c!-- 3. SPEC STRIP --\u003e\n\u003cdiv class=\"opd-specs reveal\"\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eDZR Brass\u003csmall\u003edezinc-resistant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eFinish\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eChampagne\u003csmall\u003ePVD\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eLength\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e607 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eProjection\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e131 mm\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-spec\"\u003e\n\u003cdiv class=\"l\"\u003eWarranty\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eLifetime\u003csmall\u003efinish incl.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 4. CRAFT --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eWhy it lasts\u003c\/div\u003e\n\u003cdiv class=\"opd-craft reveal\"\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eDZR brass, made to resist\u003c\/div\u003e\n\u003cp\u003eMachined from DZR (dezincification-resistant) brass — it won’t corrode, pit or weep at the wall the way ordinary rail metal does in a wet, steamy bathroom.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eA finish guaranteed for life\u003c\/div\u003e\n\u003cp\u003eBonded to the brass by physical vapour deposition, the champagne resists tarnish, scratching and fade — and it’s backed, in full, by a lifetime finish warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"opd-c\"\u003e\n\u003cdiv class=\"n\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"t\"\u003eFixed firm to the wall\u003c\/div\u003e\n\u003cp\u003eMounted on concealed fixings that take the weight of wet towels without working loose — solid, dead-level and quiet against the wall for years.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: BENEATH THE SURFACE — the finish (two variants; rollout keeps the one matching the finish's process) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eBeneath the surface\u003c\/div\u003e\n\n\u003cdiv class=\"opd-bond reveal\"\u003e\n  \u003cdiv class=\"opd-bond__vis\"\u003e\n    \u003cdiv class=\"opd-swatch\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"opd-macroshot__cap\"\u003e\n\u003cb\u003eChampagne PVD\u003c\/b\u003e · molecularly bonded to solid brass\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-bond__txt\"\u003e\n    \u003cdiv class=\"opd-eng__s\"\u003eThe finish\u003c\/div\u003e\n    \u003ch4 class=\"opd-bond__t\"\u003ePart of the metal\u003c\/h4\u003e\n    \u003cp\u003eThe champagne is fused to the brass by Physical Vapour Deposition — a molecular bond, not a coating laid on top. It won’t flake, peel or tarnish at the edges the way ordinary plated finishes eventually do. The colour you see is, quite literally, part of the metal — and it’s covered for a full 15 years.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- NEW: STYLED CONTEXT STRIP (FEATURE 2 — repurposed: gallery renders are styled scenes) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eIn the setting\u003c\/div\u003e\n\u003cdiv class=\"opd-macro reveal\"\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_A_4a6ddc31-b723-4a6d-97e3-76d7900d242a.png?v=1779892485\" alt=\"Milan towel rail in DZR brass\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eWet-room ready\u003c\/b\u003eDZR brass that won’t weep at the wall.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_B_a69f2c67-fa15-454c-8a47-03d33d19c4e5.png?v=1779892485\" alt=\"Milan towel rail mounting\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eFixed firm\u003c\/b\u003eConcealed mounts, dead level.\u003c\/figcaption\u003e\u003c\/figure\u003e\n  \u003cfigure\u003e\u003cspan class=\"frame\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_C_ce3fdb98-a278-4933-9d3e-e4bfeac4932f.png?v=1779892485\" alt=\"Milan towel rail champagne\"\u003e\u003c\/span\u003e\u003cfigcaption\u003e\u003cb\u003eIn the setting\u003c\/b\u003eChampagne lends a soft, warm blush.\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\n\u003c!-- 5. FINISH FAMILY — interactive (FEATURE 1) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eOne silhouette, six finishes \u003cspan class=\"opd-hint\"\u003e\u003cspan class=\"hint-hover\"\u003ehover to preview\u003c\/span\u003e\u003cspan class=\"hint-hold\"\u003ehold to preview\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"opd-finishes\"\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bg\" style=\"--c:#C5A253;--ac:#C5A253\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_A_dcff9cc9-f207-4f46-adc2-4b49bc5211cb.png?v=1779892484\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedGold_Hero_A.png?v=1779883892\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Gold\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--bn\" style=\"--c:#CFC4B0;--ac:#CFC4B0\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_A_9150e774-09aa-452e-94db-a2b2461447e7.png?v=1779892485\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_BrushedNickelWarm_Hero_A.png?v=1779883911\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eBrushed Nickel\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cm is-current\" style=\"--c:#DDB3AE;--ac:#DDB3AE\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_A_4a6ddc31-b723-4a6d-97e3-76d7900d242a.png?v=1779892485\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChampagne\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_A.png?v=1779883929\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChampagne\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--cr\" style=\"--c:#C8D2DA;--ac:#C8D2DA\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_A_edfedbab-6ecd-47e2-9d6d-e9c597b53e30.png?v=1779892486\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eChrome\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Chrome_Hero_A.png?v=1779883947\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eChrome\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--gm\" style=\"--c:#9C958C;--ac:#9C958C\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_A_2caf5f2c-e1c3-474d-8a2d-a838b8c67918.png?v=1779892487\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eGun Metal\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_GunMetal_Hero_A.png?v=1779883966\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eGun Metal\u003c\/span\u003e\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"opd-fin opd-fin--mb\" style=\"--c:#1a1a1a;--ac:#1a1a1a\"\u003e\u003cspan class=\"opv\" aria-hidden=\"true\"\u003e\u003cspan class=\"opv__frame\"\u003e\u003cspan class=\"opv__inner\"\u003e\u003cimg class=\"opv__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_A_e502aaff-47b0-4b84-84fc-3d07b5d68053.png?v=1779892488\u0026amp;width=800\" alt=\"\"\u003e\u003cspan class=\"opv__cap\"\u003e\u003cspan class=\"opv__dot\"\u003e\u003c\/span\u003e\u003cspan class=\"opv__nm\"\u003eMatte Black\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opv__tip\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_MatteBlack_Hero_A.png?v=1779883986\u0026amp;width=600\" alt=\"\"\u003e\u003c\/span\u003e\u003cspan class=\"opd-fin__name\"\u003eMatte Black\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- NEW: DIMENSIONS — render + spec table (FEATURE 5) --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eDimensions \u0026amp; specification\u003c\/div\u003e\n\u003cdiv class=\"opd-dims reveal\"\u003e\n  \u003cdiv class=\"opd-dims__draw\"\u003e\n    \u003cimg class=\"opd-dims__img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_Hero_B.png?v=1779883935\u0026amp;width=1400\" alt=\"\" aria-hidden=\"true\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"opd-dims__table\"\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eLength\u003c\/span\u003e\u003cspan class=\"v\"\u003e607 mm\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"opd-dims__row\"\u003e\n\u003cspan class=\"k\"\u003eProjection\u003c\/span\u003e\u003cspan class=\"v\"\u003e131 mm\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 6. ASSURANCE — original lifetime-warranty badge --\u003e\n\u003cdiv class=\"opd-warranty reveal\"\u003e\n  \u003cdiv class=\"badge\"\u003e\n\u003cspan class=\"big\"\u003e∞\u003c\/span\u003e\u003cspan class=\"sm\"\u003eLifetime\u003cbr\u003eWarranty\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cdiv class=\"body\"\u003e\n\u003cb\u003eBuilt to be the last one you buy.\u003c\/b\u003e Every Milan rail carries a 1-year parts \u0026amp; labour warranty, backed by a \u003cb\u003elifetime replacement warranty that includes the finish itself\u003c\/b\u003e — the champagne is guaranteed not to wear away.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARE — sits directly under the warranty --\u003e\n\u003cdiv class=\"opd-h reveal\"\u003eCaring for it\u003c\/div\u003e\n\u003cdiv class=\"opd-care2 reveal\"\u003e\n  \u003cspan class=\"opd-care2__icon\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"opd-care2__body\"\u003e\n    \u003cp class=\"opd-care2__lead\"\u003eBuilt to last, it asks almost nothing of you.\u003c\/p\u003e\n    \u003cul class=\"opd-care2__list\"\u003e\n      \u003cli class=\"ok\"\u003eA soft, damp cloth is all it needs\u003c\/li\u003e\n      \u003cli class=\"no\"\u003eNo abrasive pads, acidic or solvent cleaners\u003c\/li\u003e\n      \u003cli class=\"ok\"\u003eNo polishes or coatings — the finish does the work\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"opd-reg reveal\"\u003eDZR brass · lifetime finish warranty  |  SKU MIL2160CG\u003c\/div\u003e\n\n\u003c!-- 7. COLLECTION — dark bookend --\u003e\n\u003cdiv class=\"opd-coll reveal\"\u003e\n  \u003cspan class=\"opd-coll__logo\" role=\"img\" aria-label=\"Ovia\"\u003e\u003c\/span\u003e\n  \u003cdiv class=\"t\"\u003ePart of the \u003cb\u003eMilan\u003c\/b\u003e collection\u003c\/div\u003e\n  \u003cp\u003eThe Milan range runs the full bathroom — basin and wall mixers, a 2-in-1 shower, kitchen mixers, towel rails and accessories — every piece in the same champagne finish, so nothing in the room is left to chance.\u003c\/p\u003e\n  \u003cdiv class=\"opd-coll__rule\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n","brand":"Ovia","offers":[{"title":"Default Title","offer_id":47338118480021,"sku":"MIL2160CG","price":229.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0701\/6261\/2373\/files\/Ovia_DoubleTowelRail600_Champagne_A_4a6ddc31-b723-4a6d-97e3-76d7900d242a.png?v=1779892485"}],"url":"https:\/\/www.bathroomsalesdirect.com.au\/collections\/ovia-range.oembed?page=8","provider":"Bathroom Sales Direct","version":"1.0","type":"link"}