body.ml-ovipro-demo .ml-ovipro-detail{width:100%;min-width:0}body.ml-ovipro-demo.post-type-archive-kohteet .bodybackground{display:none}body.ml-ovipro-demo .ml-demo-label{font-size:13px;opacity:.75}body.ml-ovipro-demo .big-img-holder img{display:block;width:100%;height:auto}body.ml-ovipro-demo .ml-ovipro-detail table{width:100%;table-layout:fixed}body.ml-ovipro-demo .ml-ovipro-detail td{overflow-wrap:anywhere;vertical-align:top}body.ml-ovipro-demo .ml-ovipro-detail td:first-child:not([colspan]){width:32%}body.ml-ovipro-demo .ml-ovipro-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}body.ml-ovipro-demo .ml-ovipro-gallery figure{margin:0}body.ml-ovipro-demo .ml-ovipro-gallery img{width:100%;height:auto}body.ml-ovipro-demo .ml-ovipro-contact{margin-top:32px}body.ml-ovipro-demo .ml-ovipro-contact img{max-width:180px;height:auto}body.ml-ovipro-demo .property-image{min-height:260px;background-size:cover;background-position:center}@media(max-width:640px){body.ml-ovipro-demo .ml-ovipro-gallery{grid-template-columns:1fr}body.ml-ovipro-demo .ml-ovipro-detail td:first-child:not([colspan]){width:40%}}

/* Single: property information left, gallery right. Scoped to demo routes. */
body.ml-ovipro-demo .ml-ovipro-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:32px;align-items:start}
body.ml-ovipro-demo .ml-ovipro-columns>.ml-ovipro-detail{float:none;width:auto;max-width:none;margin:0;min-width:0}
body.ml-ovipro-demo .ml-ovipro-photos{min-width:0}
body.ml-ovipro-demo .ml-ovipro-photos>h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
body.ml-ovipro-demo .ml-ovipro-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
body.ml-ovipro-demo .ml-ovipro-gallery figure{padding:8px;background:#fff;min-width:0}
body.ml-ovipro-demo .ml-ovipro-gallery img{display:block}
body.ml-ovipro-demo .ml-ovipro-gallery figcaption{font-size:12px;line-height:1.4;padding-top:6px;color:#444}
body.ml-ovipro-demo .ml-ovipro-detail .big-img-holder{float:none;width:100%;max-width:none;box-sizing:border-box;padding:16px;background:#fff;margin:0 0 28px}
body.ml-ovipro-demo .ml-ovipro-contact img{border-radius:50%;float:right;margin:0 0 16px 16px;width:40%;max-width:180px}
body.ml-ovipro-demo .ml-ovipro-contact:after{content:"";display:block;clear:both}
@media(max-width:1023px){body.ml-ovipro-demo .ml-ovipro-columns{grid-template-columns:minmax(0,1fr)}body.ml-ovipro-demo .ml-ovipro-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body.ml-ovipro-demo .ml-ovipro-gallery{grid-template-columns:minmax(0,1fr)}}
/* 1.0.2: consistent gallery rows and readable information labels. */
body.ml-ovipro-demo .ml-ovipro-detail .big-img-holder{padding:8px}
body.ml-ovipro-demo .ml-ovipro-detail .big-img-holder img{margin:0;padding:0;border:0;box-sizing:border-box}
body.ml-ovipro-demo .ml-ovipro-gallery{align-items:stretch}
body.ml-ovipro-demo .ml-ovipro-gallery figure{display:flex;flex-direction:column}
body.ml-ovipro-demo .ml-ovipro-gallery figure>a{display:flex;align-items:center;justify-content:center;height:190px;flex:none}
body.ml-ovipro-demo .ml-ovipro-gallery figure>a>img{width:100%;height:100%;max-height:100%;object-fit:contain;margin:0;padding:0;border:0}
body.ml-ovipro-demo .ml-ovipro-detail table{table-layout:auto}
body.ml-ovipro-demo .ml-ovipro-detail td:first-child:not([colspan]){width:48%;overflow-wrap:normal;word-break:normal;hyphens:none}
body.ml-ovipro-demo .ml-ovipro-detail td:first-child strong{overflow-wrap:normal;word-break:normal;hyphens:none}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-long-row{display:block;margin-bottom:16px}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-long-row>td{display:block;width:100%;padding-left:0;padding-right:0;box-sizing:border-box}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-long-row>td:first-child:not([colspan]){width:100%}
@media(max-width:480px){body.ml-ovipro-demo .ml-ovipro-gallery figure>a{height:240px}body.ml-ovipro-demo .ml-ovipro-detail td:first-child:not([colspan]){width:48%}}

/* 1.0.3: one accessible link per property card, preserving typography. */
body.ml-ovipro-demo a.ml-ovipro-card-link,body.ml-ovipro-demo a.ml-ovipro-card-link:visited,body.ml-ovipro-demo a.ml-ovipro-card-link:hover,body.ml-ovipro-demo a.ml-ovipro-card-link:active{display:block;color:inherit;text-decoration:none;font:inherit;letter-spacing:inherit;text-transform:inherit}
body.ml-ovipro-demo a.ml-ovipro-card-link:focus-visible{outline:2px solid currentColor;outline-offset:4px}
/* 1.0.4: proportional rows and image lightbox. */
body.ml-ovipro-demo .ml-ovipro-gallery{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
body.ml-ovipro-demo .ml-ovipro-gallery figure{position:relative;box-sizing:border-box;padding:8px;margin:0;max-width:100%;flex:none}
body.ml-ovipro-demo .ml-ovipro-gallery figure>a{display:block;height:190px}
body.ml-ovipro-demo .ml-ovipro-gallery figure>a>img{width:100%;height:100%;object-fit:contain}
body.ml-ovipro-demo .ml-ovipro-gallery figcaption{position:absolute;bottom:8px;left:8px;right:8px;padding:8px;background:rgba(0,0,0,.7);color:#fff;opacity:0;pointer-events:none;transition:opacity .15s}
body.ml-ovipro-demo .ml-ovipro-gallery figure:hover figcaption,body.ml-ovipro-demo .ml-ovipro-gallery figure:focus-within figcaption{opacity:1}
body.ml-ovipro-demo dialog.ml-lightbox{position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;box-sizing:border-box;margin:0;padding:48px 24px 16px;border:0;background:rgba(0,0,0,.3);color:white;overflow:hidden}
body.ml-ovipro-demo dialog.ml-lightbox[open]{display:flex;flex-direction:column;gap:12px}
body.ml-ovipro-demo dialog.ml-lightbox::backdrop{background:rgba(0,0,0,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.ml-ovipro-demo .ml-lightbox-stage{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;gap:12px}
body.ml-ovipro-demo .ml-lightbox-image{height:100%;max-height:100%;width:calc(100% - 120px);object-fit:contain;margin:0;border:0;padding:0}
body.ml-ovipro-demo .ml-lightbox button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);color:white;cursor:pointer;box-shadow:none;text-shadow:none;padding:4px 12px;font:inherit}
body.ml-ovipro-demo .ml-lightbox button:focus-visible{outline:3px solid white;outline-offset:2px}
body.ml-ovipro-demo .ml-lightbox .ml-lightbox-close{position:absolute;right:16px;top:8px;font-size:32px;line-height:1}
body.ml-ovipro-demo .ml-lightbox .ml-lightbox-prev,body.ml-ovipro-demo .ml-lightbox .ml-lightbox-next{font-size:36px;flex:none}
body.ml-ovipro-demo .ml-lightbox-caption{text-align:center;flex:none;margin:0;font-size:15px;color:white;max-height:60px;overflow:auto}
body.ml-ovipro-demo .ml-lightbox-thumbs{display:flex;gap:8px;overflow-x:auto;flex:none;padding:4px;height:86px;box-sizing:border-box}
body.ml-ovipro-demo .ml-lightbox-thumbs button{flex:none;width:90px;height:70px;padding:3px;opacity:.55}
body.ml-ovipro-demo .ml-lightbox-thumbs button[aria-pressed="true"]{opacity:1;border:2px solid white}
body.ml-ovipro-demo .ml-lightbox-thumbs img{width:100%;height:100%;object-fit:contain;margin:0;padding:0;border:0}
@media(max-width:640px){body.ml-ovipro-demo dialog.ml-lightbox{padding:48px 8px 8px}body.ml-ovipro-demo .ml-lightbox-stage{gap:4px}body.ml-ovipro-demo .ml-lightbox-image{width:calc(100% - 80px)}body.ml-ovipro-demo .ml-lightbox .ml-lightbox-prev,body.ml-ovipro-demo .ml-lightbox .ml-lightbox-next{padding:4px 8px}}
/* 1.0.5: isolate the enlarged image from theme image sizing and flex rules. */
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-stage{position:relative;display:block;width:100%;flex:1 1 0;min-width:0;min-height:0;overflow:hidden}
body.ml-ovipro-demo dialog.ml-lightbox img.ml-lightbox-image{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain;box-sizing:border-box;padding:0 60px;margin:0;border:0;float:none;opacity:1;visibility:visible}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-prev,body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;margin:0}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-prev{left:0}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-next{right:0}
@media(max-width:640px){body.ml-ovipro-demo dialog.ml-lightbox img.ml-lightbox-image{padding:0 40px}}

/* 1.0.6: centered hover captions. */
body.ml-ovipro-demo .ml-ovipro-gallery figcaption{text-align:center}

/* 1.0.7: explicit viewport stage, independent of image element/theme sizing. */
body.ml-ovipro-demo dialog.ml-lightbox[open]{display:block;overflow:hidden;height:100vh;height:100dvh;width:100%;max-width:none;padding:0}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-stage{position:absolute;inset:52px 16px 150px;width:auto;height:auto;display:block;overflow:hidden}
body.ml-ovipro-demo dialog.ml-lightbox div.ml-lightbox-image{position:absolute;inset:0 60px;display:block;width:auto;height:auto;margin:0;padding:0;background-position:center;background-size:contain;background-repeat:no-repeat;visibility:visible;opacity:1}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-caption{position:absolute;left:16px;right:16px;bottom:106px;margin:0;max-height:40px}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-thumbs{position:absolute;bottom:12px;left:16px;right:16px;height:86px}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-prev,body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-next{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;box-sizing:border-box;line-height:1}
body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-stage button svg{display:block;flex:none;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}
@media(max-width:640px){body.ml-ovipro-demo dialog.ml-lightbox .ml-lightbox-stage{left:8px;right:8px}body.ml-ovipro-demo dialog.ml-lightbox div.ml-lightbox-image{left:48px;right:48px}}

/* 1.0.8: retain consistent value columns for location and recurring costs. */
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-standard-row{display:table-row}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-standard-row>td{display:table-cell;vertical-align:top}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-standard-row>td:first-child{width:48%}

/* 1.0.9: all detail values share the same column. */
body.ml-ovipro-demo .ml-ovipro-detail table{display:table;width:100%;table-layout:fixed}
body.ml-ovipro-demo .ml-ovipro-detail tbody{display:table-row-group}
body.ml-ovipro-demo .ml-ovipro-detail tr{display:table-row}
body.ml-ovipro-demo .ml-ovipro-detail tr>td{display:table-cell;float:none;box-sizing:border-box}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-standard-row>td:first-child{width:48%}
body.ml-ovipro-demo .ml-ovipro-detail tr.ml-ovipro-standard-row>td:last-child{width:52%;overflow-wrap:break-word;word-break:normal}

/* 1.0.10: use the full detail column on wider screens. */
@media only screen and (min-width:40.0625em){body.ml-ovipro-demo.single-kohteet .detail.ml-ovipro-detail{padding-right:0}}

/* 1.0.11: readable yearly renovation list and a separate price line. */
body.ml-ovipro-demo .ml-ovipro-renovations{margin:0 0 1.25rem;padding-left:1.25rem;list-style:disc}
body.ml-ovipro-demo .ml-ovipro-renovations li{margin:0 0 .85rem;padding-left:.15rem}
body.ml-ovipro-demo .ml-ovipro-heading-price{white-space:nowrap}
