:root { --oge-cream:#fffaf2; --oge-cocoa:#34251f; --oge-berry:#a8434e; --oge-sage:#7e8769; --oge-gold:#d8ad67; }
.oge-shell { width:min(100% - 40px, 1280px); margin-inline:auto; position:relative; z-index:2; }
.oge-section { position:relative; padding:clamp(90px,10vw,150px) 0; color:var(--oge-cocoa); background:var(--oge-section-bg,var(--oge-cream)); overflow:clip; }
.oge-section-head { max-width:850px; margin-bottom:clamp(42px,6vw,72px); }
.oge-section-head-split { max-width:none; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(220px,.55fr); gap:50px; align-items:end; }
.oge-section-head h2, .oge-story h2, .oge-video-cta h2, .oge-contact h2 { font-family:Fraunces,Georgia,serif; font-weight:600; font-size:clamp(2.25rem,5.7vw,5.6rem); line-height:.98; letter-spacing:-.045em; margin:.2em 0 .35em; text-wrap:balance; }
.oge-kicker { display:inline-flex; align-items:center; gap:.7em; text-transform:uppercase; letter-spacing:.16em; font-size:clamp(.72rem,1vw,.86rem); font-weight:850; }
.oge-kicker::before { content:""; width:34px; height:2px; background:currentColor; }
.oge-kicker p { margin:0; }
.oge-lead { font-size:clamp(1.05rem,1.7vw,1.3rem); max-width:700px; }
.oge-lead p, .oge-richtext p { margin:0 0 1em; }
.oge-buttons { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.oge-button { display:inline-flex; min-height:52px; padding:.85rem 1.4rem; border-radius:999px; align-items:center; justify-content:center; color:#fff; background:var(--oge-berry); border:1px solid transparent; font-weight:850; text-decoration:none; transition:transform .25s ease,box-shadow .25s ease,background .25s ease; }
.oge-button:hover { transform:translateY(-3px); box-shadow:0 14px 35px rgba(0,0,0,.2); }
.oge-button-secondary { color:#fff; background:transparent; border-color:rgba(255,255,255,.7); }
.oge-wave { position:absolute; z-index:3; left:0; width:100%; height:clamp(50px,8vw,120px); pointer-events:none; color:var(--oge-wave-color,#f2dfc7); }
.oge-wave svg { display:block; width:100%; height:100%; fill:currentColor; }
.oge-wave-bottom { bottom:-1px; }
.oge-wave-top { top:-1px; transform:rotate(180deg); }
.oge-hero { position:relative; min-height:100vh; min-height:100svh; display:grid; align-items:center; color:#fff; overflow:hidden; background:#593846; }
.oge-hero-media,.oge-hero-overlay { position:absolute; inset:0; }
.oge-hero-media-video { background-color:#593846; background-image:var(--oge-poster); background-size:cover; background-position:center; }
.oge-hero-media video,.oge-hero-media img { width:100%; height:100%; object-fit:cover; }
.oge-background-video { display:block; pointer-events:none; transform:translateZ(0); backface-visibility:hidden; }
.oge-background-video::-webkit-media-controls,
.oge-background-video::-webkit-media-controls-start-playback-button { display:none!important; -webkit-appearance:none; }
.oge-hero-media-gradient { background:radial-gradient(circle at 72% 30%,rgba(246,196,185,.8),transparent 22%),radial-gradient(circle at 20% 75%,rgba(168,173,132,.75),transparent 26%),linear-gradient(135deg,#39241f,#8c4453 48%,#d9ad67); }
.oge-hero-media-gradient::after { content:""; position:absolute; inset:0; background-image:radial-gradient(circle at 50% 50%,rgba(255,255,255,.18) 0 2px,transparent 3px); background-size:28px 28px; opacity:.25; }
.oge-hero-overlay { background:var(--oge-overlay,#2b1d18); opacity:var(--oge-overlay-opacity,.42); }
.oge-hero-content { padding-top:calc(var(--og-header-height,82px) + 4vh); padding-bottom:7vh; display:flex; flex-direction:column; align-items:var(--oge-align-desktop,start); text-align:var(--oge-align-desktop,start); }
.oge-hero h1, .oge-hero-title { font-family:Fraunces,Georgia,serif; font-size:clamp(3.4rem,10.8vw,10.5rem); line-height:.82; font-weight:600; letter-spacing:-.065em; margin:.18em 0 .23em; text-wrap:balance; }
.oge-hero h1 p, .oge-hero-title p { margin:0; }
.oge-hero-title { width:100%; }
.oge-hero .oge-lead { width:100%; max-width:660px; color:rgba(255,255,255,.88); }
.oge-scroll-cue { position:absolute; z-index:4; left:50%; bottom:28px; width:32px; height:52px; border:1px solid rgba(255,255,255,.65); border-radius:99px; transform:translateX(-50%); }
.oge-scroll-cue span { position:absolute; left:50%; top:10px; width:5px; height:5px; border-radius:50%; background:#fff; transform:translateX(-50%); animation:ogeScroll 1.9s infinite; }
@keyframes ogeScroll { 0%{transform:translate(-50%,0);opacity:0} 25%{opacity:1} 75%{opacity:1} 100%{transform:translate(-50%,22px);opacity:0} }
.oge-story-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.9fr); gap:clamp(45px,8vw,110px); align-items:center; }
.oge-story.oge-image-left .oge-story-copy { order:2; }
.oge-story.oge-image-left .oge-story-visual { order:1; }
.oge-story-visual { min-height:560px; border-radius:48% 52% 46% 54% / 42% 48% 52% 58%; overflow:hidden; box-shadow:0 36px 80px rgba(52,37,31,.18); transform:rotate(2deg); }
.oge-story-visual img { width:100%; height:100%; object-fit:cover; }
.oge-demo-art { width:100%; height:100%; min-height:560px; display:grid; place-items:center; color:#fff; background:radial-gradient(circle at 50% 32%,#f4dfba 0 18%,transparent 19%),radial-gradient(circle at 42% 45%,#a8434e 0 17%,transparent 18%),radial-gradient(circle at 59% 51%,#a8ad84 0 19%,transparent 20%),linear-gradient(135deg,#754253,#d7ad68); }
.oge-demo-art span { padding:.6rem 1rem; border:1px solid rgba(255,255,255,.5); border-radius:999px; background:rgba(52,37,31,.28); backdrop-filter:blur(8px); text-transform:uppercase; letter-spacing:.16em; font-size:.75rem; }
.oge-signature { margin-top:35px; font-family:Georgia,serif; font-style:italic; color:var(--oge-berry); font-size:1.1rem; }
.oge-flavor-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.oge-flavor-card { border-radius:28px; background:rgba(255,255,255,.58); overflow:hidden; box-shadow:0 18px 55px rgba(52,37,31,.09); transition:transform .35s ease,box-shadow .35s ease; }
.oge-flavor-card:hover { transform:translateY(-8px); box-shadow:0 28px 70px rgba(52,37,31,.15); }
.oge-flavor-image { position:relative; aspect-ratio:4/4.5; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,color-mix(in srgb,var(--oge-flavor) 75%,#fff),var(--oge-flavor)); }
.oge-flavor-image img { width:100%; height:100%; object-fit:cover; }
.oge-scoop { width:66%; aspect-ratio:1; border-radius:48% 52% 50% 50%; background:radial-gradient(circle at 33% 27%,rgba(255,255,255,.65),transparent 18%),radial-gradient(circle at 67% 70%,rgba(52,37,31,.22),transparent 25%),var(--oge-flavor); box-shadow:inset -18px -20px 30px rgba(52,37,31,.14),0 35px 50px rgba(52,37,31,.22); transform:rotate(-8deg); }
.oge-tag { position:absolute; top:16px; right:16px; padding:.45rem .7rem; border-radius:999px; color:#fff; background:rgba(52,37,31,.72); font-size:.68rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; backdrop-filter:blur(8px); }
.oge-flavor-copy { padding:24px; }
.oge-flavor-copy h3 { font-family:Georgia,serif; font-size:1.35rem; margin:0 0 .5rem; }
.oge-flavor-copy p { margin:0; opacity:.78; }
.oge-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.oge-gallery.oge-cols-1 { grid-template-columns:1fr; }
.oge-gallery.oge-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.oge-gallery.oge-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.oge-gallery-item { display:block; position:relative; width:100%; min-width:0; aspect-ratio:1 / 1; overflow:hidden; border-radius:24px; background:#e8d8c2; }
.oge-gallery-item img { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center center; transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .4s ease; }
.oge-gallery-item::after { content:"+"; position:absolute; inset:auto 18px 18px auto; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; color:#fff; background:rgba(52,37,31,.65); backdrop-filter:blur(8px); font-size:1.7rem; transform:scale(.8); opacity:0; transition:.3s ease; }
.oge-gallery-item:hover img { transform:scale(1.06); filter:saturate(1.08); }
.oge-gallery-item:hover::after { opacity:1; transform:scale(1); }
.oge-lightbox { position:fixed; z-index:99999; inset:0; display:none; color:#fff; }
.oge-lightbox.is-open { display:block; }
.oge-lightbox-backdrop { position:absolute; inset:0; background:rgba(16,11,9,.94); }
.oge-lightbox-dialog { position:absolute; inset:0; display:grid; place-items:center; padding:70px 80px; }
.oge-lightbox-image { max-width:min(1500px,100%); max-height:calc(100vh - 120px); object-fit:contain; box-shadow:0 25px 100px rgba(0,0,0,.5); }
.oge-lightbox button { position:absolute; z-index:2; width:52px; height:52px; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); cursor:pointer; font-size:2.1rem; line-height:1; }
.oge-lightbox-close { top:18px; right:18px; }
.oge-lightbox-prev { left:18px; top:50%; transform:translateY(-50%); }
.oge-lightbox-next { right:18px; top:50%; transform:translateY(-50%); }
html.oge-lightbox-open { overflow:hidden; }
.oge-video-cta { min-height:620px; padding:110px 0; display:grid; align-items:center; color:#fff; background:var(--oge-section-bg,#34251f); }
.oge-video-cta-media,.oge-video-cta-overlay { position:absolute; inset:0; }
.oge-video-cta-media { background:radial-gradient(circle at 75% 40%,#d9ad67 0 11%,transparent 12%),radial-gradient(circle at 84% 57%,#a8434e 0 13%,transparent 14%),linear-gradient(135deg,#34251f,#6e3949); background-image:var(--oge-poster),radial-gradient(circle at 75% 40%,#d9ad67 0 11%,transparent 12%),linear-gradient(135deg,#34251f,#6e3949); background-size:cover; background-position:center; }
.oge-video-cta-media video { width:100%; height:100%; object-fit:cover; }
.oge-video-cta-overlay { background:linear-gradient(90deg,var(--oge-video-overlay,#4b2030) 0%,color-mix(in srgb,var(--oge-video-overlay,#4b2030) 72%,transparent) 54%,rgba(52,37,31,.35)); }
.oge-video-cta-content { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:60px; align-items:end; }
.oge-video-cta-content > div { max-width:850px; }
.oge-video-cta .oge-button { background:#fff; color:#34251f; }
.oge-testimonial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.oge-testimonial { margin:0; padding:34px; border-radius:24px; background:rgba(255,255,255,.67); box-shadow:0 18px 50px rgba(52,37,31,.08); }
.oge-testimonial p { font-family:Georgia,serif; font-size:clamp(1.2rem,2vw,1.65rem); line-height:1.42; }
.oge-testimonial footer { margin-top:24px; font-weight:800; font-size:.85rem; }
.oge-stars { color:#b77a25; letter-spacing:.12em; }
.oge-contact-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:clamp(45px,8vw,110px); align-items:center; }
.oge-contact-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:36px 0; }
.oge-contact-cards > div { padding:22px; border-radius:20px; background:#fff; box-shadow:0 16px 45px rgba(52,37,31,.08); }
.oge-contact-cards p { margin:0; }
/* 1.0.7 — the branded marker is projected from real coordinates by the
   Google Maps JavaScript API. The native iframe remains as a safe fallback. */
.oge-map-card { --oge-map-pin-size:104px; position:relative; isolation:isolate; overflow:hidden; min-height:520px; border-radius:36px; background:#d9d3c7; box-shadow:0 30px 70px rgba(52,37,31,.17); }
.oge-map-frame,
.oge-map-canvas { position:absolute; inset:-2px; width:calc(100% + 4px); height:calc(100% + 4px); border:0; filter:saturate(.82) contrast(.94); }
.oge-map-frame { z-index:0; pointer-events:none; transition:opacity .25s ease,visibility .25s ease; }
.oge-map-card--interactive .oge-map-frame { pointer-events:auto; }
.oge-map-canvas { z-index:0; opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease; }
.oge-map-card:not(.oge-map-card--interactive) .oge-map-canvas { pointer-events:none; }
.oge-map-card.is-google-ready .oge-map-canvas { opacity:1; visibility:visible; }
.oge-map-card.is-google-ready .oge-map-fallback { opacity:0; visibility:hidden; pointer-events:none; }
.oge-map-shade { position:absolute; z-index:1; inset:0; pointer-events:none; background:var(--oge-map-overlay,#34251f); opacity:var(--oge-map-overlay-opacity,.08); }
.oge-map-pin-link { position:absolute; z-index:3; left:0; top:0; width:var(--oge-map-pin-size); height:calc(var(--oge-map-pin-size) * 1.2); display:grid; place-items:center; color:inherit; text-decoration:none; transform:translate(-50%,-100%); opacity:0; visibility:hidden; transition:opacity .2s ease,filter .25s ease; filter:drop-shadow(0 20px 25px rgba(52,37,31,.28)); }
.oge-map-card.is-google-ready .oge-map-pin-link { opacity:1; visibility:visible; }
.oge-map-pin-link:focus-visible { outline:3px solid #fff; outline-offset:8px; }
.oge-map-pin { display:block; width:100%; height:100%; transition:transform .25s ease,filter .25s ease; transform-origin:50% 100%; }
.oge-map-pin svg { display:block; width:100%; height:100%; overflow:visible; }
.oge-map-pin path { fill:#a8434e; }
.oge-map-pin text { fill:#fff; font-family:Georgia,serif; font-weight:800; font-size:20px; dominant-baseline:middle; }
.oge-map-pin-link:hover .oge-map-pin { transform:translateY(-4px) scale(1.035); }
.oge-map-card--native .oge-map-shade { z-index:1; }
/* Progressive enhancement: content is visible by default. Motion is enabled
   only after the observer has been created successfully by the current script. */
.og-reveal { --oge-x:0px; --oge-y:46px; opacity:1; visibility:visible; transform:none; }
html.oge-motion-enabled .og-reveal[data-oge-reveal-ready]:not(.is-visible) { opacity:0; transform:translate3d(var(--oge-x),var(--oge-y),0) scale(var(--oge-scale,1)); }
html.oge-motion-enabled .og-reveal[data-oge-reveal-ready] { transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1); transition-delay:var(--oge-delay,0ms); }
.og-reveal.oge-anim-none,
html.oge-motion-enabled .og-reveal.oge-anim-none[data-oge-reveal-ready] { opacity:1; transform:none; }
.og-reveal.oge-anim-fade-scale { --oge-y:24px; --oge-scale:.96; }
.og-reveal.oge-anim-slide-left { --oge-x:-65px; --oge-y:0px; }
.og-reveal.oge-anim-slide-right { --oge-x:65px; --oge-y:0px; }
html.oge-motion-enabled .og-reveal.is-visible { opacity:1; transform:translate3d(0,0,0) scale(1); }
.og-reveal.is-leaving-up { --oge-y:-34px; }
.og-reveal.is-leaving-down { --oge-y:34px; }
@media (max-width:1024px) {
    .oge-hero-content { align-items:var(--oge-align-tablet,var(--oge-align-desktop,start)); text-align:var(--oge-align-tablet,var(--oge-align-desktop,start)); }
    .oge-flavor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .oge-story-grid,.oge-contact-grid { grid-template-columns:1fr; }
    .oge-story-visual { min-height:480px; }
    .oge-contact-cards { grid-template-columns:1fr 1fr; }
    .oge-testimonial-grid { grid-template-columns:1fr 1fr; }
    .oge-gallery.oge-cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
    .oge-shell { width:min(100% - 28px,1280px); }
    .oge-section { padding:80px 0; }
    .oge-section-head-split { grid-template-columns:1fr; gap:18px; }
    .oge-hero { min-height:100svh; }
    .oge-hero-content { padding-top:calc(var(--og-header-height,72px) + 7vh); align-items:var(--oge-align-mobile,var(--oge-align-tablet,var(--oge-align-desktop,start))); text-align:var(--oge-align-mobile,var(--oge-align-tablet,var(--oge-align-desktop,start))); }
    .oge-hero h1 { font-size:clamp(3.15rem,18vw,6.4rem); }
    .oge-hero .oge-buttons { width:min(100%,420px); flex-direction:column; align-items:stretch; }
    .oge-hero .oge-button { width:100%; }
    .oge-story-visual,.oge-demo-art { min-height:410px; }
    .oge-story.oge-image-left .oge-story-copy,.oge-story.oge-image-left .oge-story-visual { order:initial; }
    .oge-flavor-grid,.oge-testimonial-grid,.oge-contact-cards { grid-template-columns:1fr; }
    .oge-gallery,.oge-gallery.oge-cols-2,.oge-gallery.oge-cols-3,.oge-gallery.oge-cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .oge-video-cta { min-height:680px; }
    .oge-video-cta-content { grid-template-columns:1fr; align-items:start; }
    .oge-video-cta-content .oge-button { width:100%; }
    .oge-lightbox-dialog { padding:70px 12px; }
    .oge-lightbox-prev,.oge-lightbox-next { top:auto; bottom:16px; transform:none; }
    .oge-map-card { min-height:400px; }
}
@media (prefers-reduced-motion:reduce) {
    .og-reveal { opacity:1!important; transform:none!important; }
    .oge-scroll-cue span { animation:none; }
}

/* 1.0.5 — regular gallery cells; every photographic container keeps cover behaviour. */
.oge-hero-media,
.oge-story-visual,
.oge-flavor-image,
.oge-gallery-item,
.oge-video-cta-media,
.oge-media-cover,
.elementor .oge-cover-image .elementor-widget-container,
.elementor .oge-cover-image a,
.elementor .oge-cover-image picture {
    overflow:hidden;
}

.oge-hero-media > img,
.oge-hero-media > video,
.oge-story-visual > img,
.oge-flavor-image > img,
.oge-gallery-item > img,
.oge-video-cta-media > img,
.oge-video-cta-media > video,
.oge-media-cover > img,
.oge-media-cover > video,
.elementor .e-con .elementor-widget-image img,
.elementor .e-container .elementor-widget-image img,
.elementor .oge-cover-image img {
    display:block;
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    object-position:center center;
}

/* Keeps Elementor image widgets compatible with containers that define a height. */
.elementor .e-con .elementor-widget-image .elementor-widget-container,
.elementor .e-container .elementor-widget-image .elementor-widget-container,
.elementor .oge-cover-image .elementor-widget-container {
    width:100%;
    height:100%;
}

/* Third-party Google Reviews output remains isolated from the theme layout. */
.oge-google-reviews-output {
    position:relative;
    width:100%;
    min-width:0;
}

.oge-google-reviews-output > :first-child {
    margin-top:0;
}

.oge-google-reviews-output > :last-child {
    margin-bottom:0;
}

.oge-editor-placeholder {
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:26px;
    border:1px dashed rgba(52,37,31,.35);
    border-radius:20px;
    background:rgba(255,255,255,.62);
    color:var(--oge-cocoa);
}

.oge-editor-placeholder-warning {
    border-color:rgba(168,67,78,.55);
    background:rgba(255,250,242,.8);
}

.elementor .e-con .elementor-widget-image,
.elementor .e-container .elementor-widget-image,
.elementor .e-con .elementor-widget-image a,
.elementor .e-container .elementor-widget-image a,
.elementor .e-con .elementor-widget-image picture,
.elementor .e-container .elementor-widget-image picture {
    display:block;
    width:100%;
    height:100%;
}

/* --------------------------------------------------------------------------
 * 1.0.8 — GLOBAL IMAGE COVER
 * Integrated from the former standalone Global Image Cover Patch.
 * Every photographic box fills its container without stretching the image.
 * Logos, icons and review avatars are intentionally excluded.
 * -------------------------------------------------------------------------- */

/* Elementor container backgrounds. */
.elementor .e-con,
.elementor .elementor-section,
.elementor .elementor-column,
.elementor .elementor-widget-wrap {
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
}

/* Standard Elementor Image widget. */
.elementor-widget-image:not(.elementor-widget-theme-site-logo) > .elementor-widget-container {
    width:100%;
    height:100%;
    overflow:hidden;
}

.elementor-widget-image:not(.elementor-widget-theme-site-logo) > .elementor-widget-container > a,
.elementor-widget-image:not(.elementor-widget-theme-site-logo) > .elementor-widget-container > picture,
.elementor-widget-image:not(.elementor-widget-theme-site-logo) > .elementor-widget-container > a > picture {
    display:block;
    width:100%;
    height:100%;
    overflow:hidden;
}

.elementor-widget-image:not(.elementor-widget-theme-site-logo) img {
    display:block;
    width:100%!important;
    max-width:none;
    height:100%!important;
    min-height:100%;
    object-fit:cover!important;
    object-position:center center;
}

/* Elementor image-oriented widgets. */
.elementor-widget-image-box .elementor-image-box-img,
.elementor-widget-call-to-action .elementor-cta__bg-wrapper,
.elementor-widget-call-to-action .elementor-cta__content-item,
.elementor-widget-media-carousel .swiper-slide-inner,
.elementor-widget-image-carousel .swiper-slide-inner {
    overflow:hidden;
}

.elementor-widget-image-box .elementor-image-box-img img,
.elementor-widget-call-to-action img,
.elementor-widget-media-carousel img,
.elementor-widget-image-carousel img {
    display:block;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center;
}

/* Officina del Gusto custom photographic wrappers. */
.elementor [class*="og-"][class*="image"],
.elementor [class*="og-"][class*="media"],
.elementor [class*="og-"][class*="gallery"],
.elementor [class*="oge-"][class*="image"],
.elementor [class*="oge-"][class*="media"],
.elementor [class*="oge-"][class*="gallery"] {
    overflow:hidden;
}

.elementor [class*="og-"][class*="image"] img,
.elementor [class*="og-"][class*="media"] img,
.elementor [class*="og-"][class*="gallery"] img,
.elementor [class*="oge-"][class*="image"] img,
.elementor [class*="oge-"][class*="media"] img,
.elementor [class*="oge-"][class*="gallery"] img {
    display:block;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center;
}

/* Elementor Gallery / Basic Gallery. */
.elementor-widget-gallery .e-gallery-item,
.elementor-widget-gallery .e-gallery-image,
.elementor-widget-basic-gallery .gallery-item,
.elementor-widget-basic-gallery .gallery-icon {
    overflow:hidden;
}

.elementor-widget-gallery .e-gallery-image,
.elementor-widget-basic-gallery .gallery-icon img {
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center;
}

/* UI imagery that must never be cropped as photography. */
.elementor-widget-theme-site-logo img,
.elementor-widget-icon img,
.elementor-widget-icon-box img,
.og-whatsapp img,
.oge-whatsapp img,
[class*="review"] img.avatar,
[class*="review"] .avatar img,
[class*="google"] img.avatar,
[class*="google"] .avatar img {
    width:auto!important;
    height:auto!important;
    min-height:0;
    object-fit:contain!important;
}

/* --------------------------------------------------------------------------
 * 1.0.9 — STORY / "CHI SIAMO" IMAGE COVER FIX
 * A min-height alone does not establish a percentage height for a child image
 * in every browser. The image is therefore anchored to the visual box itself.
 * -------------------------------------------------------------------------- */
.oge-story-visual {
    position:relative;
    isolation:isolate;
}

.oge-story-visual > .oge-story-image,
.oge-story-visual > img {
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-width:100%;
    min-height:100%;
    max-width:none!important;
    object-fit:cover!important;
    object-position:center center!important;
}

.oge-story-visual > .oge-demo-art {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:0;
}
