/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Vaida Wellness child theme of Hello Elementor. Built by Ben Coyour Design.
Author: Ben Coyour Design
Author URI: https://bencoyour.com/
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

/* GLOBAL */


/* RECOMMENDATIONS ([recommendations] shortcode, carried over from the Beaver Builder child theme) */
.recommendations-wrapper h3 {margin-top:50px; border-bottom:1px solid #eee; padding-bottom:10px; margin-bottom:10px;}
.recommendations-grid {display:flex; flex-wrap:wrap; gap:50px;}
.recommendation-item {flex:0 0 calc(20% - 40px); box-sizing:border-box; text-align:center; align-items:flex-start; justify-content:flex-start;}
.recommendation-item a {display:block; position:relative; text-decoration:none;}
.rimg {background:#fff; border-radius:5px; display:flex; align-items:center; flex-direction:column; justify-content:center; aspect-ratio:1 / 1; padding:10px;}
.rimg img {width:100%; max-width:200px; height:120px; object-fit:contain;}
.recommendation-item strong {display:block; margin-top:5px; font-size:14px; font-weight:400;}

@media (max-width:767px){
  .recommendation-item {flex:0 0 calc(50% - 25px);}
}







/* === VAIDA - HOMEPAGE SYSTEM (vw-*) === */
/*
   Only what Elementor cannot do lives here. Layout, spacing, radius, overlays,
   hover scale, rotation and colors are set in the Elementor panel.

   1. Tokens and shared pieces (dot-ended lines, eyebrow, script stack)
   2. Header (utility bar, numbered nav, transparent home header, menu button)
   3. Off-canvas menu
   4. Hero decorations (side labels, badge)
   5. Framed boxes (welcome)
   6. Photo tiles and dot-line labels (who we serve)
   7. Services collage (grid placement, tile type)
   8. Kind words carousel
   9. Journal cards, filter, pagination (shortcode markup)
  9b. Gravity Forms styling (contact block on interior pages)
  9c. Interior decorations: offset blocks, vertical line, watercolor washes (Page Blocks)
  10. Footer
  11. Breakpoints: 1200 (menu switch), 1024 (tablet), 767 (phone)
*/

/* ---------- 1. TOKENS AND SHARED PIECES ---------- */
:root {
  --vw-lake: #6D7E85;
  --vw-dark-lake: #3D4C52;
  --vw-coal: #2B2B2B;
  --vw-sky: #BCC9CE;
  --vw-shell: #F5F3EE;
  --vw-sage: #B3BCB1;
  --vw-ease: cubic-bezier(.22, .61, .36, 1);
  /* a 1px line with a 3px dot at each end, colored by currentColor */
  --vw-dotline-v: radial-gradient(circle, currentColor 1.6px, transparent 2.1px) center top / 5px 5px no-repeat,
                  radial-gradient(circle, currentColor 1.6px, transparent 2.1px) center bottom / 5px 5px no-repeat,
                  linear-gradient(currentColor, currentColor) center / 1px calc(100% - 4px) no-repeat;
  --vw-dotline-h: radial-gradient(circle, currentColor 1.6px, transparent 2.1px) left center / 5px 5px no-repeat,
                  radial-gradient(circle, currentColor 1.6px, transparent 2.1px) right center / 5px 5px no-repeat,
                  linear-gradient(currentColor, currentColor) center / calc(100% - 4px) 1px no-repeat;
}

html, body { overflow-x: clip; }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible { outline: 3px solid var(--vw-dark-lake); outline-offset: 3px; }

/* dot-ended line elements */
.vw-dotline-v { display: block; width: 5px; background: var(--vw-dotline-v); }
.vw-dotline-h { display: block; height: 5px; width: 100%; background: var(--vw-dotline-h); }

/* an HTML widget that only carries a decoration: no box of its own */
.vw-hero-deco, .vw-hero-deco .elementor-widget-container { position: static !important; margin: 0 !important; height: 0; line-height: 0; }

/* eyebrow: short sky dash before (and after when centered) */
.vw-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 16px; }
.vw-eyebrow .elementor-heading-title::before { content: ""; width: 32px; height: 1px; background: var(--vw-sky); }
.vw-eyebrow--center .elementor-heading-title { justify-content: center; }
.vw-eyebrow--center .elementor-heading-title::after { content: ""; width: 32px; height: 1px; background: var(--vw-sky); }

/* two-line script heading ("The / Journal") */
.vw-script-stack .elementor-heading-title { font-size: clamp(40px, 4.6vw, 64px); line-height: .92; }

/* white text on photos */
.vw-on-photo .elementor-heading-title { color: #fff; text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }

/* ---------- 2. HEADER ---------- */
/* utility bar links as small outlined buttons */
.vw-utility-nav .elementor-nav-menu--main .elementor-item { border: 1px solid rgba(43, 43, 43, .45); font-size: 10.5px !important; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; transition: background .25s var(--vw-ease), color .25s, border-color .25s; }
.vw-utility-nav .elementor-nav-menu--main .elementor-item:hover { background: var(--vw-dark-lake); border-color: var(--vw-dark-lake); color: #fff !important; }

/* numbered nav: "No 1" above each link, underline draws in on hover */
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu { counter-reset: vwnav; gap: 0; }
.elementor-widget-nav-menu.vw-nav--right .elementor-nav-menu { counter-reset: vwnav 3; }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu > li { counter-increment: vwnav; }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 6px 0 10px !important; margin: 0 26px !important; overflow: visible; height: auto; transition: letter-spacing .45s var(--vw-ease), color .3s; }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item::before { content: "No " counter(vwnav); position: static; display: block; width: auto; height: auto; opacity: .55 !important; font-family: 'HV Florentino', serif; font-size: 9px; letter-spacing: .2em; text-transform: uppercase; transition: transform .45s var(--vw-ease), opacity .45s var(--vw-ease); }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item::after { content: ""; position: absolute; left: 0; right: 0; top: auto; bottom: 0; width: auto; height: 1px; background: currentColor; opacity: .7; transform: scaleX(0); transform-origin: left center; transition: transform .55s var(--vw-ease); }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item:hover { letter-spacing: .2em; }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item:hover::before,
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item:focus-visible::before,
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::before { transform: translateY(-3px); opacity: 1 !important; }
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item:hover::after,
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item:focus-visible::after,
.elementor-widget-nav-menu.vw-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after { transform: scaleX(1); }
.vw-nav .elementor-nav-menu--dropdown, .vw-nav .elementor-menu-toggle { display: none !important; }
.vw-nav-col { padding: 0 20px; }
.vw-nav--left .elementor-nav-menu { justify-content: flex-end; }
.vw-nav--right .elementor-nav-menu { justify-content: flex-start; }

/* logo */
.vw-logo .elementor-widget-container { line-height: 0; }
.vw-logo img { width: 180px; height: auto; max-width: none; transition: opacity .3s var(--vw-ease); }
.vw-logo a:hover img { opacity: .75; }

/* homepage: header floats over the hero and turns white */
.home .vw-header-wrap { position: absolute; top: 0; left: 0; right: 0; z-index: 60; }
.admin-bar.home .vw-header-wrap { top: 32px; }
.home .vw-utility { background: rgba(43, 43, 43, .42) !important; backdrop-filter: blur(2px); }
.home .vw-utility .elementor-nav-menu a, .home .vw-nav .elementor-nav-menu a.elementor-item, .home .vw-nav .elementor-nav-menu a.elementor-item:hover { color: #fff !important; }
.home .vw-utility-nav .elementor-nav-menu--main .elementor-item { border-color: rgba(255, 255, 255, .4); }
.home .vw-utility-nav .elementor-nav-menu--main .elementor-item:hover { background: rgba(255, 255, 255, .14); }
.home .vw-header { background: transparent !important; }
.home .vw-logo img { filter: brightness(0) invert(1); }
.home .vw-menu-toggle .elementor-button { color: #fff !important; border-color: rgba(255, 255, 255, .5) !important; }
.home .vw-menu-toggle .elementor-button:hover { background: rgba(255, 255, 255, .12) !important; }

/* menu button (hidden on desktop, see breakpoints) */
.vw-menu-toggle .elementor-button { background: transparent !important; border: 1px solid var(--vw-lake); color: var(--vw-coal) !important; padding: 12px 18px !important; min-height: 44px; font-size: 11px; letter-spacing: .16em; }
.vw-menu-toggle .elementor-button:hover { background: var(--vw-shell) !important; }
.vw-menu-toggle .elementor-button-content-wrapper { align-items: center; line-height: 1; }
.vw-menu-toggle .elementor-button-text { display: block; line-height: 1; padding-top: 1px; }
.vw-menu-toggle .elementor-button-icon { display: flex; align-items: center; line-height: 0; }
.vw-menu-toggle .elementor-button-icon svg, .vw-mm-close .elementor-button-icon svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; }

/* ---------- 3. OFF-CANVAS MENU ---------- */
.vw-mm .e-off-canvas__main { background: var(--vw-shell) !important; width: 100vw !important; max-width: 100vw !important; height: 100vh !important; height: 100dvh !important; }
.vw-mm .e-off-canvas__content { height: 100%; overflow: auto; }
.vw-mm-close .elementor-button { background: transparent !important; border: 1px solid var(--vw-lake); color: var(--vw-coal) !important; padding: 12px 18px !important; min-height: 44px; font-size: 11px; letter-spacing: .16em; }
.vw-mm-close .elementor-button:hover { background: #fff !important; }
.vw-mm-close .elementor-button-content-wrapper { align-items: center; line-height: 1; }
.vw-mm-close .elementor-button-text { display: block; line-height: 1; padding-top: 2px; }
.vw-mm-close .elementor-button-icon { display: flex; align-items: center; line-height: 0; }
.vw-mm-mark img { opacity: .9; }
/* numbered links, staggered in as the panel opens */
.vw-mm-grid { counter-reset: vwmm; padding: 0 6vw; column-gap: min(12vw, 96px) !important; }
.vw-mm-link { counter-increment: vwmm; width: 100%; opacity: 0; transform: translateY(14px); }
.vw-mm-link .elementor-heading-title { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; font-family: 'HV Florentino', serif; font-size: clamp(24px, 6vw, 34px); line-height: 1.1; }
.vw-mm-link .elementor-heading-title::before { content: "No " counter(vwmm); font-family: 'Work Sans', sans-serif; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--vw-lake); }
.vw-mm-link .elementor-heading-title a { position: relative; display: inline-block; padding-bottom: 6px; transition: color .3s var(--vw-ease); }
.vw-mm-link .elementor-heading-title a::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: var(--vw-lake); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--vw-ease); }
.vw-mm-link .elementor-heading-title a:hover { color: var(--vw-lake); }
.vw-mm-link .elementor-heading-title a:hover::after { transform: scaleX(1); }
.e-off-canvas[aria-hidden="false"] .vw-mm-link { animation: vwFadeUp .7s var(--vw-ease) forwards; }
.e-off-canvas[aria-hidden="false"] .vw-mm-link:nth-child(1) { animation-delay: .15s; }
.e-off-canvas[aria-hidden="false"] .vw-mm-link:nth-child(2) { animation-delay: .25s; }
.e-off-canvas[aria-hidden="false"] .vw-mm-link:nth-child(3) { animation-delay: .35s; }
.e-off-canvas[aria-hidden="false"] .vw-mm-link:nth-child(4) { animation-delay: .45s; }
.e-off-canvas[aria-hidden="false"] .vw-mm-link:nth-child(5) { animation-delay: .55s; }
.e-off-canvas[aria-hidden="false"] .vw-mm-link:nth-child(6) { animation-delay: .65s; }
@keyframes vwFadeUp { to { opacity: 1; transform: none; } }
.vw-mm-book .elementor-button { padding: 18px 34px !important; font-size: 13px; letter-spacing: .2em; }

/* ---------- 4. HERO DECORATIONS ---------- */
/* ESTD / 2016: line, dot, text reading upward, dot, line */
.vw-side-label { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 20px; color: #fff; opacity: .9; line-height: 1; pointer-events: none; }
.vw-side-label--left { left: max(22px, 4.2vw); }
.vw-side-label--right { right: max(22px, 4.2vw); }
.vw-side-label .vw-dotline-v { height: clamp(110px, 18vh, 220px); }
.vw-side-label__text { display: block; writing-mode: vertical-rl; font-family: 'Work Sans', sans-serif; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; }
.vw-side-label--left .vw-side-label__text { transform: rotate(180deg); }
/* script wordmark: position and rotation are Elementor settings, only the type is here */
.vw-hero-script .elementor-heading-title { font-size: clamp(38px, 4.6vw, 66px); line-height: 1.02; text-shadow: 0 1px 14px rgba(0, 0, 0, .18); }
/* oval monogram hanging off the bottom edge, scaling in on load */
.vw-hero-badge { position: absolute; left: 50%; bottom: 0; z-index: 5; width: 96px; transform: translate(-50%, 50%); filter: drop-shadow(0 10px 22px rgba(43, 43, 43, .16)); animation: vwBadgeIn 1.4s var(--vw-ease) .35s both; }
.vw-hero-badge img { display: block; width: 100%; height: auto; }
@keyframes vwBadgeIn { from { opacity: 0; transform: translate(-50%, 50%) scale(.6) rotate(-14deg); } to { opacity: 1; transform: translate(-50%, 50%) scale(1) rotate(0); } }
@media (prefers-reduced-motion: reduce) { .vw-hero-badge, .vw-mm-link { animation: none !important; opacity: 1; transform: translate(-50%, 50%); } .vw-mm-link { transform: none; } }

/* ---------- 5. FRAMED BOXES (welcome) ---------- */
.vw-frame { position: relative; }
.vw-frame::before, .vw-frame::after { content: ""; position: absolute; left: 0; right: 0; height: 5px; background: var(--vw-dotline-h); color: var(--vw-sage); }
.vw-frame::before { top: 0; }
.vw-frame::after { bottom: 0; }
.vw-frame .elementor-widget-text-editor { margin-bottom: 0 !important; }
.vw-frame .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
/* vertical divider between the two boxes: its own 5px flex child */
.vw-frame-divider { width: 5px !important; max-width: 5px; position: relative; margin: 0 !important; }
.vw-frame-divider .elementor-widget-container { height: 100%; }
.vw-frame-divider .vw-dotline-v { position: absolute; top: 0; bottom: 0; left: 0; color: var(--vw-sage); }

/* ---------- 6. PHOTO TILES AND DOT-LINE LABELS (who we serve) ---------- */
.vw-photo-tile { display: block; aspect-ratio: 1 / 1; }
.vw-photo-tile--4x3 { aspect-ratio: 4 / 3; }
.vw-photo-tile.e-con { flex-shrink: 0; }
/* a flex child that takes whatever width is left beside a fixed sibling */
.vw-fill.e-con { flex: 1 1 0%; min-width: 0; width: auto; }
.vw-photo-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--vw-ease); }
.vw-photo-tile:hover img { transform: scale(1.05); }
.vw-photo-tile .elementor-widget-image, .vw-photo-tile .elementor-widget-container { height: 100%; }
/* label with a dot-ended line hanging off the left edge of the column */
.vw-dotline-label .elementor-heading-title { display: flex; align-items: center; gap: 16px; margin-left: -26px; font-family: 'Work Sans', sans-serif; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; }
.vw-dotline-label .elementor-heading-title::before { content: ""; width: 64px; height: 5px; background: var(--vw-dotline-h); color: var(--vw-lake); }

/* ---------- 7. SERVICES COLLAGE ---------- */
/* offset placement on a 12-column grid; tiles are Elementor containers with their own overlays and hover scale */
.vw-collage.e-con { display: grid !important; grid-template-columns: repeat(12, 1fr); grid-template-rows: 80px 200px 120px 160px 120px 60px; gap: 0 24px; }
.vw-tile--2 { grid-column: 2 / span 3; grid-row: 2 / span 3; z-index: 2; aspect-ratio: 1 / 1.6; }
.vw-tile--1 { grid-column: 5 / span 5; grid-row: 1 / span 3; aspect-ratio: 4 / 3; }
.vw-tile--3 { grid-column: 9 / span 2; grid-row: 4 / span 2; z-index: 3; aspect-ratio: 1 / 1; }
.vw-tile--4 { grid-column: 4 / span 5; grid-row: 4 / span 3; aspect-ratio: 3 / 2; }
a.vw-tile, a.vw-tile:hover { color: #fff; text-decoration: none; }
.vw-tile.e-con { width: 100% !important; max-width: none; flex-direction: column; flex-wrap: nowrap; }
.vw-tile.e-con > .elementor-widget { width: 100%; }
.vw-tile__no .elementor-heading-title { font-family: 'HV Florentino', serif; font-style: italic; font-size: clamp(28px, 2.6vw, 38px); line-height: 1; color: #fff; text-shadow: 0 1px 10px rgba(43, 43, 43, .18); }
.vw-tile__label .elementor-heading-title { position: relative; margin-top: 12px; padding-bottom: 8px; font-family: 'Work Sans', sans-serif; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: #fff; text-shadow: 0 1px 10px rgba(43, 43, 43, .18); }
.vw-tile__label .elementor-heading-title::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 24px; height: 1px; background: #fff; transform: translateX(-50%) scaleX(0); transition: transform .6s var(--vw-ease); }
.vw-tile:hover .vw-tile__label .elementor-heading-title::after { transform: translateX(-50%) scaleX(1); }

/* ---------- 8. KIND WORDS CAROUSEL ---------- */
.vw-kind .swiper, .vw-kind .elementor-swiper { overflow: hidden; }
.vw-kind .elementor-testimonial__text { max-width: 640px; margin: 0 auto; font-style: normal !important; line-height: 1.85; }
.vw-kind .elementor-testimonial__footer { justify-content: center; }
.vw-kind .elementor-testimonial, .vw-kind .swiper-slide { padding-top: 0 !important; }
/* text arrows with a hairline beside them */
.vw-kind .elementor-swiper-button { top: 50%; width: auto; height: auto; transform: translateY(-50%); display: flex; align-items: center; gap: 22px; color: var(--vw-coal) !important; opacity: 1; font-family: 'Work Sans', sans-serif; font-size: 11px !important; letter-spacing: .24em !important; text-transform: uppercase; transition: letter-spacing .4s var(--vw-ease); }
.vw-kind .elementor-swiper-button:hover { letter-spacing: .3em !important; }
.vw-kind .elementor-swiper-button svg, .vw-kind .elementor-swiper-button i { display: none; }
.vw-kind .elementor-swiper-button::after { content: ""; width: 1px; height: 90px; background: var(--vw-coal); opacity: .7; }
.vw-kind .elementor-swiper-button-prev { left: 6%; }
.vw-kind .elementor-swiper-button-prev::before { content: "Prev"; }
.vw-kind .elementor-swiper-button-next { right: 6%; flex-direction: row-reverse; }
.vw-kind .elementor-swiper-button-next::before { content: "Next"; }
.vw-kind .swiper-pagination { display: none; }

/* ---------- 9. JOURNAL CARDS (shortcode markup) ---------- */
.vw-journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px; }
.vw-card { display: block; color: var(--vw-coal); text-decoration: none; }
.vw-card-media { position: relative; overflow: hidden; aspect-ratio: 1 / 1; background: var(--vw-shell); isolation: isolate; }
.vw-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.85); transition: transform 1.3s var(--vw-ease); }
.vw-card:hover .vw-card-media img { transform: scale(1.06); }
.vw-card-cat { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: #fff; background: rgba(43, 43, 43, .16); transition: background .8s var(--vw-ease); }
.vw-card:hover .vw-card-cat { background: rgba(43, 43, 43, .28); }
.vw-card-cat img { width: 72px; height: 72px; object-fit: contain; filter: drop-shadow(0 2px 8px rgba(43, 43, 43, .45)); transition: transform .8s var(--vw-ease); }
.vw-card:hover .vw-card-cat img { transform: translateY(-4px); }
.vw-card-cat span { font-family: 'Work Sans', sans-serif; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; text-shadow: 0 1px 8px rgba(43, 43, 43, .5); }
/* title beside a dot-ended line that starts inside the photo */
.vw-card-body { position: relative; padding: 26px 0 6px calc(10% + 30px); margin-left: 2px; }
.vw-card-body::before { content: ""; position: absolute; left: 10%; top: -52px; bottom: -22px; width: 5px; background: var(--vw-dotline-v); color: var(--vw-lake); }
.vw-card-title { font-family: 'Work Sans', sans-serif; font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; line-height: 1.9; transition: transform .6s var(--vw-ease), color .4s; }
.vw-card:hover .vw-card-title { transform: translateX(6px); color: var(--vw-lake); }
/* journal page: category filter and pagination */
.vw-journal-filter { display: flex; gap: 28px; flex-wrap: wrap; justify-content: center; }
.vw-journal-filter a { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; padding-bottom: 6px; border-bottom: 1px solid transparent; transition: border-color .4s; }
.vw-journal-filter a:hover, .vw-journal-filter a.is-active { border-color: var(--vw-lake); }
.vw-pagination { display: flex; justify-content: center; gap: 14px; margin-top: 64px; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.vw-pagination .page-numbers { padding: 8px 4px; border-bottom: 1px solid transparent; }
.vw-pagination .page-numbers.current, .vw-pagination .page-numbers:hover { border-color: var(--vw-lake); }

/* ---------- 9b. GRAVITY FORMS (contact block) ---------- */
.vw-gform .gform_wrapper .gfield_label { font-family: 'Work Sans', sans-serif; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; color: var(--vw-coal); margin-bottom: 8px; }
.vw-gform .gform_wrapper input[type=text], .vw-gform .gform_wrapper input[type=email], .vw-gform .gform_wrapper input[type=tel], .vw-gform .gform_wrapper textarea { width: 100%; border: 1px solid rgba(43, 43, 43, .18); background: var(--vw-shell); padding: 14px 16px; font-family: 'Work Sans', sans-serif; font-size: 15px; color: var(--vw-coal); border-radius: 0; transition: border-color .3s; }
.vw-gform .gform_wrapper input:focus, .vw-gform .gform_wrapper textarea:focus { outline: none; border-color: var(--vw-lake); }
.vw-gform .gform_wrapper .gform_footer { padding: 0; margin-top: 8px; }
.vw-gform .gform_wrapper .gform_button { background: var(--vw-coal); color: #fff; border: 0; padding: 16px 32px; font-family: 'Work Sans', sans-serif; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; cursor: pointer; transition: background .3s; }
.vw-gform .gform_wrapper .gform_button:hover { background: var(--vw-dark-lake); }
.vw-gform .gform_wrapper .gfield_required { color: var(--vw-lake); }
.vw-gform .gform_wrapper .gform_validation_errors, .vw-gform .gform_wrapper .validation_message { font-size: 13px; color: #8a4b3c; }
/* white text on a dark photo, text editor variant */
.vw-on-photo-text, .vw-on-photo-text p { color: #fff; }
/* icon list bullets sit on the first line of text */
.vw-list .elementor-icon-list-item { align-items: flex-start; }
.vw-list .elementor-icon-list-icon { padding-top: 9px; }
/* dot arrows on the text / image / text block: bottom-left points to the left column, top-right to the right column */
.vw-tri-media { position: relative; }
.vw-tri-arrows, .vw-tri-arrows .elementor-widget-container { position: static !important; margin: 0 !important; height: 0; line-height: 0; }
.vw-tri-arrow { position: absolute; width: 96px; color: var(--vw-lake); }
.vw-tri-arrow--left { left: -56px; bottom: 25px; }
.vw-tri-arrow--right { right: -56px; top: 25px; }
.vw-tri-media .elementor-widget-image { line-height: 0; }
.vw-tile__no--sm .elementor-heading-title { font-size: clamp(22px, 2vw, 28px); }

/* ---------- 9c. INTERIOR DECORATIONS (Page Blocks) ---------- */
/* absolute decoration widgets take no space; the inner element positions against the nearest positioned container */
.vw-deco, .vw-deco .elementor-widget-container { position: static !important; margin: 0 !important; height: 0; line-height: 0; }
/* in-flow decoration (the vertical line above a heading) */
.vw-deco-flow .elementor-widget-container { display: flex; justify-content: center; line-height: 0; }
.vw-vline { height: 120px; color: var(--vw-lake); }
/* photo column that carries an offset shape behind it */
.vw-offset-media.e-con { position: relative; isolation: isolate; }
.vw-offset-media .elementor-widget-image { position: relative; z-index: 1; line-height: 0; }
/* solid Shell block shifted down-right behind the photo (image-left block) */
.vw-offset-block { position: absolute; inset: 28px -28px -28px 28px; border-radius: 25px; background: var(--vw-shell); z-index: 0; }
/* mirrored for the image-right block (down-left) */
.vw-offset-block--left { inset: 28px 28px -28px -28px; }
/* straight down, one shade darker than the Shell section it sits on (text / image / text block) */
.vw-offset-block--down { inset: 32px 0 -32px 0; background: #EBE6DC; }
/* watercolor washes on both sides of the quote block, content above them */
.vw-block-quote.e-con { overflow: hidden; }
.vw-block-quote > .e-con { position: relative; z-index: 1; }
.vw-wash { position: absolute; top: -12%; width: 760px; z-index: 0; pointer-events: none; }
.vw-wash--right { right: -4%; }
.vw-wash--left { left: -4%; top: 4%; transform: scaleX(-1); }
.vw-wash img { width: 100%; height: auto; display: block; }
/* side labels in Coal on a light section (contact) */
.vw-side-label--dark { color: var(--vw-coal); opacity: .6; }

/* ---------- 10. FOOTER ---------- */
.vw-footer .elementor-heading-title, .vw-footer p, .vw-footer a { color: var(--vw-coal); }
.vw-footer .elementor-icon-list-items .elementor-icon-list-item { padding: 3px 0; justify-content: center; }
.vw-footer .elementor-icon-list-text { font-size: 14.5px; line-height: 1.7; letter-spacing: .02em; }
.vw-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--vw-dark-lake); }
.vw-footer-text p { font-size: 14.5px; line-height: 1.7; margin: 0; }
.vw-footer-tagmark img { width: min(300px, 70vw); height: auto; opacity: .92; }
/* full-width dot-ended rules */
.vw-rule, .vw-rule .elementor-widget-container { height: 5px; line-height: 0; }
.vw-rule .vw-dotline-h { color: rgba(43, 43, 43, .45); }
/* newsletter box */
.vw-newsletter-media { overflow: hidden; }
.vw-newsletter-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vw-newsletter-media .elementor-widget-container, .vw-newsletter-media .elementor-widget { height: 100%; }
.vw-footer-form .elementor-form .elementor-field { background: #fff; border: 1px solid rgba(43, 43, 43, .14); height: 50px; font-size: 14px; }
.vw-footer-form .elementor-form .elementor-field:focus { border-color: var(--vw-lake); }
.vw-footer-form .elementor-form .elementor-field-group { padding-right: 12px; }
.vw-footer-form .elementor-form .elementor-field-type-submit { padding-right: 0; }
.vw-footer-form .elementor-button { width: 100%; height: 50px; padding: 0 20px !important; }
/* bottom bar */
.vw-footer-bottom .elementor-heading-title, .vw-footer-bottom .elementor-icon-list-text { font-size: 11px !important; letter-spacing: .14em; text-transform: uppercase; }
.vw-footer-legal .elementor-icon-list-item { padding: 0; }

/* ---------- 11. BREAKPOINTS ---------- */
/* 1200 and below: desktop nav hands off to the Menu button, utility bar hides, logo steps down */
@media (max-width: 1200px) {
  .vw-nav-col, .vw-utility { display: none !important; }
  .vw-menu-toggle { display: flex !important; }
  .vw-logo img { width: 160px; }
}
/* tablet */
@media (max-width: 1024px) {
  .vw-side-label .vw-dotline-v { height: 80px; }
  .vw-wash { width: 480px; }
  .vw-collage.e-con { grid-template-columns: 1fr 1fr; grid-template-rows: auto !important; grid-auto-rows: auto; grid-template-areas: "t1 t1" "t2 t3" "t4 t4"; gap: 18px; }
  .vw-tile--1 { grid-area: t1; aspect-ratio: 16 / 9; }
  .vw-tile--2 { grid-area: t2; aspect-ratio: 1 / 1; }
  .vw-tile--3 { grid-area: t3; aspect-ratio: 1 / 1; }
  .vw-tile--4 { grid-area: t4; aspect-ratio: 16 / 9; }
  .vw-tile { min-height: 260px; }
  .vw-dotline-label .elementor-heading-title { margin-left: 0; }
  .vw-tri-arrow { display: none; }
  .vw-dotline-label .elementor-heading-title::before { width: 40px; }
  /* welcome boxes stack: one set of lines top and bottom */
  .vw-frame--stacked-bottom::before { display: none; }
  .vw-frame:not(.vw-frame--stacked-bottom)::after { display: none; }
  /* carousel arrows move below the quote */
  .vw-kind .elementor-swiper-button { top: auto !important; bottom: -56px !important; transform: none !important; }
  .vw-kind .elementor-swiper-button::after { height: 24px; }
  .vw-kind .elementor-swiper-button-prev { left: 0 !important; }
  .vw-kind .elementor-swiper-button-next { right: 0 !important; }
  .vw-kind .elementor-widget-testimonial-carousel { margin-bottom: 44px; }
  .vw-journal-grid { gap: 28px; }
  .vw-newsletter-media { min-height: 260px; }
}
/* tablet portrait and below: admin bar is taller */
@media (max-width: 782px) { .admin-bar.home .vw-header-wrap { top: 46px; } }
/* phone */
@media (max-width: 767px) {
  .vw-logo img { width: 140px; }
  .vw-offset-block { inset: 16px -16px -16px 16px; border-radius: 20px; }
  .vw-offset-block--left { inset: 16px 16px -16px -16px; }
  .vw-offset-block--down { inset: 20px 0 -20px 0; }
  .vw-wash { width: 340px; }
  .vw-wash--right { right: -22%; }
  .vw-wash--left { left: -22%; }
  .vw-vline { height: 64px; }
  .vw-hero-badge { width: 78px; }
  .vw-collage.e-con { grid-template-columns: 1fr; grid-template-areas: "t1" "t2" "t3" "t4"; gap: 16px; }
  .vw-tile--1, .vw-tile--2, .vw-tile--3, .vw-tile--4 { aspect-ratio: 16 / 9; min-height: 0; }
  .vw-kind .elementor-testimonial__text { font-size: 16px; }
  .vw-script-stack .elementor-heading-title { font-size: 44px; }
  .vw-journal-grid { grid-template-columns: 1fr; gap: 36px; }
  .vw-card-body { padding-left: calc(4% + 26px); }
  .vw-card-body::before { left: 4%; top: -32px; bottom: -10px; }
  .vw-footer-tagmark img { width: 90px; }
  .vw-newsletter-media { min-height: 220px; }
  .vw-footer-form .elementor-form .elementor-field-group { padding-right: 0; }
  .vw-fill.e-con { flex: 0 0 auto; width: 100%; }
}

/* ---------- 10. BLOG: SINGLE POST, ARCHIVE, SHARED CTA ---------- */
/* category tag (post info widget) */
.vw-post-tag .elementor-icon-list-items, .vw-post-tag .elementor-post-info { display: flex; justify-content: center; margin: 0; padding: 0; list-style: none; }
.vw-post-tag .elementor-icon-list-item { margin: 0 !important; }
.vw-post-tag .elementor-icon-list-text { padding: 0 !important; border: 0 !important; }
.vw-post-tag { margin-bottom: 18px !important; }
.vw-post-tag a { display: inline-block; padding: 9px 22px; border: 1px solid var(--vw-lake); font-family: 'Work Sans', sans-serif; font-size: 10.5px !important; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; color: var(--vw-coal); text-decoration: none; transition: background .3s var(--vw-ease), color .3s; }
.vw-post-tag a:hover { background: var(--vw-lake); color: #fff; }
.vw-post-title .elementor-heading-title { text-wrap: balance; }
.vw-readtime { font-family: 'Work Sans', sans-serif; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--vw-dark-lake); transition: opacity .4s; }
.vw-readtime:not(.is-ready) { opacity: 0; }
.vw-readtime-wrap { text-align: center; }
/* wide featured image, cropped so the title stays near the top */
.vw-post-feature img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; border-radius: 25px; }
.vw-post-feature { line-height: 0; }
/* reading column */
.vw-post-body { font-family: 'Work Sans', sans-serif; font-size: 17.5px; line-height: 1.9; color: var(--vw-coal); }
.vw-post-body > *:first-child { margin-top: 0; }
.vw-post-body p { margin: 0 0 1.5em; }
.vw-post-body > p:first-of-type::first-letter { float: left; font-family: 'HV Florentino', serif; font-size: 5.1em; line-height: .78; padding: .06em .12em 0 0; color: var(--vw-lake); }
.vw-post-body h2 { font-family: 'HV Florentino', serif; font-weight: 400; font-size: clamp(28px, 3.2vw, 38px); line-height: 1.2; margin: 2.1em 0 .6em; color: var(--vw-coal); }
.vw-post-body h3 { font-family: 'HV Florentino', serif; font-weight: 400; font-size: clamp(22px, 2.4vw, 27px); line-height: 1.3; margin: 1.9em 0 .5em; color: var(--vw-coal); }
.vw-post-body h4 { font-family: 'Work Sans', sans-serif; font-size: 12px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; margin: 2em 0 .6em; color: var(--vw-dark-lake); }
.vw-post-body a { color: var(--vw-dark-lake); text-decoration: underline; text-decoration-color: var(--vw-sky); text-underline-offset: 4px; text-decoration-thickness: 1px; transition: text-decoration-color .3s; }
.vw-post-body a:hover { text-decoration-color: var(--vw-lake); }
.vw-post-body ul, .vw-post-body ol { margin: 0 0 1.7em; padding: 0; list-style: none; counter-reset: vwol; }
.vw-post-body li { position: relative; padding-left: 34px; margin-bottom: .7em; }
.vw-post-body ul li::before { content: ""; position: absolute; left: 6px; top: .85em; width: 7px; height: 7px; border-radius: 50%; background: var(--vw-lake); }
.vw-post-body ol li { counter-increment: vwol; }
.vw-post-body ol li::before { content: counter(vwol, decimal-leading-zero); position: absolute; left: 0; top: .15em; font-family: 'HV Florentino', serif; font-style: italic; font-size: 17px; color: var(--vw-lake); }
.vw-post-body img { max-width: 100%; height: auto; border-radius: 16px; }
.vw-post-body figure { margin: 2.4em 0; }
.vw-post-body figcaption, .vw-post-body .wp-caption-text { margin-top: 12px; font-size: 13px; letter-spacing: .02em; color: var(--vw-dark-lake); text-align: center; }
.vw-post-body hr { border: 0; height: 5px; background: var(--vw-dotline-h); color: var(--vw-lake); margin: 3em 0; }
/* pull quote */
.vw-post-body blockquote { position: relative; margin: 3em -40px; padding: 84px 40px 40px; text-align: center; border-top: 1px solid var(--vw-sky); border-bottom: 1px solid var(--vw-sky); }
.vw-post-body blockquote::before { content: "\201C"; position: absolute; top: 20px; left: 50%; transform: translateX(-50%); font-family: 'HV Florentino', serif; font-size: 130px; line-height: .8; color: var(--vw-lake); }
.vw-post-body blockquote p { font-family: 'HV Florentino', serif; font-style: italic; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.45; color: var(--vw-coal); margin: 0 0 .6em; }
.vw-post-body blockquote cite, .vw-post-body blockquote footer { display: block; font-family: 'Work Sans', sans-serif; font-style: normal; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--vw-dark-lake); }
/* shared appointment CTA */
/* round 13 */
.vw-post-cta .elementor-button, .vw-block-cta .elementor-button { border: 1px solid transparent; box-sizing: border-box; }
.vw-btn-ghost-light .elementor-button { background: transparent !important; border: 1px solid #fff; color: #fff !important; transition: background .3s var(--vw-ease), color .3s; }
.vw-btn-ghost-light .elementor-button:hover { background: #fff !important; color: var(--vw-coal) !important; }
/* elementor posts / archive posts rendered as journal cards */
.vw-post-grid .elementor-post { color: var(--vw-coal); }
.vw-post-grid .elementor-post__card, .vw-post-grid article.elementor-post { background: none; border: 0; box-shadow: none; }
.vw-post-grid .elementor-post__thumbnail__link { position: relative; display: block; overflow: hidden; isolation: isolate; margin: 0; }
.vw-post-grid .elementor-post__thumbnail { position: relative; overflow: hidden; padding-bottom: 100% !important; background: var(--vw-shell); }
.vw-post-grid .elementor-post__thumbnail img { width: 100% !important; height: 100% !important; object-fit: cover; filter: saturate(.85); transition: transform 1.3s var(--vw-ease) !important; }
.vw-post-grid .elementor-post:hover .elementor-post__thumbnail img { transform: translate(-50%, -50%) scale(1.06) !important; }
.vw-post-grid .elementor-post__thumbnail__link::after { content: ""; position: absolute; inset: 0; z-index: 2; padding-top: calc(50% + 40px); text-align: center; color: #fff; font-family: 'Work Sans', sans-serif; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; text-shadow: 0 1px 8px rgba(43, 43, 43, .5); background-color: rgba(43, 43, 43, .16); background-repeat: no-repeat; background-size: 72px 72px; background-position: center calc(50% - 22px); transition: background-color .8s var(--vw-ease); }
.vw-post-grid .elementor-post:hover .elementor-post__thumbnail__link::after { background-color: rgba(43, 43, 43, .28); }
.vw-post-grid .category-alignment .elementor-post__thumbnail__link::after { content: "Alignment"; background-image: url(/wp-content/uploads/vaida-brand/vaida-icon-alignment-white.png); }
.vw-post-grid .category-movement .elementor-post__thumbnail__link::after { content: "Movement"; background-image: url(/wp-content/uploads/vaida-brand/vaida-icon-movement-white.png); }
.vw-post-grid .category-healing .elementor-post__thumbnail__link::after { content: "Healing"; background-image: url(/wp-content/uploads/vaida-brand/vaida-icon-healing-white.png); }
.vw-post-grid .elementor-post__text { position: relative; padding: 26px 0 6px calc(10% + 30px); margin: 0 0 0 2px; }
.vw-post-grid .elementor-post__text::before { content: ""; position: absolute; left: 10%; top: -52px; bottom: -22px; width: 5px; background: var(--vw-dotline-v); color: var(--vw-lake); }
.vw-post-grid .elementor-post__title, .vw-post-grid .elementor-post__title a { font-family: 'Work Sans', sans-serif; font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; line-height: 1.9; color: var(--vw-coal); margin: 0; transition: transform .6s var(--vw-ease), color .4s; }
.vw-post-grid .elementor-post:hover .elementor-post__title a { color: var(--vw-lake); }
.vw-post-grid .elementor-pagination { margin-top: 64px; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.vw-post-grid .elementor-pagination .page-numbers { padding: 8px 8px; border-bottom: 1px solid transparent; color: var(--vw-coal); }
.vw-post-grid .elementor-pagination .page-numbers.current, .vw-post-grid .elementor-pagination .page-numbers:hover { border-color: var(--vw-lake); }
@media (max-width: 1024px) {
  .vw-post-body blockquote { margin-left: 0; margin-right: 0; padding: 62px 12px 32px; }
}
@media (max-width: 767px) {
  .vw-post-body { font-size: 16.5px; line-height: 1.85; }
  .vw-post-feature img { aspect-ratio: 4 / 3; border-radius: 16px; }
  .vw-post-grid .elementor-post__text { padding-left: calc(8% + 26px); }
}

/* centered button text everywhere on phones, CTA buttons go full width */
@media (max-width: 767px) {
  .elementor-widget-button .elementor-button { text-align: center; justify-content: center; }
  .elementor-widget-button .elementor-button-content-wrapper { justify-content: center; }
  .vw-post-cta .elementor-widget-button, .vw-block-cta .elementor-widget-button { width: 100%; }
  .vw-post-cta .elementor-button, .vw-block-cta .elementor-button { width: 100%; }
}

/* === round 13: intro width, nowrap button, global lists === */
.vw-intro p { max-width: 560px; margin-left: auto; margin-right: auto; text-wrap: balance; }
.vw-nowrap .elementor-button, .vw-nowrap .elementor-button-text { white-space: nowrap; }
.elementor-widget-text-editor ul { list-style: none; margin: 0 0 1.5em; padding: 0; }
.elementor-widget-text-editor ul li { position: relative; margin: 0 0 3px; padding-left: 1.15em; }
.elementor-widget-text-editor ul li::before { content: ""; position: absolute; left: 0; top: .72em; width: 5px; height: 5px; border-radius: 0; background: currentColor; opacity: .7; }
.elementor-widget-text-editor ul ul { margin: 3px 0 0; }
.elementor-widget-text-editor ul ul li::before { background: transparent; border: 1px solid currentColor; box-sizing: border-box; }
.elementor-widget-text-editor ul:last-child { margin-bottom: 1.5em; }

/* === round 13: bio pages === */
.vw-bio-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: 25px; display: block; }
.vw-bio-text p { margin: 0 0 1.2em; }
.vw-bio-text p:last-child { margin-bottom: 0; }
.vw-bio-role .elementor-heading-title { letter-spacing: .08em; }
@media (max-width: 767px) { .vw-bio-photo img { aspect-ratio: 1 / 1; } .vw-bio-book .elementor-widget-button { width: 100%; } }

/* === round 13: Favorite Products === */
.vw-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.vw-jump a { display: inline-block; padding: 9px 22px; border: 1px solid var(--vw-lake); font-family: 'Work Sans', sans-serif; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; color: var(--vw-coal); text-decoration: none; transition: background .3s var(--vw-ease), color .3s; }
.vw-jump a:hover { background: var(--vw-lake); color: #fff; }
.vw-recs .recommendations-wrapper h3 { font-family: 'HV Florentino', serif; font-weight: 400; font-size: 30px; line-height: 1.2; color: var(--vw-coal); margin: 72px 0 28px; padding-bottom: 14px; border-bottom: 1px solid var(--vw-sky); scroll-margin-top: 150px; }
.vw-recs .recommendations-grid { gap: 40px; }
.vw-recs .recommendation-item { flex: 0 0 calc(20% - 32px); }
.vw-recs .recommendation-item strong { margin-top: 10px; font-family: 'Work Sans', sans-serif; font-size: 14px; line-height: 1.5; color: var(--vw-coal); }
.vw-recs .recommendation-item a { transition: opacity .3s; }
.vw-recs .recommendation-item a:hover { opacity: .75; }
@media (max-width: 1024px) { .vw-recs .recommendation-item { flex: 0 0 calc(33.333% - 27px); } }
@media (max-width: 767px) { .vw-recs .recommendation-item { flex: 0 0 calc(50% - 20px); } .vw-recs .recommendations-grid { gap: 28px 40px; } .vw-jump { gap: 8px; } .vw-jump a { padding: 8px 14px; } }

/* === round 13: Google reviews button, centered bios === */
.vw-greviews-wrap { display: flex; justify-content: center; margin-top: 18px; }
.vw-greviews { display: inline-flex; align-items: center; gap: 12px; padding: 13px 26px; border: 1px solid var(--vw-lake); background: rgba(255, 255, 255, .55); color: var(--vw-coal); font-family: 'Work Sans', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; transition: background .3s var(--vw-ease), color .3s, border-color .3s; }
.vw-greviews svg { display: block; flex: 0 0 auto; }
.vw-greviews__stars { color: #C9A24B; font-size: 14px; letter-spacing: .12em; line-height: 1; }
.vw-greviews:hover { background: var(--vw-dark-lake); border-color: var(--vw-dark-lake); color: #fff; }
.vw-greviews:hover .vw-greviews__stars { color: #E3C677; }
@media (max-width: 767px) { .vw-greviews { flex-wrap: wrap; justify-content: center; gap: 8px 12px; padding: 14px 18px; width: 100%; box-sizing: border-box; } }
.vw-bio-photo img { aspect-ratio: 4 / 5; }
.vw-bio-text { width: 100%; }

/* === round 13d === */
.vw-greviews:hover, .vw-greviews:hover .vw-greviews__txt { color: #fff !important; }
#sec-google-reviews { margin-top: -56px; }
@media (max-width: 767px) { #sec-google-reviews { margin-top: -36px; } }

.vw-bio-text, .vw-bio-text p { text-align: center !important; }

/* round 13e: step numbers, sprout badge, faq */
.vw-step-no .elementor-heading-title { font-family: 'HV Florentino', serif; font-style: normal; font-size: 26px; letter-spacing: .2em; text-transform: uppercase; line-height: 1; color: #6D7E85; }
.vw-sprout-badge img { display: block; margin: 0 auto; height: auto; }
.vw-block-faq .vw-list .elementor-icon-list-text { font-size: inherit; }

.vw-step-photo { aspect-ratio: auto !important; min-height: 280px; }
.vw-step-photo img { height: 100%; object-fit: cover; }
#sec-faq { padding-top: 120px; }

/* round 14 */
@media (max-width: 767px) { #sec-faq { padding-top: 72px; } }
.vw-tall-media { aspect-ratio: 2 / 3; flex: 0 0 auto; }
.vw-tall-media .elementor-widget-image, .vw-tall-media .elementor-widget-container { height: 100%; }
.vw-tall-media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 25px; }
@media (max-width: 767px) { .vw-tall-media { aspect-ratio: 3 / 4; max-width: 420px; align-self: center; } }
#why-media img { width: 100%; height: 700px; object-fit: cover; display: block; }
@media (max-width: 1024px) { #why-media img { height: auto; aspect-ratio: 4 / 5; } }
/* booking grid */
#schedule-grid { grid-template-columns: repeat(6, 1fr) !important; grid-template-rows: auto !important; }
#sched-1, #sched-2 { grid-column: span 3; }
#sched-4, #sched-5, #sched-6 { grid-column: span 2; }
#sched-1 .vw-photo-tile, #sched-2 .vw-photo-tile { aspect-ratio: 16 / 9; }
@media (max-width: 1024px) { #schedule-grid { grid-template-columns: repeat(2, 1fr) !important; } #sched-1, #sched-2, #sched-4, #sched-5, #sched-6 { grid-column: auto; } #sched-1 .vw-photo-tile, #sched-2 .vw-photo-tile { aspect-ratio: auto; } }
@media (max-width: 767px) { #schedule-grid { grid-template-columns: 1fr !important; } }
/* pregnancy timeline */
.vw-preg-timeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-top: 1px solid #6D7E85; }
.vw-preg-col { padding: 28px 22px 8px; border-right: 1px solid rgba(109,126,133,.35); opacity: 0; transform: translateX(-36px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.vw-preg-col:last-child { border-right: 0; }
.vw-preg-timeline.is-in .vw-preg-col { opacity: 1; transform: none; }
.vw-preg-timeline.is-in .vw-preg-col:nth-child(2) { transition-delay: .18s; }
.vw-preg-timeline.is-in .vw-preg-col:nth-child(3) { transition-delay: .36s; }
.vw-preg-timeline.is-in .vw-preg-col:nth-child(4) { transition-delay: .54s; }
.vw-preg-timeline.is-in .vw-preg-col:nth-child(5) { transition-delay: .72s; }
.vw-preg-col h4 { font-family: 'HV Florentino', serif; font-weight: 400; font-size: 22px; line-height: 1.2; color: #2B2B2B; margin: 0 0 14px; }
.vw-preg-col .vw-preg-big { font-family: 'HV Florentino', serif; font-size: 30px; line-height: 1.1; color: #3D4C52; margin: 0 0 10px; }
.vw-preg-col p { font-family: 'Work Sans', sans-serif; font-size: 15px; line-height: 1.6; color: #2B2B2B; margin: 0 0 10px; }
.vw-preg-col .vw-preg-note { font-size: 13.5px; color: #4a5a60; }
@media (max-width: 1024px) { .vw-preg-timeline { grid-template-columns: repeat(2, 1fr); } .vw-preg-col { border-bottom: 1px solid rgba(109,126,133,.35); } }
@media (max-width: 640px) { .vw-preg-timeline { grid-template-columns: 1fr; } .vw-preg-col { border-right: 0; } }
@media (prefers-reduced-motion: reduce) { .vw-preg-col { opacity: 1; transform: none; transition: none; } }
.vw-preg-timeline { width: min(1180px, calc(100vw - 80px)); position: relative; left: 50%; transform: translateX(-50%); margin-top: 8px; }
.vw-preg-col h4 { text-transform: none; letter-spacing: 0; font-style: normal; }
.vw-preg-col .vw-preg-big { font-style: normal; }
.vw-preg-col p { text-transform: none; letter-spacing: 0; }
@media (max-width: 767px) { .vw-preg-timeline { width: calc(100vw - 48px); } }
.vw-preg-col h4 { text-transform: none !important; letter-spacing: 0 !important; font-size: 22px !important; color: #2B2B2B !important; }
.vw-preg-col .vw-preg-big { font-family: 'Work Sans', sans-serif !important; font-weight: 500; font-size: 20px !important; letter-spacing: 0 !important; color: #3D4C52 !important; line-height: 1.25; }
.vw-preg-col p, .vw-preg-col a { color: #2B2B2B !important; text-decoration: none !important; }
.vw-preg-col .vw-preg-note { color: #4a5a60 !important; }
.vw-step-photo { position: relative; min-height: 340px; align-self: stretch; }
.vw-step-photo .elementor-widget-image { position: absolute; inset: 0; }
.vw-step-photo .elementor-widget-container { height: 100%; }
.vw-step-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* round 14b */
.vw-preg-timeline { width: 100% !important; left: 0 !important; transform: none !important; border-top: 0 !important; margin-top: 0; }
.vw-preg-col { border-right: 1px solid #6D7E85 !important; padding: 8px 24px 8px; }
.vw-preg-col:first-child { padding-left: 0; }
.vw-preg-col:last-child { border-right: 0 !important; }
@media (max-width: 1024px) { .vw-preg-timeline { grid-template-columns: repeat(2, 1fr); } .vw-preg-col { border-right: 0 !important; border-bottom: 1px solid #6D7E85; padding: 20px 8px; } .vw-preg-col:first-child { padding-left: 8px; } }
.vw-step-no .elementor-heading-title { font-size: 12px !important; letter-spacing: .18em !important; word-spacing: 0 !important; }
.vw-step-no { margin-bottom: -4px; }
/* === VAIDA ROUND 15 === */
.vw-ovl { position: relative; }
.vw-ovl::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--ovc, #6D7E85); opacity: var(--ovo, .26); }
.vw-ovl-1 { --ovc: #6D7E85; --ovo: .24; }
.vw-ovl-2 { --ovc: #BCC9CE; --ovo: .34; }
.vw-ovl-3 { --ovc: #3D4C52; --ovo: .18; }
.vw-ovl-4 { --ovc: #A3AEA1; --ovo: .26; }
.vw-offset-media .vw-ovl::after, .vw-tall-media .vw-ovl::after { border-radius: 25px; }
.vw-step-photo:hover img { transform: none !important; }
.elementor .vw-hero-script { transform: rotate(-40deg); transform-origin: 50% 50%; }
.elementor .vw-hero-script .elementor-heading-title { font-size: clamp(38px, 4.3vw, 65px) !important; line-height: .96 !important; }
@media (max-width: 1024px) { .elementor .vw-hero-script { transform: rotate(-40deg) scale(.8); } }
.vw-hdr-sm .elementor-heading-title { font-size: clamp(32px, 3.8vw, 52px) !important; }
#schedule-grid { grid-template-columns: repeat(12, 1fr) !important; }
#sched-1, #sched-2 { grid-column: span 6; }
#sched-3, #sched-4, #sched-5, #sched-6 { grid-column: span 3; }
@media (max-width: 1024px) { #schedule-grid { grid-template-columns: repeat(2, 1fr) !important; } #sched-1, #sched-2, #sched-3, #sched-4, #sched-5, #sched-6 { grid-column: auto; } #sched-1 .vw-photo-tile, #sched-2 .vw-photo-tile { aspect-ratio: auto; } }
@media (max-width: 767px) { #schedule-grid { grid-template-columns: 1fr !important; } }

/* shadows off */
.vw-on-photo .elementor-heading-title, .vw-on-photo, .vw-hero-script .elementor-heading-title, .vw-tile__no .elementor-heading-title, .vw-tile__label .elementor-heading-title { text-shadow: none !important; }

/* === VAIDA ROUND 15d overlays stronger on tall media === */
.elementor .vw-tall-media .vw-ovl-1{--ovo:.42}
.elementor .vw-tall-media .vw-ovl-2{--ovo:.50}
.elementor .vw-tall-media .vw-ovl-3{--ovo:.34}
.elementor .vw-tall-media .vw-ovl-4{--ovo:.42}
.elementor .vw-tall-media .vw-ovl::after{z-index:2;border-radius:25px}

/* === VAIDA ROUND 15e service-page overlay: one color on Chiropractic Services only === */
.elementor .vw-ovl.vw-ovl-svc{--ovc:#B8A58C;--ovo:.34}
.elementor .vw-tall-media .vw-ovl.vw-ovl-svc::after{border-radius:25px}

/* === VAIDA ROUND 16 (Lydia updates) === */
.vw-embeds{margin:0;padding:0;min-height:0}
/* booking cards: equal height per row, buttons pinned to the bottom so every Schedule Here lines up */
#schedule-grid{align-items:stretch!important}
#schedule-grid>[id^="sched-"]{height:100%}
#schedule-grid>[id^="sched-"] .elementor-widget-button{margin-top:auto}
/* footer booking call to action */
.vw-newsletter-body .elementor-widget-button{margin-top:6px}

/* R16 team grid center */
.vw-team-grid.e-con{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:28px!important}
.vw-team-grid>.e-con,.vw-team-grid>.elementor-element{width:calc((100% - 56px)/3)!important;max-width:calc((100% - 56px)/3)}
@media(max-width:1024px){.vw-team-grid>.e-con,.vw-team-grid>.elementor-element{width:calc((100% - 28px)/2)!important;max-width:none}}
@media(max-width:600px){.vw-team-grid>.e-con,.vw-team-grid>.elementor-element{width:100%!important}}

/* R16b footer CTA narrower + chat launcher fix */
@media(min-width:1025px){#footer-newsletter.vw-newsletter{max-width:1000px!important;margin-left:auto!important;margin-right:auto!important}#newsletter-media{flex:0 0 448px!important;width:448px!important}#newsletter-body{flex:1 1 auto!important;width:auto!important}}
.rws-icon-container button.rws-icon{padding:0!important;width:60px!important;height:60px!important;min-width:0!important;border-radius:50%!important;border:0!important;display:flex!important;align-items:center;justify-content:center}
.rws-icon-container button.rws-icon svg{width:28px!important;height:25px!important;flex:none}
#rws-icon-close-btn[style*="display: none"]{display:none!important}

/* R17 intake forms: collapse the pre-consent gap (ReviewWave pre-sizes the hidden form) */
.rw-embed-wrap .rw-slide-wrap:has(> form.rw-hidden){min-height:0!important;height:auto!important}

/* R18 tile order: Club is No. 3 (tile--4), Contact is No. 4 (tile--3). Keep reading order 1,2,3,4 on tablet and phone */
@media(max-width:1024px){.vw-collage.e-con{grid-template-areas:"t1 t1" "t2 t4" "t3 t3"}.vw-tile--4{grid-area:t4;aspect-ratio:1 / 1}.vw-tile--3{grid-area:t3;aspect-ratio:16 / 9}}
@media(max-width:767px){.vw-collage.e-con{grid-template-columns:1fr;grid-template-areas:"t1" "t2" "t4" "t3"}.vw-tile--1,.vw-tile--2,.vw-tile--3,.vw-tile--4{aspect-ratio:16 / 9}}
