/* ODH Visual Builder Pro: frontend styles (loaded only on builder pages). */
.odh-page{font-family:var(--odh-font-body,system-ui,sans-serif);color:var(--odh-text,#1c1f26);width:100%;box-sizing:border-box}
.odh-page *,.odh-page *::before,.odh-page *::after{box-sizing:border-box}
.odh-container{display:flex;flex-direction:column;width:100%}
.odh-boxed{max-width:var(--odh-content-width,1140px);margin-inline:auto}
.odh-heading{margin:0;font-family:var(--odh-font-heading,inherit);line-height:1.2}
.odh-heading a{color:inherit;text-decoration:inherit}
.odh-text>:first-child{margin-top:0}
.odh-text>:last-child{margin-bottom:0}
.odh-figure{margin:0}
.odh-img{display:block;max-width:100%;height:auto}
.odh-fit-cover{object-fit:cover}.odh-fit-contain{object-fit:contain}.odh-fit-fill{object-fit:fill}.odh-fit-none{object-fit:none}
.odh-figure figcaption{font-size:.875em;opacity:.75;margin-top:6px}
.odh-img-placeholder{display:grid;place-items:center;min-height:120px;padding:16px;text-align:center;background:#eef0f3;color:#5f6673;border:1px dashed #b8bfca;border-radius:var(--odh-radius,8px)}
.odh-btn{display:inline-block;text-decoration:none;font-weight:600;line-height:1.2;border:2px solid var(--odh-primary,#1c1f26);border-radius:var(--odh-radius,8px);cursor:pointer;transition:background-color .15s,color .15s}
.odh-btn--sm{padding:8px 14px;font-size:14px}.odh-btn--md{padding:12px 22px;font-size:16px}.odh-btn--lg{padding:16px 30px;font-size:18px}
.odh-btn--solid{background:var(--odh-primary,#1c1f26);color:#fff}
.odh-btn--solid:hover{background:transparent;color:var(--odh-primary,#1c1f26)}
.odh-btn--outline{background:transparent;color:var(--odh-primary,#1c1f26)}
.odh-btn--outline:hover{background:var(--odh-primary,#1c1f26);color:#fff}
.odh-btn--accent{background:var(--odh-accent,#d99a2b);border-color:var(--odh-accent,#d99a2b);color:#1c1f26}
.odh-btn:focus-visible{outline:3px solid var(--odh-accent,#d99a2b);outline-offset:2px}
.odh-iconbox__icon{font-size:32px;line-height:1;margin-bottom:12px}
.odh-iconbox__title{margin:0 0 8px;font-family:var(--odh-font-heading,inherit)}
.odh-iconbox__desc{margin:0;color:var(--odh-secondary,#5b6270)}
.odh-divider{border:0;border-top:1px solid;border-color:inherit;margin:0;width:100%}
.odh-spacer{width:100%}
.odh-video,.odh-embed iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.odh-hide-title .entry-title,.odh-hide-title .page-title,.odh-hide-title .wp-block-post-title{display:none}
@keyframes odh-fade{from{opacity:0}to{opacity:1}}
@keyframes odh-slide-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes odh-zoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.odh-anim-fade{animation:odh-fade .6s both}.odh-anim-slide-up{animation:odh-slide-up .6s both}.odh-anim-zoom{animation:odh-zoom .5s both}
@media (prefers-reduced-motion:reduce){.odh-anim-fade,.odh-anim-slide-up,.odh-anim-zoom{animation:none}}
.odh-unavailable{padding:12px 16px;background:#fdecea;color:#8a1f11;border:1px solid #f1b5ad;border-radius:6px}

/* Popup builder */
.odh-popup{position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;pointer-events:none;visibility:hidden;opacity:0;transition:opacity .2s}
.odh-popup.is-open{pointer-events:auto;visibility:visible;opacity:1}
.odh-popup__overlay{position:absolute;inset:0;background:rgba(10,10,12,.5)}
.odh-popup__box{position:relative;background:#fff;border-radius:var(--odh-radius,8px);max-width:min(92vw,var(--odh-popup-width,560px));max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);transform:translateY(14px);transition:transform .2s}
.odh-popup.is-open .odh-popup__box{transform:none}
.odh-popup__close{position:absolute;top:8px;right:8px;width:30px;height:30px;border:0;border-radius:50%;background:rgba(0,0,0,.06);cursor:pointer;font-size:14px}
.odh-popup--fullscreen .odh-popup__box{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}
.odh-popup--slide_in{align-items:flex-end;justify-content:flex-end;padding:20px}
.odh-popup--slide_in .odh-popup__box{transform:translateX(20px)}
.odh-popup--slide_in.is-open .odh-popup__box{transform:none}
.odh-popup--bottom_bar,.odh-popup--notification{align-items:flex-end;justify-content:stretch;background:none}
.odh-popup--bottom_bar .odh-popup__box,.odh-popup--notification .odh-popup__box{width:100%;max-width:none;border-radius:0;transform:translateY(100%)}
.odh-popup--bottom_bar.is-open .odh-popup__box,.odh-popup--notification.is-open .odh-popup__box{transform:none}
.odh-popup--cookie{align-items:flex-end}
.odh-popup--cookie .odh-popup__box{width:100%;max-width:none;border-radius:0}
.odh-tb-hide-header header:first-of-type,.odh-tb-hide-header .site-header,.odh-tb-hide-header #masthead{display:none!important}
.odh-tb-hide-footer footer:last-of-type,.odh-tb-hide-footer .site-footer,.odh-tb-hide-footer #colophon{display:none!important}

/* Form builder */
.odh-form__field{margin-bottom:14px}
.odh-form__field label{display:block;font-weight:600;margin-bottom:4px}
.odh-form__field input:not([type=checkbox]):not([type=radio]),.odh-form__field select,.odh-form__field textarea{
  width:100%;padding:10px 12px;border:1px solid #cfd3da;border-radius:6px;font:inherit;background:#fff}
.odh-form__field textarea{min-height:110px}
.odh-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.odh-form__msg{margin-top:10px;font-size:14px}
.odh-form__msg.is-success{color:#1e7e34}
.odh-form__msg.is-error{color:#c0392b}

/* Posts grid + WooCommerce widget wrappers */
.odh-posts-grid{display:grid;grid-template-columns:repeat(var(--odh-cols,3),1fr);gap:24px}
.odh-post-card__thumb{display:block}
.odh-post-card__thumb img{width:100%;height:auto;border-radius:var(--odh-radius,8px)}
.odh-post-card__title{margin:10px 0 4px;font-size:1.1em}
.odh-post-card__title a{color:inherit;text-decoration:none}
.odh-post-card__date{font-size:.8em;opacity:.6}
.odh-post-card__excerpt{margin:6px 0 0;font-size:.95em;opacity:.85}
@media (max-width:767px){.odh-posts-grid{grid-template-columns:1fr}}

/* Overlay + shape dividers */
.odh-has-overlay{position:relative}
.odh-overlay{position:absolute;inset:0;pointer-events:none;z-index:0}
.odh-has-overlay>*:not(.odh-overlay){position:relative;z-index:1}
.odh-has-divider{position:relative}
.odh-masonry{display:block;column-width:280px;column-gap:24px}
.odh-masonry>*{break-inside:avoid;margin-bottom:24px}

/* Entrance animation (fires via IntersectionObserver, not on load) */
.odh-entrance{opacity:0}
.odh-entrance.is-visible.odh-anim-fade{animation:odh-fade .6s both}
.odh-entrance.is-visible.odh-anim-slide-up{animation:odh-slide-up .6s both}
.odh-entrance.is-visible.odh-anim-zoom{animation:odh-zoom .5s both}

/* Hover animations */
.odh-hover-grow{transition:transform .2s}.odh-hover-grow:hover{transform:scale(1.05)}
.odh-hover-shrink{transition:transform .2s}.odh-hover-shrink:hover{transform:scale(.95)}
.odh-hover-pulse:hover{animation:odh-pulse .6s}
.odh-hover-float{transition:transform .2s}.odh-hover-float:hover{transform:translateY(-6px)}
.odh-hover-underline{position:relative}
.odh-hover-underline::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:currentColor;transition:width .2s}
.odh-hover-underline:hover::after{width:100%}
@keyframes odh-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

/* Off canvas */
.odh-offcanvas{position:fixed;top:0;bottom:0;width:min(86vw,360px);background:#fff;z-index:99980;transition:transform .25s;overflow:auto;box-shadow:0 0 40px rgba(0,0,0,.25);padding:20px}
.odh-offcanvas--left{left:0;transform:translateX(-100%)}
.odh-offcanvas--right{right:0;transform:translateX(100%)}
.odh-offcanvas.is-open{transform:none}
.odh-offcanvas__close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:0;border-radius:50%;background:rgba(0,0,0,.06);cursor:pointer}

/* Carousels */
.odh-carousel{position:relative;overflow:hidden}
.odh-carousel__track{display:flex;transition:transform .4s}
.odh-carousel__slide{flex:0 0 100%;min-width:0}
.odh-carousel__prev,.odh-carousel__next{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:36px;height:36px;border-radius:50%;border:0;background:rgba(0,0,0,.5);color:#fff;cursor:pointer}
.odh-carousel__prev{left:8px}.odh-carousel__next{right:8px}

/* Lightbox */
.odh-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:99999;display:flex;align-items:center;justify-content:center}
.odh-lightbox__body{max-width:90vw;max-height:90vh}
.odh-lightbox__body img,.odh-lightbox__body video{max-width:90vw;max-height:90vh;display:block}
.odh-lightbox__body iframe{width:80vw;height:45vw;max-height:80vh;border:0}
.odh-lightbox__close{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;font-size:22px;cursor:pointer}

/* Reading progress tracker */
.odh-progress-tracker{position:fixed;top:0;left:0;width:100%;height:4px;z-index:99995;background:rgba(0,0,0,.08)}
.odh-progress-tracker__bar{height:100%;width:0;background:var(--odh-accent,#d99a2b)}

/* Table of contents */
.odh-toc ol{margin:0;padding-left:18px}
.odh-toc__h3{margin-left:14px}.odh-toc__h4{margin-left:28px}

/* Hotspot */
.odh-hotspot{position:relative;display:inline-block}
.odh-hotspot__dot{position:absolute;width:22px;height:22px;border-radius:50%;background:var(--odh-accent,#d99a2b);border:3px solid #fff;box-shadow:0 0 0 3px rgba(0,0,0,.15);cursor:pointer;transform:translate(-50%,-50%)}
.odh-hotspot__tip{position:absolute;transform:translate(-50%,-120%);background:#1c1f26;color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;white-space:nowrap;display:none}
.odh-hotspot__tip.is-open{display:block}

/* Video playlist */
.odh-video-playlist{display:grid;gap:10px}
.odh-video-playlist__thumbs{display:flex;gap:8px;overflow-x:auto}
.odh-video-playlist__thumbs img{width:100px;height:60px;object-fit:cover;border-radius:6px;cursor:pointer;opacity:.7}
.odh-video-playlist__thumbs .is-active img{opacity:1;outline:2px solid var(--odh-accent,#d99a2b)}

/* Countdown */
.odh-countdown{display:flex;gap:16px}
.odh-countdown__unit{text-align:center}
.odh-countdown__num{font-size:1.8em;font-weight:700;display:block}

/* Icon list / testimonials / pricing / flip box / alert / accordion / tabs / gallery / social / blockquote / CTA */
.odh-icon-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.odh-icon-list li{display:flex;align-items:center;gap:10px}
.odh-testimonial{padding:20px;border-radius:var(--odh-radius,8px);background:#f7f7f8}
.odh-testimonial__quote{margin:0 0 12px;font-style:italic}
.odh-testimonial__meta{display:flex;align-items:center;gap:10px}
.odh-testimonial__meta img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.odh-price-table{border:1px solid #e0e2e7;border-radius:var(--odh-radius,8px);padding:24px;text-align:center}
.odh-price-table__price{font-size:2em;font-weight:700;margin:12px 0}
.odh-price-table ul{list-style:none;padding:0;margin:16px 0;text-align:left}
.odh-price-list__item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed #e0e2e7}
.odh-flip-box{position:relative;perspective:1000px;min-height:220px}
.odh-flip-box__inner{position:relative;width:100%;height:100%;min-height:220px;transition:transform .6s;transform-style:preserve-3d}
.odh-flip-box:hover .odh-flip-box__inner{transform:rotateY(180deg)}
.odh-flip-box__front,.odh-flip-box__back{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--odh-radius,8px);display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}
.odh-flip-box__back{transform:rotateY(180deg)}
.odh-alert{padding:14px 16px;border-radius:var(--odh-radius,8px);border-left:4px solid;margin:0}
.odh-alert--info{background:#eaf3fb;border-color:#2f7cc9}
.odh-alert--success{background:#eaf7ee;border-color:#1e7e34}
.odh-alert--warning{background:#fff8e6;border-color:#c9962f}
.odh-alert--danger{background:#fdecea;border-color:#c0392b}
.odh-accordion__item{border-bottom:1px solid #e0e2e7}
.odh-accordion__head{width:100%;text-align:left;padding:14px 4px;border:0;background:none;cursor:pointer;font-weight:700;display:flex;justify-content:space-between}
.odh-accordion__body{padding:0 4px 14px;display:none}
.odh-accordion__item.is-open .odh-accordion__body{display:block}
.odh-tabs-widget__nav{display:flex;gap:4px;border-bottom:1px solid #e0e2e7}
.odh-tabs-widget__nav button{padding:10px 16px;border:0;background:none;cursor:pointer;font-weight:600;border-bottom:2px solid transparent}
.odh-tabs-widget__nav button.is-active{border-color:var(--odh-accent,#d99a2b)}
.odh-tabs-widget__panel{display:none;padding:16px 4px}
.odh-tabs-widget__panel.is-active{display:block}
.odh-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.odh-gallery img{width:100%;height:160px;object-fit:cover;border-radius:6px;cursor:zoom-in}
.odh-social-icons{display:flex;gap:10px;list-style:none;padding:0;margin:0}
.odh-social-icons a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--odh-primary,#1c1f26);color:#fff;text-decoration:none;font-size:14px}
.odh-blockquote{border-left:4px solid var(--odh-accent,#d99a2b);padding:10px 20px;font-style:italic;margin:0}
.odh-blockquote cite{display:block;margin-top:8px;font-style:normal;font-weight:600}
.odh-cta{padding:40px;border-radius:var(--odh-radius,8px);text-align:center}
.odh-share-buttons{display:flex;gap:8px;list-style:none;padding:0;margin:0}
.odh-share-buttons a{padding:8px 14px;border-radius:6px;background:#eef0f3;text-decoration:none;color:inherit;font-size:14px}
.odh-breadcrumbs{font-size:.9em;opacity:.8}
.odh-breadcrumbs a{color:inherit}
.odh-author-box{display:flex;gap:16px;padding:20px;border-radius:var(--odh-radius,8px);background:#f7f7f8}
.odh-author-box img{width:64px;height:64px;border-radius:50%}
.odh-code-highlight{background:#1d2026;color:#eceef1;padding:16px;border-radius:8px;overflow-x:auto;font-family:ui-monospace,monospace;font-size:.9em}
.odh-menu-cart{position:relative;display:inline-flex;align-items:center;gap:6px}
.odh-menu-cart__count{background:var(--odh-accent,#d99a2b);color:#1c1f26;border-radius:50%;width:18px;height:18px;font-size:11px;display:flex;align-items:center;justify-content:center}
