.single-post .entry-footer .entry-meta,
.single-post .entry-header .entry-meta {
  display: none;
}
/* ================================================================
   LOGO LINK FIX - works on desktop AND mobile
   ================================================================ */



/* Mobile-specific override - higher specificity */

@media (max-width: 768px) {
  .site-header .site-title a,
  .site-header .site-title a:focus,
  .site-header .site-title a:active,
  .site-header .site-title a:hover {
    background-color: transparent !important;
    outline: none !important;
    box-shadow: none !important;
  }
}

/* ================================================================
   VCOM HOMEPAGE CUSTOM CSS
   ================================================================ */

/* ================================================================
   GLOBAL CLEANUP
   ================================================================ */

html,
body {
  margin: 0 !important;
  padding: 0 !important;
}

body,
.site-container,
.site-inner {
  border-top: none !important;
  margin-top: 0 !important;
}

.front-page .entry-header,
.home .entry-header {
  display: none;
}

body:not(.front-page):not(.home) .site-inner {
  padding-top: 140px;
}

/* ================================================================
   KILL WHITE LINE UNDER HEADER
   ================================================================ */

.featured-section .site-header > .wrap,
.site-header > .wrap,
.nav-secondary {
  border-bottom: none !important;
}

/* ================================================================
   ANCHOR LINK OFFSET
   ================================================================ */

#doctors,
#services,
#locations {
  scroll-margin-top: 140px;
}

/* ================================================================
   FOCUS OUTLINES
   ================================================================ */

#doctors:focus,
#doctors:focus-visible,
#services:focus,
#services:focus-visible,
#locations:focus,
#locations:focus-visible,
#locations:focus-within,
.front-page-1:focus,
.front-page-2:focus,
.front-page-3:focus,
.front-page-4:focus,
.front-page-5:focus,
.front-page-5:focus-within,
.front-page-6:focus,
.front-page-7:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* ================================================================
   LOCATIONS WIDGET (homepage) - text stays bright on dark image
   ================================================================ */

.front-page-5 *,
.front-page-5 *:focus,
.front-page-5 *:focus-within,
.front-page-5 *:focus-visible,
.front-page-5 *:active {
  color: #ffffff !important;
  opacity: 1 !important;
  outline: none !important;
}

.front-page-5 a:hover {
  color: #519ac5 !important;
}

/* ================================================================
   HEADER & NAVIGATION (DEFAULT - non-homepage)
   White header with blue nav links, anchored on every page.
   Homepage overrides below this block.
   ================================================================ */

.site-header {
  background-color: #ffffff !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* Homepage only: transparent header over the hero image at top of page */

.altitude-home .site-header,
.front-page .site-header {
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Once scrolled, homepage header gets the solid background back */

html:not([data-scroll="0"]) .altitude-home .site-header,
html:not([data-scroll="0"]) .front-page .site-header,
.site-header.scrolled {
  background-color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

.site-header::before,
.site-header::after,
.site-header .wrap::before,
.site-header .wrap::after {
  display: none !important;
}

/* Nav links - default brand blue (visible on white header) */

.site-header .genesis-nav-menu > .menu-item > a,
.nav-primary .genesis-nav-menu > .menu-item > a {
  font-weight: 600 !important;
  font-size: 17px !important;
  color: #519ac5 !important;
  text-transform: none !important;
}

/* Homepage hero: white nav links over dark background image, only at top */

.altitude-home .site-header .genesis-nav-menu > .menu-item > a,
.front-page .site-header .genesis-nav-menu > .menu-item > a {
  color: #ffffff !important;
}

/* Once scrolled, homepage nav links go back to brand blue */

html:not([data-scroll="0"]) .altitude-home .site-header .genesis-nav-menu > .menu-item > a,
html:not([data-scroll="0"]) .front-page .site-header .genesis-nav-menu > .menu-item > a,
.site-header.scrolled .genesis-nav-menu > .menu-item > a {
  color: #519ac5 !important;
}

.site-header .genesis-nav-menu .sub-menu a {
  text-transform: none !important;
}

.site-header .genesis-nav-menu a {
  text-decoration: none !important;
  border-bottom: none !important;
}

.site-header .genesis-nav-menu a:hover,
.site-header .genesis-nav-menu .menu-item:hover > a,
.site-header .genesis-nav-menu .current-menu-item > a,
.site-header .genesis-nav-menu .sfHover > a {
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

.site-header .genesis-nav-menu a:focus,
.site-header .genesis-nav-menu .menu-item a:focus,
.site-header .genesis-nav-menu a:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.site-header .genesis-nav-menu a:focus-visible {
  outline: 2px solid #2856a1 !important;
  outline-offset: 2px;
}

/* ================================================================
   RESPONSIVE NAV - smooth desktop to mobile transition
   Genesis theme switches header from fixed to static at 1023px,
   then shows the hamburger at 800px. Match those breakpoints so
   the transition stays smooth without visual jumps.
   ================================================================ */

/* Tablet (1023px): header becomes static, lock it to white everywhere
   including the homepage so it stops looking like it's floating */

@media (max-width: 1023px) {
  .site-header,
  .altitude-home .site-header,
  .front-page .site-header {
    background-color: #ffffff !important;
    position: relative !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
  }

  .site-header .genesis-nav-menu > .menu-item > a,
  .nav-primary .genesis-nav-menu > .menu-item > a,
  .altitude-home .site-header .genesis-nav-menu > .menu-item > a,
  .front-page .site-header .genesis-nav-menu > .menu-item > a {
    color: #519ac5 !important;
  }

  /* Theme already adds 80px top margin at this size, drop our 140px push */

  body:not(.front-page):not(.home) .site-inner {
    padding-top: 0 !important;
  }

  /* Anchor scroll offset shrinks to match the smaller header */

  #doctors,
  #services,
  #locations {
    scroll-margin-top: 80px;
  }
}

/* Mobile (800px): hamburger appears per Genesis theme */

@media (max-width: 800px) {
  .site-header {
    background-color: #ffffff !important;
    padding: 0 !important;
  }

  /* Hamburger button itself - no border line, no focus box on click/tap */

  .menu-toggle,
  .menu-toggle:focus,
  .menu-toggle:focus-visible,
  .menu-toggle:active,
  .menu-toggle:hover,
  .menu-toggle.activated {
    background-color: #ffffff !important;
    color: #519ac5 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
  }

  .menu-toggle::before,
  .menu-toggle.activated::before {
    color: #519ac5 !important;
  }

  /* Sub-menu toggle arrows (next to parent menu items) */

  .sub-menu-toggle,
  .sub-menu-toggle:focus,
  .sub-menu-toggle:focus-visible,
  .sub-menu-toggle:active,
  .sub-menu-toggle:hover {
    background-color: transparent !important;
    color: #519ac5 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  /* Open menu panel - white background, blue links */

  .nav-primary,
  .genesis-nav-menu {
    background-color: #ffffff !important;
  }

  .genesis-responsive-menu .genesis-nav-menu .menu-item a {
    color: #519ac5 !important;
    background-color: #ffffff !important;
    border-bottom: 1px solid #f0f0f0 !important;
    padding: 16px 20px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
  }

  .genesis-responsive-menu .genesis-nav-menu .menu-item a:hover,
  .genesis-responsive-menu .genesis-nav-menu .menu-item a:focus {
    background-color: #f8f9fa !important;
    color: #1a3760 !important;
  }

  .genesis-responsive-menu .genesis-nav-menu .sub-menu a {
    background-color: #f8f9fa !important;
    padding-left: 40px !important;
  }
}

/* ================================================================
   HOMEPAGE: HERO OVERLAY
   Theme provides the background image, this styles the overlay text
   ================================================================ */

.vcom-hero {
  text-align: center;
  padding: 80px 20px;
  max-width: 800px;
  margin: 0 auto;
}

.vcom-hero h1 {
  color: #ffffff !important;
  font-size: 48px !important;
  font-weight: 200 !important;
  margin: 0 0 16px 0 !important;
  line-height: 1.2 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}

.vcom-hero-subtitle {
  color: #ffffff !important;
  font-size: 1.2em !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  margin: 0 0 32px 0 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
  opacity: 0.95;
}

.vcom-hero-cta {
  margin: 0 !important;
}

.vcom-hero-button {
  display: inline-block;
  background: #519ac5;
  color: #ffffff !important;
  border: 2px solid #519ac5;
  padding: 14px 32px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 0;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

.vcom-hero-button:hover {
  background: #1a3760;
  border-color: #1a3760;
  color: #ffffff !important;
}

@media (max-width: 700px) {
  .vcom-hero {
    padding: 60px 20px;
  }

  .vcom-hero h1 {
    font-size: 32px !important;
  }

  .vcom-hero-subtitle {
    font-size: 1.05em !important;
  }
}

/* ================================================================
   HOMEPAGE: SERVICES GRID (new balanced 4+3 layout)
   ================================================================ */

.vcom-services-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 70px 20px;
}

.vcom-services-header {
  text-align: center;
  margin-bottom: 50px;
}

.vcom-services-eyebrow {
  color: #519ac5 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 12px 0 !important;
}

.vcom-services-header h2 {
  color: #1a3760 !important;
  font-size: 36px !important;
  font-weight: 200 !important;
  margin: 0 0 12px 0 !important;
}

.vcom-services-intro {
  color: #555 !important;
  font-size: 1.05em !important;
  max-width: 600px;
  margin: 0 auto !important;
}

.vcom-services-grid-home {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 24px;
}

.vcom-services-row-2,
.vcom-services-row-1 {
  grid-template-columns: repeat(3, 1fr);
  max-width: 75%;
  margin-left: auto;
  margin-right: auto;
}

.vcom-service-card-home {
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  padding: 28px 24px;
  border-radius: 4px;
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.vcom-service-card-home:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  background: #fff;
  color: inherit !important;
}

.vcom-service-card-home h3 {
  margin: 0 0 12px 0 !important;
  color: #1a3760 !important;
  font-size: 1.2em !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
}

.vcom-service-card-home p {
  margin: 0 0 16px 0 !important;
  color: #555 !important;
  font-size: 0.95em !important;
  line-height: 1.5 !important;
}

.vcom-service-link {
  color: #519ac5 !important;
  font-weight: 700 !important;
  font-size: 0.9em !important;
  letter-spacing: 0.5px;
}

/* Keep old .vcom-services styles for backwards compat if any pages still use them */

.vcom-services {
  padding: 60px 20px;
}

.vcom-services h2 {
  margin-bottom: 10px;
}

.vcom-services > p {
  margin-bottom: 50px;
  font-size: 1.1em;
  color: #555;
}

.vcom-services .wp-block-columns {
  display: flex !important;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 30px;
}

.vcom-services .wp-block-column {
  flex: 1 1 calc(25% - 30px);
  min-width: 220px;
  padding: 25px 20px;
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  border-radius: 4px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-services .wp-block-column:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.vcom-services .wp-block-column:empty {
  display: none;
}

.vcom-services .wp-block-column h3 {
  margin: 0 0 12px 0;
  font-size: 1.3em;
}

.vcom-services .wp-block-column h3 a {
  color: #1a3760;
  text-decoration: none;
}

.vcom-services .wp-block-column p {
  margin: 0 0 12px 0;
  font-size: 0.95em;
  line-height: 1.5;
  color: #444;
}

.vcom-services .wp-block-column p:last-child {
  margin-bottom: 0;
}

.vcom-services .wp-block-column p a {
  color: #519ac5;
  font-weight: 600;
  text-decoration: none;
}

/* Mobile responsive for services */

@media (max-width: 900px) {
  .vcom-services-grid-home,
  .vcom-services-row-2,
  .vcom-services-row-1 {
    grid-template-columns: 1fr;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ================================================================
   HOMEPAGE: MEET YOUR DOCTORS
   ================================================================ */

.vcom-doctors {
  padding: 60px 20px;
  background: #f8f9fa;
}

.vcom-doctors h2 {
  margin-bottom: 10px;
}

.vcom-doctors > p {
  margin-bottom: 50px;
  font-size: 1.1em;
  color: #555;
}

.vcom-doctors .wp-block-columns {
  display: flex !important;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 30px;
}

.vcom-doctors .wp-block-column {
  flex: 1 1 calc(25% - 30px);
  min-width: 200px;
  background: #fff;
  padding: 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-doctors .wp-block-column:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

.vcom-doctors .wp-block-column:empty {
  display: none;
  box-shadow: none;
}

.vcom-doctors .wp-block-image {
  margin: 0;
  background: #e9ecef;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.vcom-doctors .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 2;
}

.vcom-doctors .wp-block-image::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #d1d8e0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23fff' d='M50 50c8.3 0 15-6.7 15-15s-6.7-15-15-15-15 6.7-15 15 6.7 15 15 15zm0 7.5c-10 0-30 5-30 15V80h60v-7.5c0-10-20-15-30-15z'/%3E%3C/svg%3E");
  background-size: 60%;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}

.vcom-doctors .wp-block-column h3 {
  margin: 18px 18px 6px 18px;
  font-size: 1.1em;
}

.vcom-doctors .wp-block-column h3 a {
  color: #1a3760;
  text-decoration: none;
}

.vcom-doctors .wp-block-column p {
  margin: 0 18px 18px 18px;
  font-size: 0.9em;
  color: #555;
}

.vcom-doctors .wp-block-column p em {
  font-style: normal;
  color: #2856a1;
  font-weight: 500;
}

.vcom-doctors .wp-block-button__link {
  margin-top: 20px;
}

/* ================================================================
   PATIENT RESOURCES & FAQ PAGES
   ================================================================ */

.vcom-pr {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
}

.vcom-pr-intro {
  font-size: 1.2em !important;
  text-align: center;
  margin: 0 auto 60px !important;
  max-width: 700px;
  color: #555;
}

.vcom-pr-section {
  margin: 60px 0;
}

.vcom-pr-section h2 {
  text-align: center;
  margin-bottom: 12px !important;
  color: #1a3760 !important;
  font-size: 32px !important;
}

.vcom-pr-eyebrow {
  text-align: center;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 10px;
}

.vcom-pr-section-intro {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 40px !important;
  color: #555;
  font-size: 1.05em;
}

.vcom-pr-forms-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}

/* Forms grid 2x2 variant (used for the downloadable forms section) */

.vcom-pr-forms-grid-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

@media (max-width: 700px) {
  .vcom-pr-forms-grid-2col {
    grid-template-columns: 1fr;
  }
}

.vcom-pr-form-card {
  background: #fff;
  border: 1px solid #e0e7ef;
  border-left: 4px solid #519ac5;
  border-radius: 4px;
  padding: 28px;
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-left-color 0.2s ease;
}

.vcom-pr-form-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  border-left-color: #1a3760;
  color: inherit !important;
}

.vcom-pr-form-card .vcom-pr-icon {
  display: inline-block;
  width: 44px;
  height: 44px;
  line-height: 44px;
  text-align: center;
  background: #e8f0f7;
  color: #519ac5;
  border-radius: 50%;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 1px;
  margin-bottom: 16px;
}

.vcom-pr-form-card h3 {
  margin: 0 0 8px 0 !important;
  color: #1a3760 !important;
  font-size: 1.15em !important;
  font-weight: 800 !important;
}

.vcom-pr-form-card p {
  margin: 0 0 16px 0 !important;
  color: #666 !important;
  font-size: 0.95em !important;
  line-height: 1.5 !important;
}

.vcom-pr-download {
  color: #519ac5 !important;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.vcom-pr-newpatient-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
}

.vcom-pr-newpatient-block {
  background: #f8f9fa;
  padding: 32px 28px;
  border-radius: 6px;
}

.vcom-pr-newpatient-block h3 {
  margin: 0 0 20px 0 !important;
  color: #1a3760 !important;
  font-size: 1.2em !important;
  font-weight: 800 !important;
  padding-bottom: 12px;
  border-bottom: 2px solid #e0e7ef;
}

.vcom-pr-newpatient-block ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.vcom-pr-newpatient-block li {
  padding: 8px 0 8px 28px !important;
  position: relative;
  margin: 0 !important;
  border: none !important;
  list-style-type: none !important;
}

.vcom-pr-newpatient-block li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 8px;
  color: #519ac5;
  font-weight: 800;
  font-size: 16px;
}

.vcom-pr-faq-callout {
  background: #fff;
  border: 2px solid #519ac5;
  border-radius: 8px;
  padding: 40px;
  text-align: center;
  margin: 60px 0;
}

.vcom-pr-faq-callout h2 {
  margin-top: 0 !important;
  color: #1a3760 !important;
}

.vcom-pr-faq-callout p {
  max-width: 600px;
  margin: 0 auto 28px !important;
  color: #444 !important;
  font-size: 1.05em !important;
}

.vcom-pr-insurance {
  background: #e8f0f7;
  border-radius: 8px;
  padding: 50px 40px;
  text-align: center;
  margin: 60px 0;
}

.vcom-pr-insurance h2 {
  margin-top: 0 !important;
  color: #1a3760 !important;
}

.vcom-pr-insurance p {
  max-width: 600px;
  margin: 0 auto 28px !important;
  color: #444 !important;
  font-size: 1.05em !important;
}

.vcom-pr-button {
  display: inline-block;
  background: #519ac5 !important;
  color: #fff !important;
  text-decoration: none !important;
  padding: 16px 36px;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 0;
  transition: background 0.2s ease;
}

.vcom-pr-button:hover {
  background: #1a3760 !important;
  color: #fff !important;
}

/* Subheading inside a section (groups forms vs payments) */

.vcom-pr-subhead {
  color: #1a3760 !important;
  font-size: 1.2em !important;
  font-weight: 800 !important;
  margin: 40px 0 20px 0 !important;
  padding-bottom: 8px !important;
  border-bottom: 2px solid #e0e7ef !important;
  text-align: left !important;
}

.vcom-pr-subhead:first-of-type {
  margin-top: 16px !important;
}

/* Help grid - FAQ + Insurance side by side */

.vcom-pr-help-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 40px;
}

.vcom-pr-help-card {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 40px 32px;
  text-align: center;
}

.vcom-pr-help-card h3 {
  color: #1a3760 !important;
  margin: 0 0 16px 0 !important;
  font-size: 1.3em !important;
  font-weight: 800 !important;
}

.vcom-pr-help-card p {
  color: #555 !important;
  margin-bottom: 24px !important;
  line-height: 1.6 !important;
}

@media (max-width: 700px) {
  .vcom-pr-help-grid {
    grid-template-columns: 1fr;
  }
}

.vcom-pr-divider {
  height: 1px;
  background: #e0e7ef;
  border: none;
  margin: 60px auto;
  max-width: 200px;
}

/* ================================================================
   LOCATION PAGES (Bangor, Presque Isle, etc.)
   ================================================================ */

.vcom-loc {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* HERO - image + text side by side */

.vcom-loc-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
  margin-bottom: 50px;
}

.vcom-loc-hero-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

.vcom-loc-hero-content h1 {
  margin: 0 0 16px 0 !important;
  color: #1a3760 !important;
  font-size: 48px !important;
  font-weight: 200 !important;
}

.vcom-loc-hero-content p {
  color: #555;
  font-size: 1.1em;
  line-height: 1.6;
  margin-bottom: 24px;
}

.vcom-loc-eyebrow {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 10px;
}

.vcom-loc-cta-primary,
.vcom-loc-cta-secondary {
  display: inline-block;
  padding: 14px 28px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 0;
  margin-right: 8px;
  margin-bottom: 8px;
  transition: all 0.2s ease;
}

.vcom-loc-cta-primary {
  background: #519ac5;
  color: #fff !important;
  border: 2px solid #519ac5;
}

.vcom-loc-cta-primary:hover {
  background: #1a3760;
  border-color: #1a3760;
  color: #fff !important;
}

.vcom-loc-cta-secondary {
  background: transparent;
  color: #519ac5 !important;
  border: 2px solid #519ac5;
}

.vcom-loc-cta-secondary:hover {
  background: #519ac5;
  color: #fff !important;
}

/* QUICK FACTS BAR */

.vcom-loc-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  background: #f8f9fa;
  border-radius: 8px;
  padding: 32px;
  margin: 50px 0;
}

.vcom-loc-fact-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 8px;
}

.vcom-loc-fact-value {
  color: #1a3760;
  font-weight: 500;
  line-height: 1.5;
}

.vcom-loc-fact-value a {
  color: #1a3760 !important;
  text-decoration: none;
}

/* SECTIONS */

.vcom-loc-section {
  margin: 70px 0;
}

.vcom-loc-section h2 {
  color: #1a3760 !important;
  font-size: 32px !important;
  margin-bottom: 30px !important;
}

.vcom-loc-divider {
  height: 1px;
  background: #e0e7ef;
  border: none;
  margin: 70px auto;
  max-width: 200px;
}

/* SPLIT (text + image side by side) */

.vcom-loc-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}

.vcom-loc-split-reverse .vcom-loc-split-text {
  order: 2;
}

.vcom-loc-split-reverse .vcom-loc-split-image {
  order: 1;
}

.vcom-loc-split-text h2 {
  margin-top: 0 !important;
}

.vcom-loc-split-text p {
  color: #555;
  line-height: 1.7;
  margin-bottom: 16px;
}

.vcom-loc-split-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

/* SERVICES GRID */

.vcom-loc-services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
}

.vcom-loc-service-card {
  background: #fff;
  border: 1px solid #e0e7ef;
  border-left: 4px solid #519ac5;
  border-radius: 4px;
  padding: 24px;
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-loc-service-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  color: inherit !important;
}

.vcom-loc-service-card h3 {
  margin: 0 0 12px 0 !important;
  color: #1a3760 !important;
  font-size: 1.1em !important;
  font-weight: 800 !important;
}

.vcom-loc-card-arrow {
  color: #519ac5 !important;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* DOCTORS GRID */

.vcom-loc-doctors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 24px;
}

.vcom-loc-doctor-card {
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-loc-doctor-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

.vcom-loc-doctor-photo {
  background: #e9ecef;
  aspect-ratio: 1;
  overflow: hidden;
}

.vcom-loc-doctor-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vcom-loc-doctor-card h3 {
  margin: 16px 16px 6px 16px !important;
  color: #1a3760 !important;
  font-size: 1em !important;
  font-weight: 800 !important;
}

.vcom-loc-doctor-card p {
  margin: 0 16px 16px 16px !important;
  color: #2856a1 !important;
  font-size: 0.9em !important;
  font-weight: 500;
}

/* BLENDED SERVICE BLOCKS (heading + content + link in one) */

.vcom-loc-service-block {
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  padding: 36px 40px;
  border-radius: 4px;
  margin-bottom: 24px;
}

.vcom-loc-service-block h3 {
  margin: 0 0 16px 0 !important;
  color: #1a3760 !important;
  font-size: 1.5em !important;
  font-weight: 800 !important;
}

.vcom-loc-service-block p {
  color: #444;
  line-height: 1.7;
  margin-bottom: 16px;
}

.vcom-loc-service-block ul {
  margin: 0 0 16px 24px;
  padding: 0;
}

.vcom-loc-service-block li {
  color: #444;
  line-height: 1.6;
  margin-bottom: 8px;
  list-style-type: disc;
}

.vcom-loc-block-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-bottom: 16px;
}

.vcom-loc-block-link {
  display: inline-block;
  color: #519ac5 !important;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none !important;
  margin-top: 8px;
  transition: color 0.2s ease;
}

.vcom-loc-block-link:hover {
  color: #1a3760 !important;
  text-decoration: underline !important;
}

/* MAP */

.vcom-loc-map {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

/* CTA BLOCK */

.vcom-loc-cta-block {
  background: #1a3760;
  color: #fff;
  border-radius: 8px;
  padding: 60px 40px;
  text-align: center;
  margin: 70px 0;
}

.vcom-loc-cta-block h2 {
  color: #fff !important;
  margin: 0 0 16px 0 !important;
}

.vcom-loc-cta-block p {
  color: #d4e0ec !important;
  max-width: 600px;
  margin: 0 auto 28px !important;
  line-height: 1.6;
}

.vcom-loc-cta-block .vcom-loc-cta-primary {
  background: #fff;
  color: #1a3760 !important;
  border-color: #fff;
}

.vcom-loc-cta-block .vcom-loc-cta-primary:hover {
  background: #519ac5;
  color: #fff !important;
  border-color: #519ac5;
}

/* RESPONSIVE - tablet and mobile */

@media (max-width: 900px) {
  .vcom-loc-hero,
  .vcom-loc-split {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .vcom-loc-split-reverse .vcom-loc-split-text,
  .vcom-loc-split-reverse .vcom-loc-split-image {
    order: initial;
  }

  .vcom-loc-hero-content h1 {
    font-size: 36px !important;
  }

  .vcom-loc-facts {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .vcom-loc-block-columns {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .vcom-loc-service-block {
    padding: 28px 24px;
  }
}

/* ================================================================
   DOCTOR PAGES
   ================================================================ */

.vcom-doc {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* HERO - photo + text side by side */

.vcom-doc-hero {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 50px;
  align-items: center;
  margin-bottom: 50px;
}

.vcom-doc-hero-image {
  background: #e9ecef;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 1;
}

.vcom-doc-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vcom-doc-hero-content h1 {
  margin: 0 0 8px 0 !important;
  color: #1a3760 !important;
  font-size: 42px !important;
  font-weight: 200 !important;
}

.vcom-doc-title {
  color: #519ac5 !important;
  font-weight: 600 !important;
  font-size: 1.1em !important;
  margin: 0 0 20px 0 !important;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.vcom-doc-hero-content p {
  color: #555;
  font-size: 1.05em;
  line-height: 1.6;
  margin-bottom: 20px;
}

.vcom-doc-eyebrow {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 10px;
}

.vcom-doc-cta-primary,
.vcom-doc-cta-secondary {
  display: inline-block;
  padding: 14px 28px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 0;
  margin-right: 8px;
  transition: all 0.2s ease;
}

.vcom-doc-cta-primary {
  background: #519ac5;
  color: #fff !important;
  border: 2px solid #519ac5;
}

.vcom-doc-cta-primary:hover {
  background: #1a3760;
  border-color: #1a3760;
  color: #fff !important;
}

.vcom-doc-cta-secondary {
  background: transparent;
  color: #519ac5 !important;
  border: 2px solid #519ac5;
}

.vcom-doc-cta-secondary:hover {
  background: #519ac5;
  color: #fff !important;
}

/* Quick facts bar */

.vcom-doc-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  background: #f8f9fa;
  border-radius: 8px;
  padding: 32px;
  margin: 50px 0;
}

.vcom-doc-fact-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 8px;
}

.vcom-doc-fact-value {
  color: #1a3760;
  font-weight: 500;
  line-height: 1.5;
}

/* Sections */

.vcom-doc-section {
  margin: 70px 0;
}

.vcom-doc-section h2 {
  color: #1a3760 !important;
  font-size: 32px !important;
  margin-bottom: 16px !important;
}

.vcom-doc-section p {
  color: #444;
  line-height: 1.7;
  margin-bottom: 16px;
}

.vcom-doc-section-intro {
  margin-bottom: 32px !important;
  color: #555 !important;
}

.vcom-doc-divider {
  height: 1px;
  background: #e0e7ef;
  border: none;
  margin: 70px auto;
  max-width: 200px;
}

/* Detail grid (Education blocks) */

.vcom-doc-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 32px;
}

.vcom-doc-detail-block {
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  padding: 24px 28px;
  border-radius: 4px;
}

.vcom-doc-detail-block h3 {
  margin: 0 0 8px 0 !important;
  color: #1a3760 !important;
  font-size: 1.1em !important;
  font-weight: 800 !important;
}

.vcom-doc-detail-block p {
  margin: 0 !important;
  color: #555;
  font-size: 0.95em !important;
}

/* Specialty list */

.vcom-doc-specialty-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 32px 0 0 0 !important;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px 32px;
}

.vcom-doc-specialty-list li {
  padding: 8px 0 8px 32px !important;
  position: relative;
  margin: 0 !important;
  color: #444 !important;
  border: none !important;
  list-style-type: none !important;
}

.vcom-doc-specialty-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 8px;
  color: #519ac5;
  font-weight: 800;
  font-size: 16px;
}

/* Locations grid */

.vcom-doc-locations-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin-top: 32px;
}

.vcom-doc-location-card {
  background: #fff;
  border: 1px solid #e0e7ef;
  border-left: 4px solid #519ac5;
  border-radius: 4px;
  padding: 24px 28px;
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-doc-location-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  color: inherit !important;
}

.vcom-doc-location-card h3 {
  margin: 0 0 8px 0 !important;
  color: #1a3760 !important;
  font-size: 1.15em !important;
  font-weight: 800 !important;
}

.vcom-doc-location-card p {
  margin: 0 0 12px 0 !important;
  color: #555 !important;
  font-size: 0.95em !important;
  line-height: 1.5 !important;
}

.vcom-doc-card-arrow {
  color: #519ac5 !important;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Schedule CTA */

.vcom-doc-cta-block {
  background: #1a3760;
  color: #fff;
  border-radius: 8px;
  padding: 60px 40px;
  text-align: center;
  margin: 70px 0;
}

.vcom-doc-cta-block h2 {
  color: #fff !important;
  margin: 0 0 16px 0 !important;
}

.vcom-doc-cta-block p {
  color: #d4e0ec !important;
  max-width: 600px;
  margin: 0 auto 28px !important;
  line-height: 1.6;
}

.vcom-doc-cta-block .vcom-doc-cta-primary {
  background: #fff;
  color: #1a3760 !important;
  border-color: #fff;
}

.vcom-doc-cta-block .vcom-doc-cta-primary:hover {
  background: #519ac5;
  color: #fff !important;
  border-color: #519ac5;
}

@media (max-width: 900px) {
  .vcom-doc-hero {
    grid-template-columns: 1fr;
    gap: 30px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }

  .vcom-doc-hero-content h1 {
    font-size: 32px !important;
  }

  .vcom-doc-facts {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* ================================================================
   SERVICE PAGES (Cataract, Cornea, Retina, Glaucoma, Primary Eye Care)
   ================================================================ */

.vcom-svc {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* HERO */

.vcom-svc-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
  margin-bottom: 50px;
}

.vcom-svc-hero-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

.vcom-svc-hero-content h1 {
  margin: 0 0 16px 0 !important;
  color: #1a3760 !important;
  font-size: 42px !important;
  font-weight: 200 !important;
}

.vcom-svc-hero-content p {
  color: #555;
  font-size: 1.05em;
  line-height: 1.6;
  margin-bottom: 20px;
}

.vcom-svc-eyebrow {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 10px;
}

.vcom-svc-cta-primary,
.vcom-svc-cta-secondary {
  display: inline-block;
  padding: 14px 28px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 0;
  margin-right: 8px;
  margin-bottom: 8px;
  transition: all 0.2s ease;
  cursor: pointer;
}

.vcom-svc-cta-primary {
  background: #519ac5;
  color: #fff !important;
  border: 2px solid #519ac5;
}

.vcom-svc-cta-primary:hover {
  background: #1a3760;
  border-color: #1a3760;
  color: #fff !important;
}

.vcom-svc-cta-secondary {
  background: transparent;
  color: #519ac5 !important;
  border: 2px solid #519ac5;
}

.vcom-svc-cta-secondary:hover {
  background: #519ac5;
  color: #fff !important;
}

/* Quick facts */

.vcom-svc-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  background: #f8f9fa;
  border-radius: 8px;
  padding: 32px;
  margin: 50px 0;
}

.vcom-svc-fact-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 8px;
}

.vcom-svc-fact-value {
  color: #1a3760;
  font-weight: 500;
  line-height: 1.5;
}

/* Sections */

.vcom-svc-section {
  margin: 70px 0;
}

.vcom-svc-section h2 {
  color: #1a3760 !important;
  font-size: 32px !important;
  margin-bottom: 16px !important;
}

.vcom-svc-section h3 {
  color: #1a3760 !important;
  font-size: 1.3em !important;
  font-weight: 800 !important;
  margin: 16px 0 8px 0 !important;
}

.vcom-svc-section p {
  color: #444;
  line-height: 1.7;
  margin-bottom: 16px;
}

.vcom-svc-section-intro {
  color: #555 !important;
  margin-bottom: 32px !important;
}

.vcom-svc-divider {
  height: 1px;
  background: #e0e7ef;
  border: none;
  margin: 70px auto;
  max-width: 200px;
}

/* Symptom list with strong-tag emphasis */

.vcom-svc-symptom-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 24px 0 !important;
}

.vcom-svc-symptom-list li {
  padding: 12px 0 12px 32px !important;
  position: relative;
  margin: 0 !important;
  color: #444 !important;
  border-bottom: 1px solid #e0e7ef !important;
  list-style-type: none !important;
  line-height: 1.6;
}

.vcom-svc-symptom-list li:last-child {
  border-bottom: none !important;
}

.vcom-svc-symptom-list li::before {
  content: "!";
  position: absolute;
  left: 0;
  top: 12px;
  width: 22px;
  height: 22px;
  line-height: 22px;
  text-align: center;
  background: #519ac5;
  color: #fff;
  border-radius: 50%;
  font-weight: 800;
  font-size: 12px;
}

.vcom-svc-symptom-list li strong {
  color: #1a3760;
}

/* SELF-TEST QUIZ */

.vcom-svc-selftest {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 50px 40px;
  margin: 70px 0;
}

.vcom-svc-selftest h2 {
  color: #1a3760 !important;
}

.vcom-svc-quiz {
  margin-top: 32px;
}

.vcom-svc-quiz-question {
  background: #fff;
  border-radius: 6px;
  padding: 24px 28px;
  margin-bottom: 16px;
  border-left: 4px solid #519ac5;
}

.vcom-svc-quiz-question p {
  margin: 0 0 16px 0 !important;
  color: #1a3760 !important;
  font-size: 1.05em !important;
}

.vcom-svc-quiz-btn {
  display: inline-block;
  background: transparent;
  color: #519ac5 !important;
  border: 2px solid #519ac5;
  padding: 10px 28px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  margin-right: 8px;
  border-radius: 0;
  transition: all 0.2s ease;
}

.vcom-svc-quiz-btn:hover {
  background: #519ac5;
  color: #fff !important;
}

.vcom-svc-quiz-btn.selected {
  background: #519ac5;
  color: #fff !important;
}

.vcom-svc-quiz-result {
  margin-top: 32px;
}

.vcom-svc-quiz-result-box {
  padding: 32px 28px;
  border-radius: 8px;
  text-align: center;
}

.vcom-svc-quiz-result-box.high {
  background: #1a3760;
  color: #fff;
}

.vcom-svc-quiz-result-box.high h3,
.vcom-svc-quiz-result-box.high p {
  color: #fff !important;
}

.vcom-svc-quiz-result-box.high .vcom-svc-cta-primary {
  background: #fff;
  color: #1a3760 !important;
  border-color: #fff;
}

.vcom-svc-quiz-result-box.medium {
  background: #fff;
  border: 2px solid #519ac5;
}

.vcom-svc-quiz-result-box.medium h3 {
  color: #1a3760 !important;
}

.vcom-svc-quiz-result-box.low {
  background: #fff;
  border: 1px solid #e0e7ef;
}

.vcom-svc-quiz-result-box.low h3 {
  color: #1a3760 !important;
}

.vcom-svc-quiz-result-box h3 {
  margin: 0 0 12px 0 !important;
  font-size: 1.4em !important;
}

.vcom-svc-quiz-result-box p {
  margin: 0 0 16px 0 !important;
  line-height: 1.6 !important;
}

/* HIGHLIGHT GRID (procedure benefits) - forced 2x2 */

.vcom-svc-highlight-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 32px;
}

.vcom-svc-highlight {
  background: #f8f9fa;
  padding: 28px 24px;
  border-radius: 6px;
  text-align: center;
}

.vcom-svc-highlight h3 {
  margin: 0 0 12px 0 !important;
  color: #519ac5 !important;
  font-size: 1.2em !important;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.vcom-svc-highlight p {
  margin: 0 !important;
  color: #555 !important;
  font-size: 0.95em !important;
}

@media (max-width: 600px) {
  .vcom-svc-highlight-grid {
    grid-template-columns: 1fr;
  }
}

/* OPTION BLOCKS (lens choices) */

.vcom-svc-option-block {
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  padding: 32px 36px;
  border-radius: 4px;
  margin-bottom: 24px;
}

.vcom-svc-option-block h3 {
  margin: 0 0 12px 0 !important;
  color: #1a3760 !important;
  font-size: 1.4em !important;
  font-weight: 800 !important;
}

.vcom-svc-option-block p {
  color: #444;
  line-height: 1.7;
  margin-bottom: 12px;
}

.vcom-svc-option-block p:last-child {
  margin-bottom: 0;
}

.vcom-svc-option-block strong {
  color: #519ac5;
}

/* DOCTORS GRID (on service pages) */

.vcom-svc-doctors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px;
  margin-top: 32px;
}

.vcom-svc-doctor-card {
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-svc-doctor-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

.vcom-svc-doctor-photo {
  background: #e9ecef;
  aspect-ratio: 1;
  overflow: hidden;
}

.vcom-svc-doctor-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vcom-svc-doctor-card h3 {
  margin: 16px 16px 6px 16px !important;
  color: #1a3760 !important;
  font-size: 1em !important;
  font-weight: 800 !important;
}

.vcom-svc-doctor-card p {
  margin: 0 16px 16px 16px !important;
  color: #2856a1 !important;
  font-size: 0.9em !important;
  font-weight: 500 !important;
}

/* LOCATIONS GRID - forced 2x2 to avoid 3+1 wrap */

.vcom-svc-locations-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 32px;
}

@media (max-width: 600px) {
  .vcom-svc-locations-grid {
    grid-template-columns: 1fr;
  }
}

.vcom-svc-location-card {
  background: #fff;
  border: 1px solid #e0e7ef;
  border-left: 4px solid #519ac5;
  border-radius: 4px;
  padding: 24px 28px;
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-svc-location-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  color: inherit !important;
}

.vcom-svc-location-card h3 {
  margin: 0 0 8px 0 !important;
  color: #1a3760 !important;
  font-size: 1.15em !important;
  font-weight: 800 !important;
}

.vcom-svc-location-card p {
  margin: 0 0 12px 0 !important;
  color: #555 !important;
  font-size: 0.95em !important;
  line-height: 1.5 !important;
}

.vcom-svc-card-arrow {
  color: #519ac5 !important;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* CTA BLOCK */

.vcom-svc-cta-block {
  background: #1a3760;
  color: #fff;
  border-radius: 8px;
  padding: 60px 40px;
  text-align: center;
  margin: 70px 0;
}

.vcom-svc-cta-block h2 {
  color: #fff !important;
  margin: 0 0 16px 0 !important;
}

.vcom-svc-cta-block p {
  color: #d4e0ec !important;
  max-width: 600px;
  margin: 0 auto 28px !important;
  line-height: 1.6;
}

.vcom-svc-cta-block .vcom-svc-cta-primary {
  background: #fff;
  color: #1a3760 !important;
  border-color: #fff;
}

.vcom-svc-cta-block .vcom-svc-cta-primary:hover {
  background: #519ac5;
  color: #fff !important;
  border-color: #519ac5;
}

/* Responsive */

@media (max-width: 900px) {
  .vcom-svc-hero {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .vcom-svc-hero-content h1 {
    font-size: 32px !important;
  }

  .vcom-svc-facts {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .vcom-svc-section h2 {
    font-size: 26px !important;
  }

  .vcom-svc-selftest {
    padding: 32px 24px;
  }

  .vcom-svc-option-block,
  .vcom-svc-quiz-question {
    padding: 24px 20px;
  }
}

/* ================================================================
   LEGAL PAGES (Privacy Policy, Terms, Accessibility)
   ================================================================ */

.vcom-legal {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}

.vcom-legal-header {
  text-align: center;
  margin-bottom: 50px;
  padding-bottom: 32px;
  border-bottom: 1px solid #e0e7ef;
}

.vcom-legal-header h1 {
  color: #1a3760 !important;
  font-size: 42px !important;
  font-weight: 200 !important;
  margin: 0 0 8px 0 !important;
}

.vcom-legal-eyebrow {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #519ac5;
  margin-bottom: 16px;
}

.vcom-legal-updated {
  color: #888 !important;
  font-size: 0.95em !important;
  font-style: italic;
  margin: 16px 0 0 0 !important;
}

.vcom-legal-intro {
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  padding: 24px 28px;
  margin-bottom: 50px;
  border-radius: 4px;
}

.vcom-legal-intro p {
  margin: 0 !important;
  color: #444 !important;
  line-height: 1.7 !important;
  font-size: 1.05em !important;
}

.vcom-legal-section {
  margin-bottom: 50px;
}

.vcom-legal-section h2 {
  color: #1a3760 !important;
  font-size: 24px !important;
  font-weight: 800 !important;
  margin: 0 0 20px 0 !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid #e0e7ef !important;
}

.vcom-legal-section p {
  color: #444;
  line-height: 1.7;
  margin: 0 0 16px 0;
}

.vcom-legal-section ul {
  margin: 0 0 20px 24px !important;
  padding: 0 !important;
}

.vcom-legal-section li {
  color: #444 !important;
  line-height: 1.7;
  margin-bottom: 8px;
  list-style-type: disc !important;
}

.vcom-legal-section a {
  color: #519ac5;
  text-decoration: underline;
}

.vcom-legal-section a:hover {
  color: #1a3760;
}

/* ================================================================
   HIDE PAGE TITLES (Pages only, not blog Posts)
   Each page has its H1 baked into the hero section, so the
   auto-displayed title is redundant. Blog posts still show.
   ================================================================ */

.page .entry-title,
.page .entry-header,
.page .page-header,
.page .entry-meta {
  display: none;
}

.page .entry-content,
.page .entry {
  border-top: none !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* ================================================================
   HOMEPAGE MEET YOUR DOCTORS
   ================================================================ */

.vcom-doctors-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 70px 20px;
}

.vcom-doctors-header {
  text-align: center;
  margin-bottom: 50px;
}

.vcom-doctors-eyebrow {
  color: #519ac5 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 12px 0 !important;
}

.vcom-doctors-header h2 {
  color: #1a3760 !important;
  font-size: 36px !important;
  font-weight: 200 !important;
  margin: 0 0 12px 0 !important;
}

.vcom-doctors-intro {
  color: #555 !important;
  font-size: 1.05em !important;
  max-width: 600px;
  margin: 0 auto !important;
}

.vcom-doctors-grid-home {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 24px;
}

/* Dr. Young's row - single card centered with same width as the others */

.vcom-doctors-row-young {
  grid-template-columns: repeat(3, 1fr);
}

.vcom-doctors-row-young .vcom-doctor-card-home {
  grid-column: 2;
}

/* Featured Dr. Young card - DEPRECATED, kept for backwards compat */

.vcom-doctors-featured {
  margin-bottom: 32px;
}

.vcom-doctor-card-featured {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 28px;
  align-items: stretch;
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  border-top: 4px solid #519ac5;
  text-decoration: none !important;
  color: inherit !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vcom-doctor-card-featured:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  color: inherit !important;
}

.vcom-doctor-featured-photo {
  background: #e9ecef;
  overflow: hidden;
  aspect-ratio: 1;
}

.vcom-doctor-featured-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vcom-doctor-featured-content {
  padding: 24px 28px 24px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vcom-doctor-featured-title {
  color: #519ac5 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 8px 0 !important;
}

.vcom-doctor-card-featured h3 {
  color: #1a3760 !important;
  font-size: 1.25em !important;
  font-weight: 800 !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.2 !important;
}

.vcom-doctor-featured-specialty {
  color: #519ac5 !important;
  font-size: 1em !important;
  font-weight: 600 !important;
  margin: 0 0 16px 0 !important;
}

.vcom-doctor-featured-bio {
  color: #555 !important;
  font-size: 0.95em !important;
  line-height: 1.6 !important;
  margin: 0 0 20px 0 !important;
}

.vcom-doctor-featured-link {
  color: #519ac5 !important;
  font-weight: 800 !important;
  font-size: 0.85em !important;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Keep old vcom-doctors-row-2 for backwards compat but no longer needed */

.vcom-doctors-row-2 {
  grid-template-columns: repeat(3, 1fr);
}

.vcom-doctor-card-home {
  background: #ffffff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  text-decoration: none !important;
  color: inherit !important;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
}

.vcom-doctor-card-home:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  color: inherit !important;
}

.vcom-doctor-photo-home {
  background: #e9ecef;
  aspect-ratio: 1;
  overflow: hidden;
}

.vcom-doctor-photo-home img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vcom-doctor-card-home h3 {
  margin: 16px 12px 4px 12px !important;
  color: #1a3760 !important;
  font-size: 1em !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
}

.vcom-doctor-title {
  color: #519ac5 !important;
  font-size: 0.78em !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin: 0 12px 4px 12px !important;
  line-height: 1.3 !important;
}

.vcom-doctor-specialty {
  color: #555 !important;
  font-size: 0.88em !important;
  font-weight: 500 !important;
  margin: 0 12px 16px 12px !important;
  line-height: 1.3 !important;
}

@media (max-width: 900px) {
  /* Standard 3-doctor rows become 2 columns on tablet (wraps cleanly with 6 total doctors split 3+3) */

  .vcom-doctors-grid-home {
    grid-template-columns: repeat(2, 1fr);
  }

  .vcom-doctors-row-2 {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
  }

  /* Young row - centered card, half-width */

  .vcom-doctors-row-young {
    grid-template-columns: repeat(2, 1fr);
  }

  .vcom-doctors-row-young .vcom-doctor-card-home {
    grid-column: 1 / -1;
    max-width: 50%;
    margin: 0 auto;
  }

  /* Featured card stacks on tablet */

  .vcom-doctor-card-featured {
    grid-template-columns: 1fr;
  }

  .vcom-doctor-featured-photo {
    min-height: 320px;
    max-height: 360px;
  }

  .vcom-doctor-featured-content {
    padding: 24px 28px 28px 28px;
  }
}

@media (max-width: 768px) {
  .vcom-doctors-grid-home,
  .vcom-doctors-row-2 {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }

  .vcom-doctors-row-young .vcom-doctor-card-home {
    max-width: 100%;
    grid-column: 1;
  }

  .vcom-doctor-card-featured h3 {
    font-size: 1.3em !important;
  }
}

/* ================================================================
   HOMEPAGE FINAL CTA SECTION
   Text-on-image layout - widget has its own background image
   ================================================================ */

.vcom-final-cta-section {
  background: transparent;
  padding: 100px 20px;
  margin: 0;
  text-align: center;
}

.vcom-final-cta-content {
  max-width: 700px;
  margin: 0 auto;
}

.vcom-final-cta-eyebrow {
  color: #6dd4f0 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 16px 0 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

.vcom-final-cta-content h2 {
  color: #ffffff !important;
  font-size: 48px !important;
  font-weight: 200 !important;
  margin: 0 0 16px 0 !important;
  line-height: 1.2 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}

.vcom-final-cta-subtitle {
  color: #ffffff !important;
  font-size: 1.15em !important;
  line-height: 1.6 !important;
  margin: 0 0 36px 0 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
  opacity: 0.95;
}

.vcom-final-cta-buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.vcom-final-cta-primary,
.vcom-final-cta-secondary {
  display: inline-block;
  padding: 14px 32px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 0;
  transition: all 0.2s ease;
}

.vcom-final-cta-primary {
  background: #519ac5;
  color: #ffffff !important;
  border: 2px solid #519ac5;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

.vcom-final-cta-primary:hover {
  background: #1a3760;
  color: #ffffff !important;
  border-color: #1a3760;
}

.vcom-final-cta-secondary {
  background: transparent;
  color: #ffffff !important;
  border: 2px solid #ffffff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

.vcom-final-cta-secondary:hover {
  background: #ffffff;
  color: #1a3760 !important;
}

.vcom-final-cta-hours {
  color: #ffffff !important;
  font-size: 0.95em !important;
  margin: 0 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
  opacity: 0.85;
}

@media (max-width: 700px) {
  .vcom-final-cta-section {
    padding: 70px 20px;
  }

  .vcom-final-cta-content h2 {
    font-size: 32px !important;
  }

  .vcom-final-cta-buttons {
    flex-direction: column;
    align-items: center;
  }

  .vcom-final-cta-primary,
  .vcom-final-cta-secondary {
    width: 100%;
    max-width: 280px;
  }
}

/* ================================================================
   HOMEPAGE TESTIMONIALS (WHITE BREAK SECTION)
   ================================================================ */

.vcom-testimonials {
  background: #ffffff;
  padding: 70px 20px;
  margin: 0;
}

.vcom-testimonials-header {
  max-width: 1100px;
  margin: 0 auto 50px;
  text-align: center;
}

.vcom-testimonials-eyebrow {
  color: #519ac5 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 12px 0 !important;
}

.vcom-testimonials-header h2 {
  color: #1a3760 !important;
  font-size: 36px !important;
  font-weight: 200 !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.vcom-testimonials-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.vcom-testimonial {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 32px 28px;
  position: relative;
}

.vcom-testimonial::before {
  content: "\201C";
  position: absolute;
  top: 10px;
  left: 20px;
  font-size: 60px;
  color: #519ac5;
  opacity: 0.2;
  font-family: Georgia, serif;
  line-height: 1;
}

.vcom-testimonial-quote {
  color: #444 !important;
  font-size: 1.02em !important;
  line-height: 1.7 !important;
  margin: 0 0 24px 0 !important;
  position: relative;
  z-index: 1;
}

.vcom-testimonial-attribution {
  margin: 0 !important;
  padding-top: 16px !important;
  border-top: 1px solid #e0e7ef !important;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.vcom-testimonial-name {
  color: #1a3760 !important;
  font-weight: 700;
  font-size: 0.95em;
}

.vcom-testimonial-location {
  color: #519ac5 !important;
  font-size: 0.85em;
  font-weight: 500;
}

@media (max-width: 900px) {
  .vcom-testimonials {
    padding: 50px 20px;
  }

  .vcom-testimonials-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 600px;
  }

  .vcom-testimonials-header h2 {
    font-size: 28px !important;
  }
}

/* ================================================================
   HOMEPAGE ABOUT TEASER (WHITE BREAK SECTION)
   ================================================================ */

.vcom-about-teaser {
  background: #ffffff;
  padding: 70px 20px;
  margin: 0;
}

.vcom-about-teaser-grid {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.vcom-about-teaser-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

.vcom-about-teaser-eyebrow {
  color: #519ac5 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 12px 0 !important;
}

.vcom-about-teaser-content h2 {
  color: #1a3760 !important;
  font-size: 36px !important;
  font-weight: 200 !important;
  margin: 0 0 20px 0 !important;
  line-height: 1.2 !important;
}

.vcom-about-teaser-content p {
  color: #555 !important;
  font-size: 1.05em !important;
  line-height: 1.7 !important;
  margin: 0 0 16px 0 !important;
}

.vcom-about-teaser-cta {
  display: inline-block;
  background: transparent;
  color: #519ac5 !important;
  border: 2px solid #519ac5;
  padding: 12px 28px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 0;
  transition: all 0.2s ease;
  margin-top: 8px;
}

.vcom-about-teaser-cta:hover {
  background: #519ac5;
  color: #fff !important;
}

@media (max-width: 800px) {
  .vcom-about-teaser {
    padding: 50px 20px;
  }

  .vcom-about-teaser-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .vcom-about-teaser-content h2 {
    font-size: 28px !important;
  }
}

/* ================================================================
   HOMEPAGE LOCATIONS SECTION WITH SVG MAINE MAP
   ================================================================ */

.vcom-locations-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 20px;
}

.vcom-locations-header {
  text-align: center;
  margin-bottom: 50px;
}

.vcom-locations-eyebrow {
  color: #6dd4f0 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 12px 0 !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}

.vcom-locations-header h2 {
  color: #ffffff !important;
  font-size: 36px !important;
  font-weight: 200 !important;
  margin: 0 0 12px 0 !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

.vcom-locations-intro {
  color: #ffffff !important;
  font-size: 1.05em !important;
  max-width: 600px;
  margin: 0 auto !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.4);
  opacity: 0.95;
}

.vcom-locations-cards-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
}

/* Top row: 2 cards centered, each spans 2 of 6 columns starting at column 2 */

.vcom-locations-cards-grid .vcom-location-card-home:nth-child(1) {
  grid-column: 2 / span 2;
}

.vcom-locations-cards-grid .vcom-location-card-home:nth-child(2) {
  grid-column: 4 / span 2;
}

/* Bottom row: 3 cards full width, each spans 2 of 6 columns */

.vcom-locations-cards-grid .vcom-location-card-home:nth-child(3) {
  grid-column: 1 / span 2;
}

.vcom-locations-cards-grid .vcom-location-card-home:nth-child(4) {
  grid-column: 3 / span 2;
}

.vcom-locations-cards-grid .vcom-location-card-home:nth-child(5) {
  grid-column: 5 / span 2;
}

/* Old map container - kept for backwards compat */

.vcom-locations-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}

/* SVG Map container */

.vcom-map-container {
  width: 100%;
  background: #f5f1ea;
  border-radius: 8px;
  padding: 20px;
  box-sizing: border-box;
}

.vcom-map-container svg {
  width: 100%;
  height: auto;
  display: block;
  max-height: 600px;
}

/* SVG pin hover effects */

.vcom-svg-pin {
  cursor: pointer;
  transition: transform 0.2s ease;
  transform-origin: center;
}

.vcom-svg-pin:hover {
  transform: scale(1.15);
}

.vcom-svg-pin:hover rect {
  fill: #519ac5;
}

.vcom-svg-pin:hover text {
  fill: #ffffff !important;
}

/* Location cards container (legacy from map version) */

.vcom-location-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.vcom-location-card-home {
  background: #f8f9fa;
  border-left: 4px solid #519ac5;
  padding: 28px 24px;
  border-radius: 4px;
  text-decoration: none !important;
  color: inherit !important;
  transition: all 0.2s ease;
  display: block;
}

.vcom-location-card-home:hover {
  background: #fff;
  border-left-color: #1a3760;
  box-shadow: 0 6px 18px rgba(0,0,0,0.1);
  transform: translateY(-3px);
  color: inherit !important;
}

.vcom-location-card-home h3 {
  color: #1a3760 !important;
  font-size: 1.3em !important;
  font-weight: 800 !important;
  margin: 0 0 12px 0 !important;
}

.vcom-location-card-home p {
  color: #555 !important;
  font-size: 0.95em !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

.vcom-location-phone {
  color: #519ac5 !important;
  font-weight: 800 !important;
  margin-top: 10px !important;
  font-size: 1em !important;
}

/* Mobile responsive */

@media (max-width: 900px) {
  .vcom-locations-cards-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 700px;
  }

  /* Reset all grid-column overrides on tablet */

  .vcom-locations-cards-grid .vcom-location-card-home:nth-child(n) {
    grid-column: auto;
  }

  .vcom-locations-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .vcom-map-container {
    max-width: 450px;
    margin: 0 auto;
  }
}

@media (max-width: 600px) {
  .vcom-locations-cards-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
  }
}

/* ================================================================
   FOOTER WIDGETS AREA (override Genesis theme default teal)
   ================================================================ */

.footer-widgets,
#genesis-footer-widgets {
  background: #519ac5 !important;
  padding: 60px 20px !important;
}

.footer-widgets .wrap,
#genesis-footer-widgets .wrap {
  background: transparent !important;
}

/* ================================================================
   FOOTER (light card on teal background)
   ================================================================ */

.vcom-footer {
  background: #fff;
  color: #555;
  padding: 50px 40px 0;
  border-radius: 8px;
  margin: 0;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

.vcom-footer-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
  padding-bottom: 32px;
}

.vcom-footer-col h3 {
  color: #1a3760 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin: 0 0 20px 0 !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid #519ac5 !important;
}

.vcom-footer-col ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.vcom-footer-col li {
  margin: 0 0 10px 0 !important;
  list-style: none !important;
}

.vcom-footer-col a {
  color: #555 !important;
  text-decoration: none !important;
  font-size: 0.95em;
  transition: color 0.2s ease;
}

.vcom-footer-col a:hover {
  color: #519ac5 !important;
  text-decoration: underline !important;
}

.vcom-footer-phone {
  color: #1a3760 !important;
  font-size: 1.4em !important;
  font-weight: 800 !important;
  margin: 0 0 8px 0 !important;
}

.vcom-footer-hours {
  color: #555 !important;
  font-size: 0.95em !important;
  margin: 0 0 24px 0 !important;
}

/* SOCIAL ICONS - centered, no border, just the logo */

.vcom-footer-social {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.vcom-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: #519ac5 !important;
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  text-decoration: none !important;
  transition: color 0.2s ease, transform 0.2s ease;
}

.vcom-footer-social a svg {
  width: 24px;
  height: 24px;
  display: block;
}

.vcom-footer-social a:hover {
  color: #1a3760 !important;
  background: transparent !important;
  text-decoration: none !important;
  transform: translateY(-2px);
}

.vcom-footer-bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 0;
  border-top: 1px solid #e0e7ef;
  text-align: center;
}

.vcom-footer-bottom p {
  color: #888 !important;
  font-size: 0.85em !important;
  margin: 0 !important;
}

@media (max-width: 800px) {
  .vcom-footer {
    padding: 32px 24px 0;
  }

  .vcom-footer-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ================================================================
   SOCIAL MEDIA SECTION (About page)
   ================================================================ */

.vcom-social-section {
  text-align: center;
}

.vcom-social-section .vcom-svc-section-intro {
  max-width: 600px;
  margin-left: auto !important;
  margin-right: auto !important;
}

.vcom-social-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 800px;
  margin: 32px auto 0 !important;
}

.vcom-social-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #f8f9fa;
  border: 2px solid #e0e7ef;
  padding: 28px 20px;
  border-radius: 8px;
  text-decoration: none !important;
  color: inherit !important;
  transition: all 0.2s ease;
}

.vcom-social-link:hover {
  border-color: #519ac5;
  background: #fff;
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  color: inherit !important;
}

.vcom-social-label {
  color: #1a3760 !important;
  font-weight: 800;
  font-size: 1.1em;
  margin-bottom: 4px;
  letter-spacing: 1px;
}

.vcom-social-handle {
  color: #519ac5 !important;
  font-size: 0.9em;
  font-weight: 500;
}

@media (max-width: 600px) {
  .vcom-social-links {
    grid-template-columns: 1fr;
  }
}

/* ================================================================
   CONTACT FORM
   ================================================================ */

.vcom-contact-form {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 40px 36px;
  margin-top: 32px;
}

.vcom-contact-form form {
  margin: 0;
}

.vcom-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

.vcom-form-field {
  margin-bottom: 20px;
}

.vcom-form-row .vcom-form-field {
  margin-bottom: 0;
}

.vcom-form-field label {
  display: block;
  color: #1a3760 !important;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 8px;
  text-transform: none;
  letter-spacing: 0;
}

.vcom-form-field input[type="text"],
.vcom-form-field input[type="email"],
.vcom-form-field input[type="tel"],
.vcom-form-field select,
.vcom-form-field textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #d0d7de;
  border-radius: 4px;
  background: #fff;
  font-size: 1em;
  font-family: inherit;
  color: #1a3760;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}

.vcom-form-field input:focus,
.vcom-form-field select:focus,
.vcom-form-field textarea:focus {
  outline: none;
  border-color: #519ac5;
  box-shadow: 0 0 0 3px rgba(81, 154, 197, 0.15);
}

.vcom-form-field textarea {
  resize: vertical;
  min-height: 120px;
}

.vcom-form-field select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%231a3760' d='M8 11L3 6h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 16px;
  padding-right: 44px;
}

.vcom-form-disclaimer {
  background: #fff8e1;
  border-left: 4px solid #f59e0b;
  padding: 16px 20px !important;
  border-radius: 4px;
  color: #444 !important;
  font-size: 0.9em !important;
  line-height: 1.5 !important;
  margin: 20px 0 28px 0 !important;
}

.vcom-form-disclaimer strong {
  color: #1a3760;
}

.vcom-contact-form button[type="submit"] {
  background: #519ac5;
  color: #fff !important;
  border: 2px solid #519ac5;
  padding: 14px 36px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: all 0.2s ease;
  font-family: inherit;
}

.vcom-contact-form button[type="submit"]:hover {
  background: #1a3760;
  border-color: #1a3760;
}

@media (max-width: 700px) {
  .vcom-contact-form {
    padding: 28px 20px;
  }

  .vcom-form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .vcom-form-row .vcom-form-field {
    margin-bottom: 20px;
  }
}

/* ================================================================
   RESPONSIVE (general)
   ================================================================ */

@media (max-width: 900px) {
  .vcom-services .wp-block-column,
  .vcom-doctors .wp-block-column {
    flex: 1 1 calc(50% - 30px);
  }
}

@media (max-width: 600px) {
  .vcom-services .wp-block-column,
  .vcom-doctors .wp-block-column {
    flex: 1 1 100%;
  }

  .vcom-pr-section h2 {
    font-size: 26px !important;
  }

  .vcom-pr-insurance,
  .vcom-pr-faq-callout {
    padding: 32px 24px;
  }

  .vcom-pr-form-card {
    padding: 24px;
  }

  .vcom-loc-section h2 {
    font-size: 26px !important;
  }

  .vcom-loc-hero-content h1 {
    font-size: 32px !important;
  }

  .vcom-loc-cta-block {
    padding: 40px 24px;
  }
}