/*
Theme Name:   CVDM Divi Child
Theme URI:    https://www.elegantthemes.com/gallery/divi/
Description:  Divi child theme for Contemporary Virtual Doll Museum — brand colors, typography, and reusable animation utility classes.
Author:       Contemporary Virtual Doll Museum
Author URI:   https://example.com
Template:     Divi
Version:      1.0.0
License:      GNU General Public License v2 or later
Text Domain:  cvdm-divi-child
*/

/* ==========================================================================
   1. BRAND VARIABLES
   ========================================================================== */
:root {
  --cvdm-teal:        #1D91A8;
  --cvdm-teal-dark:   #0E5D70;
  --cvdm-silver:      #B7C0C8;
  --cvdm-charcoal:    #13242C;
  --cvdm-porcelain:   #F6F9FA;
  --cvdm-aqua-tint:   #DFEFF3;

  --cvdm-font-heading: 'Cinzel', serif;
  --cvdm-font-body:    'Montserrat', sans-serif;
  --cvdm-font-accent:  'Montserrat', sans-serif;
  --cvdm-text:         #46565F;

  --cvdm-ease:  cubic-bezier(0.22, 1, 0.36, 1);
  --cvdm-speed: 0.9s;
}

/* ==========================================================================
   2. GLOBAL TYPOGRAPHY
   ========================================================================== */
body,
body #page-container,
.et_pb_module,
.et_pb_text,
.et_pb_blurb_description,
p, li, td, input, textarea, select, label {
  font-family: var(--cvdm-font-body) !important;
  color: var(--cvdm-text);
}

body {
  background-color: var(--cvdm-porcelain);
  font-size: 15px;
  line-height: 1.8;
}

h1, h2, h3, h4,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4,
.et_pb_slide_title, .et_pb_fullwidth_header_title {
  font-family: var(--cvdm-font-heading) !important;
  color: var(--cvdm-charcoal);
  letter-spacing: 0.04em;
  font-weight: 600 !important;
}

/* Color touches so text isn't one flat tone */
strong, b { color: var(--cvdm-teal-dark); font-weight: 600; }
h1 em, h2 em, h3 em, h4 em {
  font-style: normal;
  color: var(--cvdm-teal);
  -webkit-text-fill-color: var(--cvdm-teal);
}
ul li::marker, ol li::marker { color: var(--cvdm-teal); }
::selection { background: var(--cvdm-teal); color: #ffffff; }
.cvdm-section-dark strong, .cvdm-section-dark b { color: #7fc4d4 !important; }
.cvdm-section-dark .cvdm-accent-text p { color: #b9cdd4 !important; }

h5, h6,
.et_pb_module h5, .et_pb_module h6 {
  font-family: var(--cvdm-font-body) !important;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--cvdm-teal);
  font-weight: 500;
}

/* Elegant accent line — assign class: cvdm-accent-text */
.cvdm-accent-text,
.cvdm-accent-text p {
  font-family: var(--cvdm-font-accent) !important;
  font-style: italic;
  font-weight: 400;
  font-size: 1.12em;
  line-height: 1.75;
  letter-spacing: 0.03em;
  color: var(--cvdm-teal-dark);
}

/* Letter-spaced teal eyebrow label — assign class: cvdm-eyebrow */
.cvdm-eyebrow,
.cvdm-eyebrow p, .cvdm-eyebrow h1, .cvdm-eyebrow h2,
.cvdm-eyebrow h3, .cvdm-eyebrow h4, .cvdm-eyebrow h5, .cvdm-eyebrow h6 {
  font-family: var(--cvdm-font-body) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.35em !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--cvdm-teal) !important;
}

a { color: var(--cvdm-teal); }
a:hover { color: var(--cvdm-teal-dark); }

/* ==========================================================================
   3. BUTTONS (Divi buttons, site-wide)
   ========================================================================== */
.et_pb_button,
body .et_pb_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  font-family: var(--cvdm-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 2.5px !important;
  color: #ffffff !important;
  background-color: var(--cvdm-teal) !important;
  border: 1px solid var(--cvdm-teal) !important;
  border-radius: 2px !important;
  padding: 0.9em 2.2em !important;
  transition: all 0.35s var(--cvdm-ease) !important;
}

.et_pb_button:hover,
body .et_pb_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background-color: var(--cvdm-teal-dark) !important;
  border-color: var(--cvdm-teal-dark) !important;
  color: #ffffff !important;
  padding: 0.9em 2.2em !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(14, 93, 112, 0.28);
}

/* Hide Divi's default button hover arrow */
.et_pb_button:after,
body .et_pb_button:after { display: none !important; }

/* Ghost / outline button — assign class: cvdm-btn-ghost */
.cvdm-btn-ghost.et_pb_button,
.cvdm-btn-ghost .et_pb_button {
  background-color: transparent !important;
  color: var(--cvdm-teal-dark) !important;
  border: 1px solid var(--cvdm-teal) !important;
}

.cvdm-btn-ghost.et_pb_button:hover,
.cvdm-btn-ghost .et_pb_button:hover {
  background-color: var(--cvdm-teal) !important;
  color: #ffffff !important;
}

/* Dark button for light-teal sections — assign class: cvdm-btn-dark */
.cvdm-btn-dark.et_pb_button,
.cvdm-btn-dark .et_pb_button {
  background-color: var(--cvdm-charcoal) !important;
  border-color: var(--cvdm-charcoal) !important;
}

/* ==========================================================================
   4. SECTION HELPERS
   ========================================================================== */
/* Assign to a Divi Section: cvdm-section-tint / cvdm-section-dark */
.cvdm-section-tint { background-color: var(--cvdm-aqua-tint) !important; }

.cvdm-section-dark { background-color: var(--cvdm-charcoal) !important; }
.cvdm-section-dark h1, .cvdm-section-dark h2, .cvdm-section-dark h3,
.cvdm-section-dark h4, .cvdm-section-dark p, .cvdm-section-dark li {
  color: #ffffff !important;
}
.cvdm-section-dark h5, .cvdm-section-dark h6 { color: var(--cvdm-teal) !important; }

/* Thin silver divider line — assign class: cvdm-divider */
.cvdm-divider {
  border-top: 1px solid var(--cvdm-silver) !important;
  opacity: 0.6;
}

/* ==========================================================================
   5. ENTRANCE ANIMATIONS (scroll-triggered)
   --------------------------------------------------------------------------
   Assign one class to any Divi section / row / module:
     cvdm-fade-up      — rises up while fading in
     cvdm-fade-down    — drops down while fading in
     cvdm-fade-left    — slides in from the left
     cvdm-fade-right   — slides in from the right
     cvdm-fade-in      — simple fade
     cvdm-zoom-in      — scales up from 92%
     cvdm-blur-in      — sharpens from a soft blur (great for hero images)
     cvdm-reveal-up    — masked curtain reveal (great for headings)

   Optional delay classes (combine with any of the above):
     cvdm-delay-1 … cvdm-delay-6   (0.15s steps)

   Add cvdm-stagger to a ROW to auto-stagger its columns/modules.
   ========================================================================== */

html.cvdm-js .cvdm-fade-up,
html.cvdm-js .cvdm-fade-down,
html.cvdm-js .cvdm-fade-left,
html.cvdm-js .cvdm-fade-right,
html.cvdm-js .cvdm-fade-in,
html.cvdm-js .cvdm-zoom-in,
html.cvdm-js .cvdm-blur-in,
html.cvdm-js .cvdm-reveal-up {
  opacity: 0;
  transition:
    opacity var(--cvdm-speed) var(--cvdm-ease),
    transform var(--cvdm-speed) var(--cvdm-ease),
    filter var(--cvdm-speed) var(--cvdm-ease),
    clip-path var(--cvdm-speed) var(--cvdm-ease);
  will-change: opacity, transform;
}

html.cvdm-js .cvdm-fade-up    { transform: translateY(48px); }
html.cvdm-js .cvdm-fade-down  { transform: translateY(-48px); }
html.cvdm-js .cvdm-fade-left  { transform: translateX(-56px); }
html.cvdm-js .cvdm-fade-right { transform: translateX(56px); }
html.cvdm-js .cvdm-zoom-in    { transform: scale(0.92); }
html.cvdm-js .cvdm-blur-in    { filter: blur(14px); transform: scale(1.02); }
html.cvdm-js .cvdm-reveal-up  {
  transform: translateY(32px);
  clip-path: inset(100% 0 0 0);
}

html.cvdm-js .cvdm-visible {
  opacity: 1 !important;
  transform: none !important;
  filter: blur(0) !important;
  clip-path: inset(0 0 0 0) !important;
}

/* Delay steps */
.cvdm-delay-1 { transition-delay: 0.15s !important; }
.cvdm-delay-2 { transition-delay: 0.30s !important; }
.cvdm-delay-3 { transition-delay: 0.45s !important; }
.cvdm-delay-4 { transition-delay: 0.60s !important; }
.cvdm-delay-5 { transition-delay: 0.75s !important; }
.cvdm-delay-6 { transition-delay: 0.90s !important; }

/* ==========================================================================
   6. HOVER ANIMATIONS
   --------------------------------------------------------------------------
   Assign to any Divi module (blurb, image, column, shop product…):
     cvdm-hover-lift       — card floats up with a soft teal shadow
     cvdm-hover-zoom       — image inside gently zooms (use on Image module)
     cvdm-hover-glow       — teal glow border appears
     cvdm-hover-tilt       — subtle 3D tilt
     cvdm-hover-shine      — light sweep across (use on images/cards)
     cvdm-hover-underline  — elegant growing underline (use on text/links)
     cvdm-hover-fade       — dims to 80% (for galleries)
   ========================================================================== */

.cvdm-hover-lift {
  transition: transform 0.45s var(--cvdm-ease), box-shadow 0.45s var(--cvdm-ease) !important;
}
.cvdm-hover-lift:hover {
  transform: translateY(-10px);
  box-shadow: 0 22px 44px rgba(19, 36, 44, 0.16), 0 0 0 1px var(--cvdm-aqua-tint);
}

.cvdm-hover-zoom { overflow: hidden !important; }
.cvdm-hover-zoom img,
.cvdm-hover-zoom .et_pb_image_wrap img {
  transition: transform 0.8s var(--cvdm-ease) !important;
}
.cvdm-hover-zoom:hover img,
.cvdm-hover-zoom:hover .et_pb_image_wrap img {
  transform: scale(1.07);
}

.cvdm-hover-glow {
  transition: box-shadow 0.4s ease, border-color 0.4s ease !important;
  border: 1px solid transparent;
}
.cvdm-hover-glow:hover {
  border-color: var(--cvdm-teal);
  box-shadow: 0 0 0 1px var(--cvdm-teal), 0 12px 32px rgba(29, 145, 168, 0.25);
}

.cvdm-hover-tilt {
  transition: transform 0.45s var(--cvdm-ease) !important;
  transform-style: preserve-3d;
}
.cvdm-hover-tilt:hover {
  transform: perspective(900px) rotateX(3deg) rotateY(-3deg) translateY(-4px);
}

.cvdm-hover-shine { position: relative; overflow: hidden !important; }
.cvdm-hover-shine::before {
  content: '';
  position: absolute;
  top: 0; left: -80%;
  width: 50%; height: 100%;
  background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.45) 50%, transparent 100%);
  transform: skewX(-20deg);
  transition: left 0.75s var(--cvdm-ease);
  z-index: 2;
  pointer-events: none;
}
.cvdm-hover-shine:hover::before { left: 130%; }

.cvdm-hover-underline { position: relative; display: inline-block; }
.cvdm-hover-underline::after {
  content: '';
  position: absolute;
  left: 0; bottom: -3px;
  width: 0; height: 1px;
  background: var(--cvdm-teal);
  transition: width 0.4s var(--cvdm-ease);
}
.cvdm-hover-underline:hover::after { width: 100%; }

.cvdm-hover-fade {
  transition: opacity 0.35s ease !important;
}
.cvdm-hover-fade:hover { opacity: 0.8; }

/* ==========================================================================
   6b. VIRTUAL TOUR — player + library cards
   ========================================================================== */
.cvdm-tour-section {
  max-width: 960px;
  margin: 3rem auto;
  padding: 0 5%;
  text-align: center;
}
.cvdm-tour-heading {
  font-family: var(--cvdm-font-heading) !important;
  color: var(--cvdm-charcoal);
  letter-spacing: 0.04em;
}
.cvdm-tour-sub {
  font-family: var(--cvdm-font-accent) !important;
  font-style: italic;
  font-size: 1.2em;
  color: var(--cvdm-teal-dark);
  margin-bottom: 1.5rem;
}

/* Responsive 16:9 player wrapper */
.cvdm-player {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: var(--cvdm-charcoal);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(19, 36, 44, 0.22);
}
.cvdm-player iframe,
.cvdm-player video {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: 0;
  object-fit: cover;
}

/* My Tours library grid */
.cvdm-tours-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 28px;
  margin: 2rem 0;
}
.cvdm-tour-card {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.cvdm-tour-card-media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}
.cvdm-tour-card-body {
  padding: 18px 20px 22px;
  text-align: center;
}
.cvdm-tour-card-title {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 20px;
  color: var(--cvdm-charcoal);
  margin: 0 0 14px;
}
.cvdm-tour-card-player {
  padding: 0 16px 18px;
}
.cvdm-tours-empty,
.cvdm-tours-login {
  text-align: center;
  padding: 3rem 1rem;
}
.cvdm-tours-empty .et_pb_button,
.cvdm-tours-login .et_pb_button { margin-top: 1rem; display: inline-block; }

/* ==========================================================================
   6c. FULL-WIDTH LAYOUT — no sidebars anywhere (site-wide)
   -------------------------------------------------------------------------- */
/* Remove Divi's sidebar column on every default template */
#sidebar,
.et_pb_widget_area,
#main-content .container #sidebar {
  display: none !important;
}

/* Content area spans the full row */
#left-area {
  width: 100% !important;
  padding: 0 !important;
  float: none !important;
}

/* Boxed content: sections span the full screen (backgrounds edge-to-edge)
   but rows/content stay centered at a comfortable reading width. */
#main-content .container,
.container.et_menu_container,
.et_pb_row {
  width: 90% !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Force a single-column body class fallback */
body.et_right_sidebar #main-content .container,
body.et_left_sidebar #main-content .container {
  width: 90% !important;
  max-width: 1280px !important;
}

/* WooCommerce: full-width shop / product / cart / account, no sidebar */
.woocommerce #left-area,
.woocommerce-page #left-area { width: 100% !important; }
.woocommerce .et_pb_gutters3 .et_pb_column,
.woocommerce-page .woocommerce-sidebar,
.woocommerce-account .woocommerce-MyAccount-navigation { }
.woocommerce-page #sidebar,
.woocommerce #sidebar { display: none !important; }

/* My Tours page — content area spans the row (row itself stays boxed) */
.page-template-default #left-area { width: 100% !important; }

/* ==========================================================================
   6d. FOOTER — assign classes below to your Divi footer
   --------------------------------------------------------------------------
   SECTION            → cvdm-footer
   TOP ROW (columns)  → cvdm-footer-top cvdm-stagger cvdm-fade-up
   BRAND COLUMN       → cvdm-footer-brand
   EACH LINK COLUMN   → cvdm-footer-col
   COLUMN HEADINGS    → cvdm-footer-heading
   LINK LIST (text/menu module) → cvdm-footer-links
   SOCIAL ICON ROW    → cvdm-footer-social
   NEWSLETTER FORM    → cvdm-footer-newsletter
   BOTTOM BAR ROW     → cvdm-footer-bottom
   ========================================================================== */

.cvdm-footer {
  background-color: var(--cvdm-charcoal) !important;
  /* Very light gradient glows in different areas over the charcoal */
  background-image:
    radial-gradient(60% 70% at 12% 15%, rgba(29, 145, 168, 0.14) 0%, rgba(29, 145, 168, 0) 60%),
    radial-gradient(50% 60% at 88% 85%, rgba(183, 192, 200, 0.10) 0%, rgba(183, 192, 200, 0) 62%),
    radial-gradient(70% 90% at 50% 120%, rgba(29, 145, 168, 0.08) 0%, rgba(29, 145, 168, 0) 70%) !important;
  padding: 5.5rem 0 2rem !important;
  position: relative;
  overflow: hidden;
}

/* Teal gradient hairline across the very top of the footer */
.cvdm-footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--cvdm-teal) 25%, var(--cvdm-silver) 50%, var(--cvdm-teal) 75%, transparent);
  opacity: 0.7;
}

/* Faint decorative diamond accent (echoes the logo) */
.cvdm-footer::after {
  content: '';
  position: absolute;
  top: 26px; left: 50%;
  width: 10px; height: 10px;
  background: var(--cvdm-teal);
  transform: translateX(-50%) rotate(45deg);
  box-shadow: 0 0 18px 2px rgba(29, 145, 168, 0.55);
}

/* Headings on each column */
.cvdm-footer-heading,
.cvdm-footer-heading h1, .cvdm-footer-heading h2, .cvdm-footer-heading h3,
.cvdm-footer-heading h4, .cvdm-footer-heading h5, .cvdm-footer-heading h6,
.cvdm-footer .cvdm-footer-heading {
  font-family: var(--cvdm-font-body) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.28em !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--cvdm-teal) !important;
  margin-bottom: 1.4rem !important;
  padding-bottom: 0.8rem;
  position: relative;
}
.cvdm-footer-heading::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 34px; height: 1px;
  background: var(--cvdm-silver);
  opacity: 0.5;
}

/* Brand column — logo + short tagline */
.cvdm-footer-brand img { max-width: 190px; }
.cvdm-footer-brand .et_pb_image {
  margin-bottom: 0.75rem !important;
  text-align: left;
}
.cvdm-footer-brand,
.cvdm-footer-brand p {
  font-family: var(--cvdm-font-body) !important;
  font-style: normal;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: var(--cvdm-silver) !important;
}

/* Link lists — works for Text module links AND Divi Menu module */
.cvdm-footer-links ul,
.cvdm-footer .et_pb_menu ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.cvdm-footer-links li,
.cvdm-footer .et_pb_menu li {
  margin: 0 0 0.7rem !important;
  border: 0 !important;
  padding: 0 !important;
}
.cvdm-footer-links a,
.cvdm-footer .et_pb_menu a,
.cvdm-footer a {
  position: relative;
  display: inline-block;
  color: #cdd6dc !important;
  font-size: 14px !important;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  transition: color 0.35s var(--cvdm-ease), padding-left 0.35s var(--cvdm-ease);
}
/* Animated growing underline + slight slide on hover */
.cvdm-footer-links a::after,
.cvdm-footer .et_pb_menu a::after {
  content: '';
  position: absolute;
  left: 0; bottom: -3px;
  width: 0; height: 1px;
  background: var(--cvdm-teal);
  transition: width 0.4s var(--cvdm-ease);
}
.cvdm-footer-links a:hover,
.cvdm-footer .et_pb_menu a:hover,
.cvdm-footer a:hover {
  color: #ffffff !important;
  padding-left: 6px;
}
.cvdm-footer-links a:hover::after,
.cvdm-footer .et_pb_menu a:hover::after { width: calc(100% - 6px); }

/* Social icons row — silver circles, teal on hover (overrides Divi brand colors) */
.cvdm-footer-social .et_pb_social_media_follow_network a.icon {
  width: 40px !important;
  height: 40px !important;
  background-color: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(183, 192, 200, 0.35) !important;
  border-radius: 50% !important;
  transition: transform 0.4s var(--cvdm-ease), background-color 0.35s var(--cvdm-ease), border-color 0.35s var(--cvdm-ease) !important;
}
.cvdm-footer-social .et_pb_social_media_follow_network a.icon::before {
  color: var(--cvdm-silver) !important;
  width: 40px !important;
  height: 40px !important;
  line-height: 40px !important;
  font-size: 16px !important;
  transition: color 0.35s var(--cvdm-ease);
}
.cvdm-footer-social .et_pb_social_media_follow_network a.icon:hover {
  background-color: var(--cvdm-teal) !important;
  border-color: var(--cvdm-teal) !important;
  transform: translateY(-4px);
}
.cvdm-footer-social .et_pb_social_media_follow_network a.icon:hover::before {
  color: #ffffff !important;
}

/* Newsletter / email opt-in */
.cvdm-footer-newsletter input[type="text"],
.cvdm-footer-newsletter input[type="email"] {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  color: #fff !important;
  border-radius: 2px !important;
  padding: 0.8em 1em !important;
  transition: border-color 0.35s var(--cvdm-ease), background-color 0.35s var(--cvdm-ease);
}
.cvdm-footer-newsletter input::placeholder { color: rgba(255,255,255,0.5) !important; }
.cvdm-footer-newsletter input:focus {
  border-color: var(--cvdm-teal) !important;
  background: rgba(255,255,255,0.1) !important;
}
.cvdm-footer-newsletter .et_pb_newsletter_form p { margin-bottom: 0.8rem !important; }
.cvdm-footer-newsletter .et_pb_newsletter_button,
.cvdm-footer-newsletter .et_pb_newsletter_button.et_pb_button {
  background-color: var(--cvdm-teal) !important;
  border: 1px solid var(--cvdm-teal) !important;
  color: #ffffff !important;
  width: 100%;
  text-align: center;
}
.cvdm-footer-newsletter .et_pb_newsletter_button:hover {
  background-color: var(--cvdm-teal-dark) !important;
  border-color: var(--cvdm-teal-dark) !important;
}
.cvdm-footer-newsletter .et_pb_newsletter_description { display: none; }

/* Bottom bar */
.cvdm-footer-bottom {
  padding-top: 1.0rem !important;
}
.cvdm-footer-bottom,
.cvdm-footer-bottom p {
  color: rgba(205,214,220,0.7) !important;
  font-size: 12.5px !important;
  letter-spacing: 0.06em;
}
.cvdm-footer-bottom a { color: rgba(205,214,220,0.85) !important; }
.cvdm-footer-bottom a:hover { color: var(--cvdm-teal) !important; }

/* Kill Divi's default bottom footer bar if it shows underneath */
#footer-bottom { display: none !important; }

/* --------------------------------------------------------------------------
 * DIVI INTEGRATION FIXES — make Divi modules behave inside the footer
 * ------------------------------------------------------------------------ */

/* 1. All footer text light by default (Divi sets bg_layout_light = dark text) */
.cvdm-footer .et_pb_text_inner,
.cvdm-footer .et_pb_text_inner p,
.cvdm-footer .et_pb_text_inner span,
.cvdm-footer p,
.cvdm-footer li,
.cvdm-footer .et_pb_bg_layout_light,
.cvdm-footer .et_pb_bg_layout_light .et_pb_text_inner {
  color: #cdd6dc !important;
}

/* 2. Headings — teal, uppercase, spaced (override the light-text rule above) */
.cvdm-footer .cvdm-footer-heading .et_pb_text_inner,
.cvdm-footer .cvdm-footer-heading .et_pb_text_inner p,
.cvdm-footer .cvdm-footer-heading .et_pb_text_inner span {
  color: var(--cvdm-teal) !important;
  font-family: var(--cvdm-font-body) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.28em !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  margin: 0 !important;
}

/* 3. Brand tagline — silver Montserrat */
.cvdm-footer .cvdm-footer-brand .et_pb_text_inner,
.cvdm-footer .cvdm-footer-brand .et_pb_text_inner p,
.cvdm-footer .cvdm-footer-brand .et_pb_text_inner em {
  color: var(--cvdm-silver) !important;
  font-family: var(--cvdm-font-body) !important;
  font-style: normal !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
  letter-spacing: 0.04em;
}

/* 4. Force Divi Menu module into a clean VERTICAL list */
.cvdm-footer .et_pb_menu { background: transparent !important; }
.cvdm-footer .et_pb_menu__menu { text-align: left !important; }
.cvdm-footer .et_pb_menu nav > ul,
.cvdm-footer .et_pb_menu .et-menu.nav {
  display: block !important;
  text-align: left !important;
}
.cvdm-footer .et_pb_menu nav > ul > li,
.cvdm-footer .et_pb_menu .et-menu > li {
  display: block !important;
  float: none !important;
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  border: 0 !important;
}
.cvdm-footer .et_pb_menu nav > ul > li > a,
.cvdm-footer .et_pb_menu .et-menu > li > a {
  padding: 0 !important;
  opacity: 1 !important;
}
/* Hide the duplicate mobile hamburger that Divi menu adds */
.cvdm-footer .et_mobile_nav_menu,
.cvdm-footer .et_pb_menu .mobile_nav { display: none !important; }

/* 5. Social icons spacing */
.cvdm-footer-social { margin-top: 1rem !important; }
.cvdm-footer-social li { margin-right: 10px !important; }

@media (max-width: 767px) {
  .cvdm-footer { padding-top: 4rem !important; text-align: left; }
  .cvdm-footer-heading { text-align: left !important; }
  .cvdm-footer-heading::after { left: 0; transform: none; }
  .cvdm-footer-links a:hover { padding-left: 6px; }
}

/* Footer menu links must stay visible on mobile — Divi's menu module hides
   them and shows a hamburger by default; force the vertical list, hide toggle */
@media (max-width: 980px) {
  .cvdm-footer .et_pb_menu__menu { display: block !important; }
  .cvdm-footer .et_pb_menu__menu nav,
  .cvdm-footer .et_pb_menu__menu nav > ul {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  .cvdm-footer .et_pb_menu__menu nav > ul > li {
    display: block !important;
    float: none !important;
    text-align: left !important;
  }
  .cvdm-footer .et_mobile_nav_menu,
  .cvdm-footer .et_pb_menu .mobile_nav,
  .cvdm-footer .et_pb_menu .et_mobile_menu { display: none !important; }
}

/* ==========================================================================
   6e. CONTACT FORM 7 — brand styling (contact page + footer subscribe)
   ========================================================================== */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  width: 100%;
  font-family: var(--cvdm-font-body) !important;
  font-size: 14px !important;
  color: var(--cvdm-charcoal);
  background: #ffffff;
  border: 1px solid var(--cvdm-silver);
  border-radius: 2px;
  padding: 0.85em 1em;
  margin: 0 0 16px;
  transition: border-color 0.35s var(--cvdm-ease), box-shadow 0.35s var(--cvdm-ease);
  box-sizing: border-box;
}
.wpcf7 form p { margin: 0 0 6px; }
.wpcf7 input:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--cvdm-teal);
  box-shadow: 0 0 0 3px rgba(29, 145, 168, 0.15);
}
.wpcf7 ::placeholder { color: #9aa7ae; }

.wpcf7 input[type="submit"] {
  font-family: var(--cvdm-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 2.5px !important;
  color: #ffffff !important;
  background-color: var(--cvdm-teal) !important;
  border: 1px solid var(--cvdm-teal) !important;
  border-radius: 2px !important;
  padding: 0.95em 2.4em !important;
  cursor: pointer;
  transition: all 0.35s var(--cvdm-ease) !important;
}
.wpcf7 input[type="submit"]:hover {
  background-color: var(--cvdm-teal-dark) !important;
  border-color: var(--cvdm-teal-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(14, 93, 112, 0.28);
}

/* Two-column name/email row on the contact form */
.cvdm-form-row { display: flex; gap: 16px; }
.cvdm-form-row > p { flex: 1; margin: 0 !important; }
@media (max-width: 640px) { .cvdm-form-row { flex-direction: column; gap: 0; } }
.cvdm-contact-form p { margin-bottom: 1rem; }

/* Validation + response messages */
.wpcf7 .wpcf7-not-valid { border-color: #c0392b !important; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 12px; color: #c0392b; margin-top: 4px; }
.wpcf7 .wpcf7-response-output {
  border: 1px solid var(--cvdm-teal) !important;
  border-radius: 2px;
  padding: 0.9em 1.2em !important;
  margin: 1.2em 0 0 !important;
  font-size: 14px;
  color: var(--cvdm-teal-dark);
  background: var(--cvdm-aqua-tint);
}

/* Footer subscribe variant — dark translucent fields, stacked */
.cvdm-footer .wpcf7 input[type="email"] {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}
.cvdm-footer .wpcf7 input[type="email"]:focus {
  border-color: var(--cvdm-teal) !important;
  background: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none;
}
.cvdm-footer .wpcf7 ::placeholder { color: rgba(255, 255, 255, 0.5) !important; }
/* Subscribe form: input on top, button below, both full width */
.cvdm-footer .wpcf7 form { margin: 0; }
.cvdm-footer .wpcf7 br { display: none; }
.cvdm-footer .cvdm-subscribe-form,
.cvdm-footer .cvdm-subscribe-form p {
  display: block !important;
  margin: 0 !important;
  width: 100%;
}
.cvdm-footer .cvdm-subscribe-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.cvdm-footer .wpcf7 input[type="email"] {
  width: 100% !important;
  height: 48px;
  margin: 0 0 12px !important;
}
.cvdm-footer .wpcf7 input[type="submit"] {
  width: 100% !important;
  margin: 0 !important;
  height: 48px;
  padding: 0 24px !important;
}
.cvdm-footer .wpcf7 .wpcf7-response-output {
  background: transparent;
  color: var(--cvdm-silver);
  border-color: rgba(255, 255, 255, 0.25) !important;
}
.cvdm-subscribe-form p { margin-bottom: 0.6rem; }

/* --------------------------------------------------------------------------
   FIX: social icons must not inherit the footer link hover slide/underline
   (this was stretching the circles on hover)
   ------------------------------------------------------------------------ */
.cvdm-footer .cvdm-footer-social a,
.cvdm-footer .cvdm-footer-social a:hover {
  padding-left: 0 !important;
}
.cvdm-footer .cvdm-footer-social a::after { display: none !important; }

/* FIX: keep the brand tagline on one line on desktop */
.cvdm-footer .cvdm-footer-brand .et_pb_text_inner p {
  letter-spacing: 0.02em;
  font-size: 13px !important;
}
@media (min-width: 981px) {
  .cvdm-footer .cvdm-footer-brand .et_pb_text_inner p { white-space: nowrap; }
}

/* ==========================================================================
   6f. PAGE LAYOUT SUPPORT — buttons, blurb cards, shop grid
   ========================================================================== */

/* Button modules sit side by side instead of stacking */
.et_pb_button_module_wrapper {
  display: inline-block !important;
  margin-right: 14px;
  margin-bottom: 10px;
}
.et_pb_button_module_wrapper.et_pb_button_alignment_center { display: block !important; margin-right: 0; }

/* Blurb modules as elegant cards */
.et_pb_blurb.cvdm-hover-lift {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 4px;
  padding: 2.2rem 1.8rem !important;
  height: 100%;
}
.et_pb_blurb.cvdm-hover-lift .et_pb_blurb_container { text-align: left; }
.et_pb_blurb .et_pb_module_header,
.et_pb_blurb .et_pb_module_header a {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 19px !important;
  color: var(--cvdm-charcoal) !important;
  letter-spacing: 0.03em;
  margin-bottom: 0.6rem !important;
}
.et_pb_blurb .et_pb_blurb_description { color: #4a5a63; font-size: 14.5px; line-height: 1.8; }

/* Contact page info blurbs — teal left accent */
.et_pb_section .et_pb_blurb:not(.cvdm-hover-lift) {
  border-left: 2px solid var(--cvdm-teal);
  padding-left: 1.2rem !important;
  margin-bottom: 1.6rem !important;
}

/* Contact info list with mail / phone / location icons */
.cvdm-contact-info {
  list-style: none !important;
  margin: 1.5rem 0 0 !important;
  padding: 0 !important;
}
.cvdm-contact-info li {
  display: flex !important;
  align-items: flex-start;
  gap: 16px;
  margin: 0 0 1.4rem !important;
  padding: 0 !important;
}
.cvdm-contact-info li::before {
  content: "";
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--cvdm-teal);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: 22px 22px;
  mask-size: 22px 22px;
  background-image: none;
}
/* fallback: tint circle + white icon via a second layer */
.cvdm-contact-info li .cvdm-ci-body { padding-top: 2px; }
.cvdm-contact-info li strong {
  display: block;
  color: var(--cvdm-charcoal) !important;
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 2px;
}
.cvdm-contact-info li a,
.cvdm-contact-info li span {
  color: var(--cvdm-text) !important;
  font-size: 14.5px;
  text-decoration: none;
}
.cvdm-contact-info li a:hover { color: var(--cvdm-teal-dark) !important; }

/* Icon glyphs — teal circle background, white icon knocked out via mask */
.cvdm-contact-info li.ci-mail::before,
.cvdm-contact-info li.ci-phone::before,
.cvdm-contact-info li.ci-loc::before {
  background-color: var(--cvdm-aqua-tint);
  position: relative;
}
.cvdm-contact-info li.ci-mail::after,
.cvdm-contact-info li.ci-phone::after,
.cvdm-contact-info li.ci-loc::after {
  content: "";
  position: absolute;
  width: 44px; height: 44px;
  background-color: var(--cvdm-teal-dark);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: 22px 22px; mask-size: 22px 22px;
}
.cvdm-contact-info li { position: relative; }
.cvdm-contact-info li.ci-mail::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 6l10 7 10-7'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 6l10 7 10-7'/%3E%3C/svg%3E");
}
.cvdm-contact-info li.ci-phone::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.3 1.1.4 2.4.6 3.6.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.2.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.3 1.1.4 2.4.6 3.6.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.2.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E");
}
.cvdm-contact-info li.ci-loc::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}

/* Contact page: form card and left content aligned to equal height */
.cvdm-contact-page .cvdm-stagger { align-items: stretch !important; }
.cvdm-contact-page .cvdm-form-card { height: 100%; }

/* WooCommerce shop grid (Divi Shop module + shop archive) */
.cvdm-shop-grid .woocommerce ul.products li.product,
.woocommerce ul.products li.product {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 4px;
  overflow: hidden;
  padding-bottom: 1.2rem !important;
  text-align: center;
  transition: transform 0.45s var(--cvdm-ease), box-shadow 0.45s var(--cvdm-ease);
}
.cvdm-shop-grid .woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(19, 36, 44, 0.14);
}
.woocommerce ul.products li.product img {
  width: 100%;
  margin-bottom: 0.9rem !important;
  transition: transform 0.8s var(--cvdm-ease);
}
.woocommerce ul.products li.product:hover img { transform: scale(1.05); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 18px !important;
  color: var(--cvdm-charcoal) !important;
  padding: 0 1rem;
}
.woocommerce ul.products li.product .price {
  color: var(--cvdm-teal-dark) !important;
  font-family: var(--cvdm-font-body) !important;
  font-size: 15px !important;
  font-weight: 500;
}
.woocommerce ul.products li.product .button {
  margin-top: 0.8rem !important;
}
.woocommerce ul.products li.product .onsale {
  background: var(--cvdm-teal) !important;
  font-family: var(--cvdm-font-body) !important;
  letter-spacing: 1px;
}

/* Hero/section images — soft rounded corners */
.cvdm-blur-in .et_pb_image_wrap,
.cvdm-hover-zoom .et_pb_image_wrap,
.cvdm-hover-shine .et_pb_image_wrap {
  border-radius: 4px;
  overflow: hidden;
}

/* ==========================================================================
   6g. HEADER / NAVIGATION — assign via imported header layout
   --------------------------------------------------------------------------
   SECTION → cvdm-header · ROW → cvdm-header-row · LOGO → cvdm-header-logo
   MENU → cvdm-header-menu · BUTTON → cvdm-header-cta
   ========================================================================== */
.cvdm-header {
  position: sticky !important;
  top: 0;
  z-index: 9999;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(183, 192, 200, 0.3);
  transition: background-color 0.45s var(--cvdm-ease), box-shadow 0.4s var(--cvdm-ease), border-color 0.4s var(--cvdm-ease);
}

/* Transparent overlay mode — JS adds .cvdm-transparent when the page opens
   with a dark hero; the header then floats over the hero. */
.cvdm-header.cvdm-transparent {
  position: absolute !important;
  left: 0; right: 0; top: 0;
  background: transparent !important;
  border-bottom-color: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* Beat Divi's generated section-background rule in the Theme Builder header */
.et-l--header .et_pb_section.cvdm-header.cvdm-transparent:not(.cvdm-scrolled),
.et_pb_section.et_pb_section.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) {
  background-color: transparent !important;
  background-image: none !important;
}
.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) .et_pb_menu .et-menu > li > a {
  color: #e7eef1 !important;
}
.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) .et_pb_menu .et-menu > li > a:hover,
.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) .et_pb_menu .et-menu > li.current-menu-item > a {
  color: #7fc4d4 !important;
}
.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) .mobile_menu_bar:before { color: #ffffff !important; }

/* Scrolled state — compact fixed bar with solid navy background */
.cvdm-header.cvdm-scrolled {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  background: rgba(19, 28, 51, 0.97) !important;
  border-bottom-color: rgba(255, 255, 255, 0.08);
}
.cvdm-header.cvdm-transparent.cvdm-scrolled {
  position: fixed !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  animation: cvdmHeaderDrop 0.45s var(--cvdm-ease);
}
@keyframes cvdmHeaderDrop {
  from { transform: translateY(-100%); }
  to   { transform: translateY(0); }
}

.cvdm-header .cvdm-header-row {
  display: flex;
  align-items: center;
  padding: 12px 0 !important;
  transition: padding 0.4s var(--cvdm-ease);
}
.cvdm-header.cvdm-scrolled .cvdm-header-row { padding: 5px 0 !important; }
.cvdm-header .cvdm-header-row .et_pb_column { margin-bottom: 0 !important; }

/* Logo — footer-sized by default, compact when scrolled */
.cvdm-header-logo { margin-bottom: 0 !important; }
.cvdm-header-logo img {
  max-width: 190px;
  max-height: 110px;
  width: auto;
  transition: max-width 0.4s var(--cvdm-ease), max-height 0.4s var(--cvdm-ease), filter 0.4s ease;
}
.cvdm-header.cvdm-scrolled .cvdm-header-logo img {
  max-width: 105px;
  max-height: none;
}

/* Menu links */
.cvdm-header .et_pb_menu { background: transparent !important; margin-bottom: 0 !important; }
.cvdm-header .et_pb_menu .et-menu > li > a {
  font-family: var(--cvdm-font-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: var(--cvdm-charcoal) !important;
  padding-bottom: 6px !important;
  position: relative;
  transition: color 0.3s ease;
}
.cvdm-header .et_pb_menu .et-menu > li > a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 1px;
  background: var(--cvdm-teal);
  transition: width 0.4s var(--cvdm-ease);
}
.cvdm-header .et_pb_menu .et-menu > li > a:hover,
.cvdm-header .et_pb_menu .et-menu > li.current-menu-item > a {
  color: var(--cvdm-teal) !important;
  opacity: 1 !important;
}
.cvdm-header .et_pb_menu .et-menu > li > a:hover::after,
.cvdm-header .et_pb_menu .et-menu > li.current-menu-item > a::after { width: 100%; }

/* Dropdown submenus */
.cvdm-header .et_pb_menu .sub-menu {
  background: #ffffff !important;
  border: 1px solid var(--cvdm-aqua-tint) !important;
  border-top: 2px solid var(--cvdm-teal) !important;
  box-shadow: 0 16px 36px rgba(19, 36, 44, 0.12);
}
.cvdm-header .et_pb_menu .sub-menu li a { color: var(--cvdm-charcoal) !important; }
.cvdm-header .et_pb_menu .sub-menu li a:hover { color: var(--cvdm-teal) !important; }

/* Compact CTA / account button — padding locked so it never resizes on hover */
.cvdm-header-cta.et_pb_button,
a.cvdm-account-btn.et_pb_button {
  font-size: 12px !important;
  padding: 0.7em 1.7em !important;
  display: inline-block;
}
.cvdm-header-cta.et_pb_button:hover,
a.cvdm-account-btn.et_pb_button:hover {
  padding: 0.7em 1.7em !important;
  transform: translateY(-1px);
}
.cvdm-header .et_pb_button_module_wrapper { margin-bottom: 0 !important; }
.cvdm-header .cvdm-header-account,
.cvdm-header .cvdm-header-account .et_pb_text_inner { text-align: right; }
.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) a.cvdm-account-btn {
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
  color: #ffffff !important;
}
.cvdm-header.cvdm-transparent:not(.cvdm-scrolled) a.cvdm-account-btn:hover {
  background: var(--cvdm-teal) !important;
  border-color: var(--cvdm-teal) !important;
}

/* Mobile */
.cvdm-header .mobile_menu_bar:before { color: var(--cvdm-teal) !important; }
.cvdm-header .et_mobile_menu {
  background: var(--cvdm-porcelain) !important;
  border-top: 2px solid var(--cvdm-teal) !important;
}
.cvdm-header .et_mobile_menu li a {
  font-family: var(--cvdm-font-body) !important;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 13px !important;
  color: var(--cvdm-charcoal) !important;
}
@media (max-width: 980px) {
  .cvdm-header .cvdm-header-row { flex-wrap: wrap; }
  .cvdm-header-logo img { max-height: 54px; }
  .cvdm-header-cta-col { display: none; }
}

/* ==========================================================================
   6h. MODERN DESIGN SKIN — classes used by the imported page layouts
   --------------------------------------------------------------------------
   cvdm-hero          → dark hero with ambient teal glows
   cvdm-display       → oversized gradient headline (Cinzel)
   cvdm-img-frame     → gallery-style framed image with inner border
   cvdm-card-step     → modern card for blurbs (numbered steps / promises)
   cvdm-quote         → elegant pull-quote with teal rule
   cvdm-cta-band      → glowing dark call-to-action band
   cvdm-form-card     → floating white card around a form
   cvdm-eyebrow-lines → eyebrow label with flanking hairlines (centered)
   ========================================================================== */

/* Hero — ambient glows like the footer */
.cvdm-hero {
  background-image:
    radial-gradient(55% 65% at 85% 10%, rgba(29, 145, 168, 0.18) 0%, rgba(29, 145, 168, 0) 60%),
    radial-gradient(45% 60% at 8% 90%, rgba(183, 192, 200, 0.10) 0%, rgba(183, 192, 200, 0) 62%) !important;
  position: relative;
  overflow: hidden;
}
.cvdm-hero h1 {
  font-size: clamp(2.4rem, 4.6vw, 4rem) !important;
  line-height: 1.12 !important;
}
.cvdm-hero .cvdm-accent-text p { font-size: 1.05em; line-height: 1.75; }
.cvdm-hero .cvdm-badge { margin-bottom: 1.2rem !important; }

/* Oversized gradient display headings */
.cvdm-display h1,
.cvdm-display h2 {
  background: linear-gradient(115deg, var(--cvdm-charcoal) 30%, var(--cvdm-teal) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-bottom: 0.1em;
}
.cvdm-section-dark .cvdm-display h1,
.cvdm-section-dark .cvdm-display h2 {
  background: linear-gradient(115deg, #ffffff 25%, #cfd8de 55%, #7fc4d4 95%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Section heading scale (builder content only) */
.et-l .et_pb_section h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.2; }

/* Framed images — gallery exhibit feel */
.cvdm-img-frame .et_pb_image_wrap {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 30px 70px rgba(19, 36, 44, 0.22);
  width: 100%;
}
/* Balanced heights: tall photos crop to a pleasant frame instead of
   towering next to short text columns */
.cvdm-img-frame .et_pb_image_wrap img {
  width: 100%;
  max-height: 500px;
  object-fit: cover;
  object-position: center 22%;
  display: block;
}
.cvdm-hero .cvdm-img-frame .et_pb_image_wrap img { max-height: 560px; }
.cvdm-photo .et_pb_image_wrap img { max-height: none; }
@media (max-width: 980px) {
  .cvdm-img-frame .et_pb_image_wrap img { max-height: 360px; }
  .cvdm-hero .cvdm-img-frame .et_pb_image_wrap img { max-height: 400px; }
}
.cvdm-img-frame .et_pb_image_wrap::after {
  content: '';
  position: absolute;
  top: 14px; right: 14px; bottom: 14px; left: 14px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 3px;
  pointer-events: none;
  z-index: 3;
}
.cvdm-hero .cvdm-img-frame .et_pb_image_wrap { box-shadow: 0 34px 80px rgba(0, 0, 0, 0.45); }

/* Step / promise cards */
.et_pb_blurb.cvdm-card-step {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 6px;
  padding: 2.4rem 2rem !important;
  box-shadow: 0 8px 28px rgba(19, 36, 44, 0.06);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.et_pb_blurb.cvdm-card-step::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--cvdm-teal), rgba(29, 145, 168, 0));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--cvdm-ease);
}
.et_pb_blurb.cvdm-card-step:hover::before { transform: scaleX(1); }

/* Pull-quote */
.cvdm-quote p {
  font-family: var(--cvdm-font-accent) !important;
  font-style: italic;
  font-size: 1.5em !important;
  line-height: 1.5 !important;
  color: var(--cvdm-teal-dark) !important;
  border-left: 2px solid var(--cvdm-teal);
  padding-left: 1.4rem;
}
.cvdm-section-dark .cvdm-quote p { color: var(--cvdm-silver) !important; }

/* CTA band — glowing dark strip */
.cvdm-cta-band {
  background-image:
    radial-gradient(60% 90% at 50% 115%, rgba(29, 145, 168, 0.22) 0%, rgba(29, 145, 168, 0) 65%),
    radial-gradient(35% 55% at 90% 0%, rgba(183, 192, 200, 0.08) 0%, rgba(183, 192, 200, 0) 60%) !important;
  position: relative;
  overflow: hidden;
}
.cvdm-cta-band h2 { font-size: clamp(2rem, 3.4vw, 2.9rem) !important; }

/* Floating form card */
.cvdm-form-card {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-top: 3px solid var(--cvdm-teal);
  border-radius: 6px;
  padding: 2.4rem !important;
  box-shadow: 0 26px 64px rgba(19, 36, 44, 0.12);
}

/* Eyebrow with flanking hairlines (use on centered eyebrows) */
.cvdm-eyebrow-lines p {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.cvdm-eyebrow-lines p::before,
.cvdm-eyebrow-lines p::after {
  content: '';
  height: 1px;
  width: 52px;
  background: var(--cvdm-silver);
  opacity: 0.6;
}

/* ==========================================================================
   6i. UTILITY CLASS LIBRARY — assign in Divi, CSS/JS does the rest
   --------------------------------------------------------------------------
   TEXT COLOR:   cvdm-text-teal · cvdm-text-teal-dark · cvdm-text-silver ·
                 cvdm-text-white · cvdm-text-gradient
   BACKGROUND:   cvdm-bg-tint · cvdm-bg-white · cvdm-bg-glow-dark
   MOTION (JS):  cvdm-marquee (scrolling strip) · cvdm-counter (count-up
                 numbers) · cvdm-parallax (slow drift on scroll) ·
                 cvdm-kenburns (slow image zoom) · cvdm-slider (auto
                 fade-rotate children)
   DECOR:        cvdm-flourish (line + diamond under heading) ·
                 cvdm-badge (small teal pill) · cvdm-overlay-card (text
                 over image) · cvdm-divider-soft
   ========================================================================== */

/* Text colors */
.cvdm-text-teal, .cvdm-text-teal p, .cvdm-text-teal h1, .cvdm-text-teal h2,
.cvdm-text-teal h3, .cvdm-text-teal h4 { color: var(--cvdm-teal) !important; }
.cvdm-text-teal-dark, .cvdm-text-teal-dark p { color: var(--cvdm-teal-dark) !important; }
.cvdm-text-silver, .cvdm-text-silver p { color: var(--cvdm-silver) !important; }
.cvdm-text-white, .cvdm-text-white p, .cvdm-text-white h1, .cvdm-text-white h2,
.cvdm-text-white h3 { color: #ffffff !important; }
.cvdm-text-gradient h1, .cvdm-text-gradient h2, .cvdm-text-gradient h3,
.cvdm-text-gradient p {
  background: linear-gradient(115deg, var(--cvdm-teal) 10%, var(--cvdm-teal-dark) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Backgrounds */
.cvdm-bg-tint { background-color: var(--cvdm-aqua-tint) !important; }
.cvdm-bg-white { background-color: #ffffff !important; }
.cvdm-bg-glow-dark {
  background-color: var(--cvdm-charcoal) !important;
  background-image:
    radial-gradient(55% 65% at 80% 10%, rgba(29, 145, 168, 0.16) 0%, rgba(29, 145, 168, 0) 60%),
    radial-gradient(45% 60% at 10% 90%, rgba(183, 192, 200, 0.09) 0%, rgba(183, 192, 200, 0) 62%) !important;
}

/* Marquee — put on a Text module; its content scrolls endlessly */
.cvdm-marquee { overflow: hidden !important; white-space: nowrap; }
.cvdm-marquee .cvdm-marquee-track {
  display: inline-flex;
  gap: 3rem;
  animation: cvdmMarquee 28s linear infinite;
  will-change: transform;
}
.cvdm-marquee:hover .cvdm-marquee-track { animation-play-state: paused; }
@keyframes cvdmMarquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Counter — wrap numbers in a Text module: <span class="cvdm-count" data-target="120">0</span> */
.cvdm-counter .cvdm-count {
  font-family: var(--cvdm-font-heading) !important;
  font-weight: 600;
  font-size: 2.6em;
  color: var(--cvdm-teal);
}

/* Parallax drift — element translates slowly against scroll */
.cvdm-parallax { will-change: transform; }

/* Ken Burns — slow permanent zoom for imagery */
.cvdm-kenburns { overflow: hidden !important; }
.cvdm-kenburns img {
  animation: cvdmKenburns 18s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes cvdmKenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.12) translate(1.5%, -1.5%); }
}

/* Slider — direct children fade-rotate automatically (JS drives it) */
.cvdm-slider { position: relative; }
.cvdm-slider > * {
  opacity: 0;
  transition: opacity 0.9s var(--cvdm-ease);
  position: absolute !important;
  inset: 0;
  pointer-events: none;
}
.cvdm-slider > .cvdm-slide-active {
  opacity: 1;
  position: relative !important;
  pointer-events: auto;
}

/* Flourish — centered line + diamond under a heading module */
.cvdm-flourish { position: relative; padding-bottom: 26px !important; }
.cvdm-flourish::after {
  content: '';
  position: absolute;
  left: 50%; bottom: 10px;
  width: 8px; height: 8px;
  background: var(--cvdm-teal);
  transform: translateX(-50%) rotate(45deg);
}
.cvdm-flourish::before {
  content: '';
  position: absolute;
  left: 50%; bottom: 13px;
  width: 140px; height: 1px;
  background: var(--cvdm-silver);
  transform: translateX(-50%);
  opacity: 0.6;
}

/* Badge — small teal pill (wrap words in a span or put on small Text module) */
.cvdm-badge, .cvdm-badge p {
  display: inline-block;
  background: var(--cvdm-teal);
  color: #ffffff !important;
  font-size: 10.5px !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.3px;
  padding: 1px 16px;
  border-radius: 999px;
  margin: 0 !important;
}

/* Overlay card — put on an Image module; caption slides up over it */
.cvdm-overlay-card { position: relative; overflow: hidden !important; border-radius: 6px; }
.cvdm-overlay-card::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(19, 36, 44, 0.85) 0%, rgba(19, 36, 44, 0) 55%);
  opacity: 0;
  transition: opacity 0.5s var(--cvdm-ease);
}
.cvdm-overlay-card:hover::after { opacity: 1; }

/* Soft divider */
.cvdm-divider-soft {
  border: 0 !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, var(--cvdm-silver), transparent) !important;
  opacity: 0.55;
}

/* ==========================================================================
   8. SKIN V2 — LOVABLE DESIGN SYSTEM (overrides earlier rules)
   --------------------------------------------------------------------------
   Warm cream + deep navy + teal · pill buttons with glow · 16px cards ·
   Cinzel bold headings · dark glowing hero/footer · big logo
   ========================================================================== */
:root {
  --cvdm-teal:       #2F9EB8;
  --cvdm-teal-dark:  #1B7A91;
  --cvdm-silver:     #B9C3CE;
  --cvdm-charcoal:   #1F2A44;   /* deep navy */
  --cvdm-porcelain:  #FAF8F2;   /* warm cream */
  --cvdm-aqua-tint:  #E6E1D3;   /* warm hairline border */
  --cvdm-sand:       #F5F1E6;   /* alternate section bg */
  --cvdm-text:       #57627B;   /* muted navy body text */
  --cvdm-glow:       rgba(47, 158, 184, 0.4);
}

body { background-color: var(--cvdm-porcelain); }

/* Headings — Cinzel bold, Lovable scale */
h1, h2, h3, h4,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4 {
  font-weight: 700 !important;
  letter-spacing: 0.02em;
}
.et-l .et_pb_section h1 { font-size: clamp(2.6rem, 5.4vw, 4.5rem) !important; line-height: 1.08 !important; }
.et-l .et_pb_section h2 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.15; }

/* Tint sections become warm sand */
.cvdm-section-tint { background-color: var(--cvdm-sand) !important; }

/* Eyebrows — Lovable tracking */
.cvdm-eyebrow, .cvdm-eyebrow p { font-size: 12px !important; letter-spacing: 0.35em !important; }

/* ----- PILL BUTTONS WITH GLOW (site-wide) ----- */
.et_pb_button,
body .et_pb_button,
.wpcf7 input[type="submit"],
.woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce div.product form.cart .single_add_to_cart_button {
  border-radius: 4px !important;
  padding: 0.85em 2.1em !important;
  background-color: var(--cvdm-teal) !important;
  border: 1px solid var(--cvdm-teal) !important;
  box-shadow: 0 4px 20px var(--cvdm-glow);
  letter-spacing: 2px !important;
}
.et_pb_button:hover,
body .et_pb_button:hover,
.wpcf7 input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background-color: var(--cvdm-teal-dark) !important;
  border-color: var(--cvdm-teal-dark) !important;
  box-shadow: 0 8px 34px var(--cvdm-glow), 0 0 60px rgba(47, 158, 184, 0.25);
  transform: translateY(-2px);
  padding: 0.85em 2.1em !important;
}
.cvdm-btn-ghost.et_pb_button, .cvdm-btn-ghost .et_pb_button {
  background-color: transparent !important;
  border: 1px solid var(--cvdm-aqua-tint) !important;
  color: var(--cvdm-charcoal) !important;
  box-shadow: none;
}
.cvdm-btn-ghost.et_pb_button:hover, .cvdm-btn-ghost .et_pb_button:hover {
  background-color: #ffffff !important;
  border-color: var(--cvdm-teal) !important;
  color: var(--cvdm-teal-dark) !important;
  box-shadow: 0 6px 24px rgba(31, 42, 68, 0.1);
}
.cvdm-section-dark .cvdm-btn-ghost.et_pb_button,
.cvdm-section-dark .cvdm-btn-ghost .et_pb_button {
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #ffffff !important;
}
.cvdm-section-dark .cvdm-btn-ghost.et_pb_button:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
}
.cvdm-header-cta.et_pb_button, a.cvdm-account-btn.et_pb_button {
  padding: 0.65em 1.6em !important;
  box-shadow: 0 3px 14px var(--cvdm-glow);
}
.cvdm-header-cta.et_pb_button:hover, a.cvdm-account-btn.et_pb_button:hover {
  padding: 0.65em 1.6em !important;
}

/* ----- CARDS — 16px radius, warm border, big hover shadow ----- */
.et_pb_blurb.cvdm-card-step,
.cvdm-form-card,
.cvdm-tour-card {
  border-radius: 16px !important;
  border-color: var(--cvdm-aqua-tint) !important;
}
.et_pb_blurb.cvdm-card-step,
.et_pb_blurb.cvdm-card-step:hover { box-shadow: none !important; }
.cvdm-img-frame .et_pb_image_wrap { border-radius: 16px; }
.cvdm-img-frame .et_pb_image_wrap::after { border-radius: 12px; }

/* ----- HERO stats row (use inside a Text module) ----- */
.cvdm-stats { display: flex; gap: 3rem; flex-wrap: wrap; margin-top: 2.2rem; }
.cvdm-stats > div { display: flex; flex-direction: column; }
.cvdm-stats .cvdm-count,
.cvdm-stats .cvdm-stat-static {
  font-family: var(--cvdm-font-heading) !important;
  font-weight: 700;
  font-size: 2.1rem;
  color: var(--cvdm-teal);
  line-height: 1.2;
}
.cvdm-stats small {
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 1.8px;
  color: var(--cvdm-silver);
}
/* Centered stat row variant */
.cvdm-stats-center .cvdm-stats,
.cvdm-stats.cvdm-stats-center {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start;
  flex-wrap: wrap;
  text-align: center !important;
  width: 100%;
  gap: 2.5rem 3.5rem;
  margin-top: 0 !important;
}
.cvdm-stats-center .cvdm-stats > div {
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  text-align: center !important;
  flex: 0 1 190px;
}
.cvdm-stats-center .cvdm-stats .cvdm-count,
.cvdm-stats-center .cvdm-stats .cvdm-stat-static {
  font-size: 2.6rem;
  display: block;
  width: 100%;
  text-align: center;
}
.cvdm-stats-center .cvdm-stats small { display: block; width: 100%; text-align: center; }
@media (max-width: 640px) {
  .cvdm-stats-center .cvdm-stats { gap: 1.8rem 1.2rem; }
  .cvdm-stats-center .cvdm-stats > div { flex: 0 1 42%; }
}

/* ----- PRICING / PASS CARD (HTML inside a Text module) ----- */
.cvdm-price-card {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 24px;
  padding: 2.8rem 2.6rem;
  max-width: 460px;
  margin: 0 auto;
  box-shadow: 0 30px 70px rgba(31, 42, 68, 0.12);
  text-align: left;
}
.cvdm-price-card .cvdm-price {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 3.2rem;
  font-weight: 700;
  color: var(--cvdm-charcoal);
  line-height: 1;
}
.cvdm-price-card .cvdm-price small {
  font-family: var(--cvdm-font-body) !important;
  font-size: 1rem;
  font-weight: 400;
  color: var(--cvdm-text);
}
.cvdm-price-card ul { list-style: none; margin: 1.6rem 0 0 !important; padding: 0 !important; }
.cvdm-price-card ul li {
  padding: 0.55rem 0 0.55rem 2rem;
  position: relative;
  border-bottom: 1px solid var(--cvdm-sand);
  color: var(--cvdm-text);
}
.cvdm-price-card ul li:last-child { border-bottom: 0; }
.cvdm-price-card ul li::before {
  content: '✓';
  position: absolute; left: 0;
  color: var(--cvdm-teal);
  font-weight: 700;
}

/* ----- LOGO (header + footer) ----- */
.cvdm-header-logo img {
  max-width: 170px !important;
  max-height: none !important;
  background: transparent !important;
  filter: none !important;
}
.cvdm-header.cvdm-scrolled .cvdm-header-logo img { max-width: 105px !important; max-height: none !important; }
.cvdm-footer-brand img,
.cvdm-footer-brand .et_pb_image_wrap {
  max-width: 210px !important;
  width: 100% !important;
  height: auto !important;
  background: transparent !important;
  overflow: visible !important;
}
@media (max-width: 980px) {
  .cvdm-header-logo img { max-width: 140px !important; }
  .cvdm-header.cvdm-scrolled .cvdm-header-logo img { max-width: 120px !important; }
  .cvdm-footer-brand img { max-width: 240px !important; }
}

/* Fixed/scrolled header — logo-navy background with light links */
.cvdm-header.cvdm-scrolled,
.et_pb_section.et_pb_section.cvdm-header.cvdm-scrolled {
  background: rgba(19, 28, 51, 0.97) !important;
  backdrop-filter: blur(16px);
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}
.cvdm-header.cvdm-scrolled .et_pb_menu .et-menu > li > a,
.cvdm-header.cvdm-solid .et_pb_menu .et-menu > li > a {
  color: #e7eef1 !important;
}
.cvdm-header.cvdm-scrolled .et_pb_menu .et-menu > li > a:hover,
.cvdm-header.cvdm-scrolled .et_pb_menu .et-menu > li.current-menu-item > a,
.cvdm-header.cvdm-solid .et_pb_menu .et-menu > li > a:hover,
.cvdm-header.cvdm-solid .et_pb_menu .et-menu > li.current-menu-item > a {
  color: #7fc4d4 !important;
}
.cvdm-header.cvdm-scrolled .mobile_menu_bar:before,
.cvdm-header.cvdm-solid .mobile_menu_bar:before { color: #ffffff !important; }
.cvdm-header.cvdm-solid { border-bottom-color: rgba(255, 255, 255, 0.08) !important; }
.cvdm-header.cvdm-solid a.cvdm-account-btn {
  border-color: rgba(255, 255, 255, 0.45) !important;
}

/* Divi's leftover sidebar divider lines on shop/product pages */
#main-content .container:before,
#content-area .container:before { display: none !important; background: none !important; }
#left-area { border: 0 !important; }

/* Hero headline — a touch smaller (selector matches the section itself) */
.cvdm-hero h1,
.et-l .et_pb_section.cvdm-hero h1,
.et-l--body .et_pb_section.cvdm-hero h1 {
  font-size: clamp(2rem, 3.4vw, 3.1rem) !important;
  line-height: 1.15 !important;
}

/* ----- FOOTER — dark navy with glow radiating from the logo ----- */
.cvdm-footer {
  background-color: #131C33 !important;
  background-image:
    radial-gradient(42% 60% at 14% 22%, rgba(47, 158, 184, 0.28) 0%, rgba(47, 158, 184, 0) 65%),
    radial-gradient(30% 45% at 14% 22%, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0) 60%),
    radial-gradient(50% 60% at 88% 88%, rgba(185, 195, 206, 0.08) 0%, rgba(185, 195, 206, 0) 62%) !important;
}
.cvdm-footer-brand img { filter: drop-shadow(0 0 26px rgba(47, 158, 184, 0.45)); }

/* ==========================================================================
   9. WOOCOMMERCE — pixel-matched shop grid + product detail
   ========================================================================== */
.woocommerce ul.products li.product {
  border-radius: 16px !important;
  border: 1px solid var(--cvdm-aqua-tint) !important;
  background: #ffffff !important;
  padding: 0 0 1.4rem !important;
  text-align: left !important;
  position: relative;
  transition: transform 0.4s var(--cvdm-ease), box-shadow 0.4s var(--cvdm-ease) !important;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 52px rgba(31, 42, 68, 0.14);
}
.woocommerce ul.products li.product a img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 15px 15px 0 0;
  margin-bottom: 1rem !important;
}
/* Header must always sit above page content */
.et-l--header, .cvdm-header { z-index: 99999 !important; }
/* Product cards get their own stacking context so the badge can never
   paint above the fixed header while scrolling */
.woocommerce ul.products li.product { position: relative; z-index: 0; }

/* Category badge over the image */
.woocommerce ul.products li.product .cvdm-cat-badge {
  position: absolute;
  top: 14px; left: 14px;
  z-index: 1;
  background: rgba(250, 248, 242, 0.88);
  backdrop-filter: blur(6px);
  color: var(--cvdm-charcoal);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.6px;
  padding: 5px 12px;
  border-radius: 999px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: var(--cvdm-charcoal) !important;
  padding: 0 1.3rem !important;
  text-align: left;
  /* Always reserve exactly two lines; longer titles get an ellipsis so
     prices and buttons line up across every card */
  line-height: 1.3 !important;
  min-height: 2.6em;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.woocommerce ul.products li.product .price {
  color: var(--cvdm-charcoal) !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  padding: 0 1.3rem;
}
.woocommerce ul.products li.product .button {
  margin: 0.9rem 1.3rem 0 !important;
  font-size: 11.5px !important;
}
.woocommerce ul.products li.product .onsale {
  border-radius: 999px !important;
  background: var(--cvdm-teal) !important;
  top: 14px; right: 14px; left: auto;
}

/* Product detail page */
.woocommerce div.product div.images img { border-radius: 20px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: 20px; overflow: hidden; }
.woocommerce div.product .product_title {
  font-family: var(--cvdm-font-heading) !important;
  font-weight: 700 !important;
  font-size: clamp(1.9rem, 3vw, 2.6rem) !important;
  color: var(--cvdm-charcoal) !important;
}
.woocommerce div.product p.price {
  color: var(--cvdm-teal-dark) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
}
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--cvdm-text); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--cvdm-teal-dark) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--cvdm-aqua-tint) !important; }
.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2 {
  font-family: var(--cvdm-font-heading) !important;
  color: var(--cvdm-charcoal);
}
.woocommerce .woocommerce-breadcrumb { color: var(--cvdm-silver); font-size: 12.5px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--cvdm-teal); }
.woocommerce span.onsale { border-radius: 999px !important; background: var(--cvdm-teal) !important; }
.woocommerce .quantity .qty { border-radius: 4px; border: 1px solid var(--cvdm-aqua-tint); height: 46px; }

/* Shop page title */
.woocommerce-page.archive h1.entry-title,
.woocommerce-products-header__title {
  font-family: var(--cvdm-font-heading) !important;
  font-weight: 700 !important;
}

/* Category filter pills above the shop grid */
.cvdm-filter-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0 0 2.4rem;
}
.cvdm-filter-pill {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 4px;
  border: 1px solid var(--cvdm-aqua-tint);
  background: #ffffff;
  color: var(--cvdm-charcoal) !important;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.6px;
  text-decoration: none !important;
  transition: all 0.3s var(--cvdm-ease);
}
.cvdm-filter-pill:hover {
  border-color: var(--cvdm-teal);
  color: var(--cvdm-teal-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(31, 42, 68, 0.08);
}
.cvdm-filter-pill.is-active {
  background: var(--cvdm-teal);
  border-color: var(--cvdm-teal);
  color: #ffffff !important;
  box-shadow: 0 4px 18px var(--cvdm-glow);
}

/* Keep card images crisp — never upscale beyond natural sharpness */
.woocommerce ul.products li.product a img { image-rendering: auto; }

/* Kill Divi's default shop hover overlay (gray flash + icon) */
.et_pb_shop .et_overlay,
.et_pb_shop .et_shop_image .et_overlay,
.woocommerce ul.products li.product .et_overlay {
  display: none !important;
}

/* Divi's shop module hides the buy button — force it visible on cards */
.et_pb_shop ul.products li.product .button,
.woocommerce ul.products li.product .button {
  display: inline-block !important;
}

/* Let button glow breathe — no clipping on cards or grids */
.woocommerce ul.products li.product { overflow: visible !important; }
.woocommerce ul.products { overflow: visible !important; }
.et_pb_shop { overflow: visible !important; }
.et_pb_button_module_wrapper { margin: 0 14px 18px 0; }

/* Hero needs room under the floating transparent header */
.cvdm-hero { padding-top: clamp(180px, 20vh, 240px) !important; }
@media (max-width: 980px) {
  .cvdm-hero { padding-top: 140px !important; }
  .cvdm-hero h1 { font-size: 1.9rem !important; }
  .cvdm-stats { gap: 1.6rem; }
  .cvdm-stats .cvdm-count, .cvdm-stats .cvdm-stat-static { font-size: 1.6rem; }
  .cvdm-price-card { padding: 2rem 1.6rem; }
  .cvdm-form-card { padding: 1.6rem !important; }
  .et-l .et_pb_section h2 { font-size: clamp(1.5rem, 4.5vw, 2rem); }
}
@media (max-width: 640px) {
  .cvdm-hero { padding-top: 120px !important; }
  .cvdm-hero h1 { font-size: 1.65rem !important; }
  .cvdm-filter-bar { gap: 7px; }
  .cvdm-filter-pill { padding: 6px 13px; font-size: 11px; letter-spacing: 1.1px; }
  body #page-container .et_pb_button,
  body #page-container .et_pb_module .et_pb_button { padding: 13px 26px !important; }
  .cvdm-footer-brand img { max-width: 200px !important; }
}

/* ----- BUTTONS: centered everywhere, taller, consistent spacing -----
   High-specificity overrides to beat Divi 5's own button sizing. */
body #page-container .et_pb_button,
body #page-container .et_pb_module .et_pb_button {
  padding: 16px 36px !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
}
body #page-container .et_pb_button:hover,
body #page-container .et_pb_module .et_pb_button:hover {
  padding: 16px 36px !important;
}

/* Buttons: left-aligned by default, side by side when stacked together */
body #page-container .et_pb_button_module_wrapper {
  display: inline-block !important;
  text-align: left;
  margin: 0 14px 18px 0 !important;
  float: none !important;
}
body #page-container .et_pb_button_module_wrapper .et_pb_button {
  display: inline-block !important;
}

/* Centered ONLY in full-width columns, CTA bands, and explicitly centered modules */
body #page-container .et_pb_column_4_4 > .et_pb_button_module_wrapper,
body #page-container .et_flex_column_24_24 > .et_pb_button_module_wrapper,
body #page-container .cvdm-cta-band .et_pb_button_module_wrapper,
body #page-container .et_pb_button_module_wrapper.et_pb_button_alignment_center {
  display: block !important;
  text-align: center !important;
  margin: 0 auto 18px !important;
}

/* Header CTA stays compact */
body #page-container .cvdm-header .et_pb_button,
body #page-container a.cvdm-account-btn {
  padding: 11px 26px !important;
  margin-bottom: 0 !important;
}
body #page-container .cvdm-header .et_pb_button:hover,
body #page-container a.cvdm-account-btn:hover {
  padding: 11px 26px !important;
}
.cvdm-header .et_pb_button_module_wrapper { margin: 0 !important; }

/* WooCommerce buttons — centered and taller */
.woocommerce ul.products li.product .button {
  display: table !important;
  margin: 1.1rem auto 0.4rem !important;
  padding: 13px 28px !important;
}
.woocommerce div.product form.cart { text-align: center; }
.woocommerce div.product form.cart .single_add_to_cart_button { padding: 16px 36px !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price {
  text-align: center;
  display: block;
}

/* Contact Form 7 submit — left aligned, same hover motion as other buttons */
.wpcf7 input[type="submit"] {
  display: inline-block;
  margin: 0.4rem 0 0 !important;
  padding: 15px 40px !important;
  transition: all 0.35s var(--cvdm-ease) !important;
}
.wpcf7 input[type="submit"]:hover { transform: translateY(-2px); }
.cvdm-footer .wpcf7 input[type="submit"]:hover { transform: translateY(-2px); }

/* Breathing room above buttons that follow text */
.et_pb_text + .et_pb_button_module_wrapper { margin-top: 10px !important; }

/* Uniform photo crops for galleries and candid strips */
.cvdm-photo .et_pb_image_wrap { width: 100%; }
.cvdm-photo .et_pb_image_wrap img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.cvdm-photo-tall .et_pb_image_wrap img { aspect-ratio: 3 / 4; }
.cvdm-gallery-caption h3 {
  font-size: 20px !important;
  margin: 1rem 0 0.2rem;
}
.cvdm-gallery-caption p {
  font-size: 13px;
  color: var(--cvdm-teal-dark);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ==========================================================================
   LEGAL PAGES — readable prose + FAQ accordion
   ========================================================================== */
.cvdm-legal { max-width: 860px; margin: 0 auto; }
.cvdm-legal h2 {
  font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important;
  margin: 2.2rem 0 0.8rem !important;
}
.cvdm-legal h3 {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 1.15rem !important;
  color: var(--cvdm-charcoal) !important;
  margin: 1.6rem 0 0.5rem !important;
}
.cvdm-legal p, .cvdm-legal li { color: var(--cvdm-text); line-height: 1.85; }
.cvdm-legal ul { margin: 0 0 1rem 1.2rem; }
.cvdm-legal li { margin-bottom: 0.5rem; }
.cvdm-legal a { color: var(--cvdm-teal-dark); }
.cvdm-legal .cvdm-legal-meta {
  color: var(--cvdm-silver);
  font-size: 13px;
  letter-spacing: 0.04em;
  margin-bottom: 2rem;
}

/* FAQ accordion (Divi toggle/accordion) */
.cvdm-faq .et_pb_toggle,
.cvdm-faq .et_pb_accordion_item {
  background: #ffffff !important;
  border: 1px solid var(--cvdm-aqua-tint) !important;
  border-radius: 10px !important;
  margin-bottom: 14px !important;
  padding: 4px 8px !important;
  box-shadow: none !important;
}
.cvdm-faq .et_pb_toggle_title {
  font-family: var(--cvdm-font-heading) !important;
  font-weight: 600 !important;
  color: var(--cvdm-charcoal) !important;
  font-size: 1.05rem !important;
  padding: 8px 30px 8px 8px !important;
}
.cvdm-faq .et_pb_toggle_content { color: var(--cvdm-text); line-height: 1.8; }
.cvdm-faq .et_pb_toggle_open { border-color: var(--cvdm-teal) !important; }
.cvdm-faq .et_pb_toggle .et_pb_toggle_title:before {
  color: var(--cvdm-teal) !important;
  font-size: 20px !important;
}

/* ==========================================================================
   GALLERY — [cvdm_gallery] image grid + lightbox
   ========================================================================== */
.cvdm-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
}
.cvdm-gallery[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cvdm-gallery[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.cvdm-gal-item {
  margin: 0;
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.4s var(--cvdm-ease), box-shadow 0.4s var(--cvdm-ease);
}
.cvdm-gal-item:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(31, 42, 68, 0.14); }

.cvdm-gal-img {
  position: relative;
  display: block;
  overflow: hidden;
  cursor: zoom-in;
}
.cvdm-gal-img img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transition: transform 0.7s var(--cvdm-ease);
}
.cvdm-gal-item:hover .cvdm-gal-img img { transform: scale(1.05); }
.cvdm-gal-zoom {
  position: absolute;
  inset: 0;
  background: rgba(19, 28, 51, 0);
  transition: background 0.4s var(--cvdm-ease);
}
.cvdm-gal-img::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 46px; height: 46px;
  transform: translate(-50%, -50%) scale(0.8);
  border-radius: 50%;
  background-color: rgba(250, 248, 242, 0.95);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/24px no-repeat, none;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/24px no-repeat;
  background-color: transparent;
  opacity: 0;
  transition: opacity 0.4s var(--cvdm-ease), transform 0.4s var(--cvdm-ease);
}
.cvdm-gal-img:hover::after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  background-color: var(--cvdm-charcoal);
  box-shadow: 0 0 0 46px rgba(19, 28, 51, 0.18) inset;
}

.cvdm-gal-cap {
  padding: 14px 16px 18px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: auto;
}
.cvdm-gal-name {
  font-family: var(--cvdm-font-heading) !important;
  font-weight: 600;
  font-size: 17px;
  color: var(--cvdm-charcoal);
}
a.cvdm-gal-buy {
  display: inline-block;
  background: var(--cvdm-teal) !important;
  color: #ffffff !important;
  font-family: var(--cvdm-font-body) !important;
  font-size: 12px !important;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  text-decoration: none !important;
  padding: 11px 18px;
  border-radius: 4px;
  transition: all 0.35s var(--cvdm-ease);
}
a.cvdm-gal-buy:hover {
  background: var(--cvdm-teal-dark) !important;
  color: #ffffff !important;
  transform: translateY(-2px);
}

@media (max-width: 1024px) { .cvdm-gallery, .cvdm-gallery[data-cols="4"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px)  { .cvdm-gallery, .cvdm-gallery[data-cols="4"], .cvdm-gallery[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (max-width: 460px)  { .cvdm-gallery, .cvdm-gallery[data-cols="4"] { grid-template-columns: 1fr; } }

/* Lightbox */
.cvdm-lb {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(11, 18, 34, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s var(--cvdm-ease), visibility 0.3s;
}
.cvdm-lb.is-open { opacity: 1; visibility: visible; }
.cvdm-lb-img {
  max-width: 88vw;
  max-height: 82vh;
  border-radius: 8px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
  object-fit: contain;
}
.cvdm-lb-cap {
  position: absolute;
  bottom: 26px; left: 0; right: 0;
  text-align: center;
  color: #e7eef1;
  font-family: var(--cvdm-font-heading);
  font-size: 18px;
  letter-spacing: 0.04em;
}
.cvdm-lb-btn {
  position: absolute;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  width: 52px; height: 52px;
  border-radius: 50%;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.3s var(--cvdm-ease);
}
.cvdm-lb-btn:hover { background: var(--cvdm-teal); border-color: var(--cvdm-teal); }
.cvdm-lb-close { top: 24px; right: 24px; }
.cvdm-lb-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.cvdm-lb-next { right: 24px; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) {
  .cvdm-lb-prev { left: 10px; } .cvdm-lb-next { right: 10px; }
  .cvdm-lb-btn { width: 44px; height: 44px; font-size: 22px; }
}

/* Feature film section — framed glowing cinema player */
.cvdm-video-feature {
  max-width: 1000px;
  margin: 0 auto;
}
.cvdm-video-feature .cvdm-player {
  border-radius: 16px;
  box-shadow: 0 0 0 1px rgba(47, 158, 184, 0.35), 0 24px 70px rgba(0, 0, 0, 0.5), 0 0 90px rgba(47, 158, 184, 0.22);
}
.cvdm-video-feature video { object-fit: cover; }

/* Portrait (9:16 phone) videos — frame matches the video exactly, no crop */
.cvdm-video-portrait { max-width: 400px; margin: 0 auto; }
/* Side-column variant (e.g. beside About text) — slimmer to match text height */
.cvdm-video-side { max-width: 320px !important; }

/* Small image badge overlapping the top-right corner of the founder video */
.cvdm-founder-media { position: relative; }
.cvdm-founder-media .cvdm-video-side { margin: 0 0 0 auto !important; }
.cvdm-video-badge {
  position: absolute !important;
  top: -18px;
  right: -18px;
  width: 130px !important;
  z-index: 6 !important;
  margin: 0 !important;
}
.cvdm-video-badge .et_pb_image_wrap { border-radius: 12px; overflow: hidden; }
.cvdm-video-badge img {
  width: 130px !important;
  height: 130px !important;
  max-height: none !important;
  object-fit: cover;
  border-radius: 12px;
  border: 3px solid var(--cvdm-porcelain);
  box-shadow: 0 12px 28px rgba(19, 36, 44, 0.3);
}
@media (max-width: 767px) {
  .cvdm-founder-media .cvdm-video-side { margin: 0 auto !important; }
  .cvdm-video-badge { width: 90px !important; top: -10px; right: 4px; }
  .cvdm-video-badge img { width: 90px !important; height: 90px !important; }
}
.cvdm-video-portrait .cvdm-player { padding-top: 177.78%; }
.cvdm-video-portrait video { object-fit: contain; background: #0b1322; }
@media (max-width: 640px) { .cvdm-video-portrait { max-width: 300px; } }

/* ==========================================================================
   LAYOUT POLISH — vertical centering, grid spacing, section rhythm
   ========================================================================== */

/* Split rows (hero, about, contact…) vertically centered */
.cvdm-hero .et_pb_row,
.et_pb_row.cvdm-stagger {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center !important;
}
/* …but footer columns always align from the top */
.cvdm-footer .et_pb_row,
.cvdm-footer .et_pb_row.cvdm-stagger {
  align-items: flex-start !important;
}
.cvdm-footer-brand .et_pb_image { margin-top: 0 !important; }
.cvdm-footer-brand img { display: block; }

/* Kill phantom grid cells — WooCommerce's clearfix pseudo-elements become
   grid items and occupy the first cell, shifting column one down */
.woocommerce .products ul::before,
.woocommerce .products ul::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.et_pb_shop ul.products::before,
.et_pb_shop ul.products::after {
  content: none !important;
  display: none !important;
}
.et_pb_shop ul.products > *:empty,
.et_pb_shop ul.products > li:not(.product),
.woocommerce-page #main-content ul.products > *:empty,
.woocommerce-page #main-content ul.products > li:not(.product) {
  display: none !important;
}

/* Product grids as true CSS grid — even gaps always, even when the
   in-place category filter hides items, and equal card heights */
.et_pb_shop ul.products,
.woocommerce-page #main-content ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px !important;
  width: 100%;
  margin: 0 0 1.5rem !important;
}
.et_pb_shop ul.products li.product,
.woocommerce-page #main-content ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.et_pb_shop ul.products li.product .button,
.woocommerce-page #main-content ul.products li.product .button {
  margin-top: auto !important;
  margin-bottom: 0.2rem !important;
}
@media (max-width: 1100px) {
  .et_pb_shop ul.products,
  .woocommerce-page #main-content ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .et_pb_shop ul.products,
  .woocommerce-page #main-content ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px !important; }
}
@media (max-width: 480px) {
  .et_pb_shop ul.products,
  .woocommerce-page #main-content ul.products { grid-template-columns: 1fr; }
}

/* Section rhythm — 50px top and bottom everywhere in page content */
.et-l--body .et_pb_section:not(.cvdm-hero),
#left-area .et_pb_section:not(.cvdm-hero) {
  padding-top: 50px !important;
  padding-bottom: 50px !important;
}
.et-l--body .et_pb_section.cvdm-hero {
  padding-top: clamp(180px, 20vh, 240px) !important;
  padding-bottom: 50px !important;
}
@media (max-width: 980px) {
  .et-l--body .et_pb_section.cvdm-hero { padding-top: 200px !important; }
}
@media (max-width: 640px) {
  .et-l--body .et_pb_section.cvdm-hero { padding-top: 175px !important; }
}
/* Non-hero pages (shop, product, cart, checkout, account, plain pages):
   push the first content down from the header on mobile */
@media (max-width: 980px) {
  .et-l--body .et_pb_section:first-of-type:not(.cvdm-hero) { padding-top: 90px !important; }
  .woocommerce-page.archive #main-content,
  .single-product #main-content,
  .woocommerce-cart #main-content,
  .woocommerce-checkout #main-content,
  .woocommerce-account #main-content { padding-top: 90px !important; }
}

/* All CF7 submit buttons — same slow lift, size locked on hover/active */
.wpcf7 input[type="submit"] {
  transition: all 0.35s var(--cvdm-ease) !important;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:active {
  transform: translateY(-2px) !important;
  padding: 15px 40px !important;
}
.cvdm-footer .wpcf7 input[type="submit"]:hover,
.cvdm-footer .wpcf7 input[type="submit"]:active {
  transform: translateY(-2px) !important;
  padding: 0 24px !important;
  width: 100% !important;
}

/* ==========================================================================
   FOOTER SPACING — tight gaps between headings, menus, form and socials
   ========================================================================== */
.cvdm-footer .cvdm-footer-heading {
  margin-bottom: 0.6rem !important;
  padding-bottom: 0.55rem;
}
.cvdm-footer-col .et_pb_module { margin-bottom: 10px !important; }
.cvdm-footer .et_pb_menu,
.cvdm-footer .et_pb_menu_inner_container,
.cvdm-footer .et_pb_menu .et-menu {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.cvdm-footer-social { margin-top: 4px !important; }

/* CF7's empty response container must not take space before submission */
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
  display: none !important;
  margin: 0 !important;
}
.cvdm-footer .wpcf7 form { margin: 0 !important; }
.cvdm-footer .cvdm-footer-newsletter { margin-bottom: 14px !important; }

/* ==========================================================================
   FOOTER EDGE — no stray line or light gap beneath the footer
   ========================================================================== */
body { background-color: #131C33 !important; }
#page-container { background-color: var(--cvdm-porcelain); }
#main-footer, footer.et-l--footer, .et-l--footer .et_pb_section:last-child {
  border: 0 !important;
}
#footer-bottom { display: none !important; }

/* ==========================================================================
   FLAT BUTTONS — no shadows or glow anywhere (final override)
   ========================================================================== */
.et_pb_button,
.et_pb_button:hover,
body #page-container .et_pb_button,
body #page-container .et_pb_button:hover,
body #page-container .et_pb_module .et_pb_button,
body #page-container .et_pb_module .et_pb_button:hover,
.wpcf7 input[type="submit"],
.wpcf7 input[type="submit"]:hover,
.woocommerce a.button, .woocommerce a.button:hover,
.woocommerce button.button, .woocommerce button.button:hover,
.woocommerce input.button, .woocommerce input.button:hover,
.woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .button:hover,
a.cvdm-account-btn, a.cvdm-account-btn:hover,
.cvdm-header-cta.et_pb_button, .cvdm-header-cta.et_pb_button:hover,
.cvdm-footer-newsletter .et_pb_newsletter_button,
.cvdm-filter-pill, .cvdm-filter-pill:hover, .cvdm-filter-pill.is-active {
  box-shadow: none !important;
}

/* ==========================================================================
   PAGE PRELOADER
   ========================================================================== */
#cvdm-preloader {
  position: fixed;
  inset: 0;
  z-index: 200000;
  background: #131C33;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s var(--cvdm-ease), visibility 0.5s;
}
#cvdm-preloader.cvdm-loaded { opacity: 0; visibility: hidden; }
.cvdm-preloader-spin {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.15);
  border-top-color: var(--cvdm-teal);
  animation: cvdmSpin 0.8s linear infinite;
}
@keyframes cvdmSpin { to { transform: rotate(360deg); } }

/* ==========================================================================
   MOBILE HEADER — hamburger next to logo, on the right
   ========================================================================== */
@media (max-width: 980px) {
  .cvdm-header .cvdm-header-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
  .cvdm-header .cvdm-header-logo-col {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
  .cvdm-header .cvdm-header-menu-col {
    width: auto !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    display: flex;
    justify-content: flex-end;
  }
  .cvdm-header .cvdm-header-cta-col { display: none !important; }
  /* Show only the mobile toggle, aligned right */
  .cvdm-header .et_pb_menu__menu { display: none !important; }
  .cvdm-header .et_mobile_nav_menu {
    display: block !important;
    float: none !important;
    margin: 0 !important;
  }
  .cvdm-header .et_mobile_nav_menu .mobile_menu_bar { text-align: right; }
  .cvdm-header .et_mobile_nav_menu .mobile_menu_bar:before { color: #ffffff !important; }
  /* Neutralise positioning on the chain so the dropdown can anchor to the
     header section (not the narrow toggle) and span full width */
  .cvdm-header .container,
  .cvdm-header .et_pb_row,
  .cvdm-header .cvdm-header-row,
  .cvdm-header .cvdm-header-menu-col,
  .cvdm-header .et_pb_menu,
  .cvdm-header .et_pb_menu_inner_container,
  .cvdm-header .et_mobile_nav_menu { position: static !important; }

  .cvdm-header .et_mobile_menu {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 100% !important;
    width: 100% !important;
    background: #131C33 !important;
    border-top: 2px solid var(--cvdm-teal) !important;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4) !important;
    padding: 6px 6% !important;
  }
  .cvdm-header .et_mobile_menu li,
  .cvdm-header .et_mobile_menu li.menu-item {
    width: 100% !important;
    float: none !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }
  .cvdm-header .et_mobile_menu li a {
    display: block !important;
    width: 100% !important;
    white-space: nowrap !important;
    color: #e7eef1 !important;
    font-family: var(--cvdm-font-body) !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    font-size: 13px !important;
    padding: 14px 0 !important;
    text-align: left !important;
  }
  .cvdm-header .et_mobile_menu li a:hover { color: var(--cvdm-teal) !important; }
}

/* ==========================================================================
   WOOCOMMERCE — account, cart, checkout in brand colors
   ========================================================================== */
/* Account login / register */
.woocommerce-account .woocommerce h2 {
  font-family: var(--cvdm-font-heading) !important;
  color: var(--cvdm-charcoal) !important;
}
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields {
  background: #ffffff;
  border: 1px solid var(--cvdm-aqua-tint);
  border-radius: 12px;
  padding: 1.6rem 1.8rem;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input.input-text,
.woocommerce .select2-selection,
.woocommerce-account input.input-text {
  border: 1px solid var(--cvdm-silver) !important;
  border-radius: 4px !important;
  padding: 0.7em 0.9em !important;
  min-height: 44px;
  color: var(--cvdm-charcoal);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce-checkout input.input-text:focus {
  border-color: var(--cvdm-teal) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(47, 158, 184, 0.15);
}
/* Clearfix pseudo-elements become grid items and break the column layout */
.woocommerce .col2-set::before,
.woocommerce .col2-set::after,
.woocommerce-page .col2-set::before,
.woocommerce-page .col2-set::after {
  content: none !important;
  display: none !important;
}

/* Login + Register side by side on the account page */
.woocommerce-account:not(.logged-in) .woocommerce .u-columns.col2-set,
.woocommerce-account .woocommerce > .u-columns.col2-set {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  width: 100%;
  float: none;
}
.woocommerce-account .u-columns .col-1,
.woocommerce-account .u-columns .col-2 {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  max-width: 100% !important;
}
.woocommerce-account form.login,
.woocommerce-account form.register {
  height: 100%;
  margin: 0 !important;
  padding-bottom: 2rem !important;
}
/* Breathing room under the login / register block */
.woocommerce-account:not(.logged-in) .woocommerce .u-columns.col2-set,
.woocommerce-account .woocommerce > .u-columns.col2-set { margin-bottom: 3rem !important; }
.woocommerce-account #main-content { padding-bottom: 60px !important; }
.woocommerce-account .u-column1 > h2,
.woocommerce-account .u-column2 > h2 {
  font-family: var(--cvdm-font-heading) !important;
  font-size: 1.4rem !important;
  margin-bottom: 0.8rem !important;
}
@media (max-width: 780px) {
  .woocommerce-account:not(.logged-in) .woocommerce .u-columns.col2-set,
  .woocommerce-account .woocommerce > .u-columns.col2-set { grid-template-columns: 1fr; }
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--cvdm-aqua-tint);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  color: var(--cvdm-charcoal) !important;
  padding: 0.7rem 0.2rem;
  display: block;
  text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  color: var(--cvdm-teal-dark) !important;
}

/* Cart + checkout tables */
.woocommerce table.shop_table {
  border: 1px solid var(--cvdm-aqua-tint) !important;
  border-radius: 12px !important;
  overflow: hidden;
}
.woocommerce table.shop_table th {
  font-family: var(--cvdm-font-body) !important;
  color: var(--cvdm-charcoal) !important;
  background: var(--cvdm-sand);
}
.woocommerce table.shop_table td { color: var(--cvdm-text); }
.woocommerce .cart_totals h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3 {
  font-family: var(--cvdm-font-heading) !important;
  color: var(--cvdm-charcoal) !important;
}
.woocommerce a.remove {
  color: var(--cvdm-teal-dark) !important;
  border-color: var(--cvdm-teal-dark);
}
.woocommerce a.remove:hover {
  background: var(--cvdm-teal) !important;
  color: #fff !important;
}
.woocommerce .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce .woocommerce-message {
  border-top-color: var(--cvdm-teal) !important;
}
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before { color: var(--cvdm-teal) !important; }
.woocommerce #payment,
.woocommerce-checkout #payment {
  background: var(--cvdm-sand) !important;
  border-radius: 12px;
}
.woocommerce #payment div.payment_box { background: #ffffff !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--cvdm-aqua-tint); }

/* Header chrome must not add its own height */
.et-l--header .et_pb_section.cvdm-header,
.cvdm-header {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.cvdm-header .et_pb_row,
.cvdm-header .cvdm-header-row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.cvdm-header .et_pb_module { margin-bottom: 0 !important; }

/* Solid (non-hero) pages — compact header so it doesn't eat the screen */
.cvdm-header.cvdm-solid .cvdm-header-row { padding: 4px 0 !important; }
.cvdm-header.cvdm-solid .cvdm-header-logo img { max-height: 74px !important; }
@media (max-width: 980px) {
  .cvdm-header.cvdm-solid .cvdm-header-logo img { max-height: 62px !important; }
}

/* Proceed to checkout + Place order — match the site button style */
body #page-container .woocommerce .wc-proceed-to-checkout a.checkout-button,
body #page-container .woocommerce a.checkout-button.button.alt.wc-forward,
body #page-container .woocommerce #payment #place_order,
body #page-container .woocommerce-checkout #payment #place_order,
body #page-container .woocommerce button#place_order,
body #page-container .woocommerce input#place_order,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt,
.woocommerce button#place_order {
  font-family: var(--cvdm-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  background-color: var(--cvdm-teal) !important;
  border: 1px solid var(--cvdm-teal) !important;
  border-radius: 4px !important;
  padding: 16px 36px !important;
  width: 100%;
  text-align: center;
  box-shadow: none !important;
  transition: all 0.35s var(--cvdm-ease) !important;
}
body #page-container .woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
body #page-container .woocommerce #payment #place_order:hover,
body #page-container .woocommerce button#place_order:hover,
body #page-container .woocommerce input#place_order:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #payment #place_order:hover,
.woocommerce button#place_order:hover {
  background-color: var(--cvdm-teal-dark) !important;
  border-color: var(--cvdm-teal-dark) !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: none !important;
}

/* ==========================================================================
   7. ACCESSIBILITY — respect reduced-motion preference
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html.cvdm-js .cvdm-fade-up,
  html.cvdm-js .cvdm-fade-down,
  html.cvdm-js .cvdm-fade-left,
  html.cvdm-js .cvdm-fade-right,
  html.cvdm-js .cvdm-fade-in,
  html.cvdm-js .cvdm-zoom-in,
  html.cvdm-js .cvdm-blur-in,
  html.cvdm-js .cvdm-reveal-up {
    opacity: 1;
    transform: none;
    filter: none;
    clip-path: none;
    transition: none;
  }
  .cvdm-hover-lift, .cvdm-hover-zoom img, .cvdm-hover-tilt,
  .cvdm-hover-shine::before, .cvdm-hover-glow {
    transition: none !important;
  }
}
