/* Global design tokens and small behaviours carried over from the approved HTML. */
body { font-family: 'Inter', system-ui, sans-serif; scroll-behavior: smooth; }
.group:hover .group-hover\:visible { visibility: visible; opacity: 100; margin-top: 0; }
.dropdown-menu { transition: all 0.2s ease; margin-top: 10px; }
.lead-pulse { animation: leadPulse 2.8s ease-in-out infinite; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.before-after-slider { --position: 50%; }
.before-after-slider img { pointer-events: none; user-select: none; }
.before-after-after { clip-path: inset(0 0 0 var(--position)); }
.before-after-handle { left: var(--position); }
.comparison-range { appearance: none; background: transparent; cursor: ew-resize; }
.comparison-range::-webkit-slider-thumb { appearance: none; width: 44px; height: 44px; }
.comparison-range::-moz-range-thumb { width: 44px; height: 44px; border: 0; background: transparent; }

/* WordPress menu output is styled here so assigned menus inherit the approved header look. */
.yds-primary-menu { display: flex; align-items: center; gap: 1.5rem; height: 100%; list-style: none; margin: 0; padding: 0; }
.yds-primary-menu a { color: #0f172a; font-weight: 600; text-decoration: none; transition: color 0.2s ease; }
.yds-primary-menu a:hover, .yds-primary-menu a:focus { color: #0652a1; }
.yds-primary-menu li { position: relative; }
.yds-primary-menu .sub-menu { position: absolute; background: #fff; border: 1px solid #eef2f7; border-radius: 0.75rem; box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12); list-style: none; min-width: 16rem; padding: 0.75rem; margin-top: 0.75rem; opacity: 0; visibility: hidden; transition: all 0.2s ease; }
.yds-primary-menu li:hover > .sub-menu, .yds-primary-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; }
.yds-primary-menu .sub-menu a { display: block; padding: 0.75rem; border-radius: 0.5rem; font-size: 0.875rem; }
.yds-primary-menu .sub-menu a:hover { background: #f8fafc; }

/* Core content defaults for WordPress pages and posts. */
.entry-content p { margin-bottom: 1rem; line-height: 1.75; }
.entry-content ul, .entry-content ol { margin: 1rem 0 1rem 1.5rem; }
.entry-content a { color: #0652a1; text-decoration: underline; text-underline-offset: 3px; }
.entry-content h2, .entry-content h3, .entry-content h4 { color: #0f172a; font-weight: 800; margin-top: 2rem; margin-bottom: 1rem; }
.entry-content h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); }
.entry-content h3 { font-size: 1.5rem; }
.custom-logo { max-height: 5rem; width: auto; }
.yds-pagination .nav-links { display: inline-flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; justify-content: center; }
.yds-pagination a, .yds-pagination span { display: inline-flex; min-width: 2.5rem; min-height: 2.5rem; align-items: center; justify-content: center; border-radius: 0.5rem; border: 1px solid #e5e7eb; background: #fff; padding: 0.5rem 0.75rem; color: #0f172a; font-weight: 700; }
.yds-pagination .current { background: #0652a1; color: #fff; border-color: #0652a1; }

/* Contact Form 7 fields inherit the approved static form styling. */
.yds-cf7-form .wpcf7 form { display: grid; gap: 0.35rem; }
.yds-cf7-form p { margin: 0; }
.yds-cf7-form br { display: none; }
.yds-cf7-form .wpcf7-form-control-wrap { display: block; margin-top: 0.32rem; }
.yds-cf7-form .yds-form-grid { display: grid; grid-template-columns: 1fr; column-gap: 1rem; row-gap: 0.38rem; }
.yds-cf7-form .yds-field { margin: 0; }
.yds-cf7-form .yds-field-note { color: #6b7280; font-size: 0.72rem; line-height: 1.2; margin-top: 0.18rem; }
.yds-cf7-form label { display: block; margin-bottom: 0.28rem; color: #374151; font-size: 0.875rem; font-weight: 500; line-height: 1.25; }
.yds-cf7-form input:not([type="submit"]),
.yds-cf7-form select,
.yds-cf7-form textarea {
  display: block;
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  background: #f8fafc;
  min-height: 2.75rem;
  padding: 0.58rem 1rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.yds-cf7-form select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%23334155' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 0.95rem center;
  background-repeat: no-repeat;
  background-size: 1rem;
  padding-right: 2.8rem;
}
.yds-cf7-form input:focus,
.yds-cf7-form select:focus,
.yds-cf7-form textarea:focus {
  border-color: #56c5e4;
  outline: 2px solid rgba(86, 197, 228, 0.35);
  outline-offset: 1px;
}
.yds-cf7-form input[type="submit"],
.yds-cf7-form button[type="submit"] {
  width: 100%;
  border-radius: 0.375rem;
  background: #0652a1;
  color: #fff;
  cursor: pointer;
  font-size: 1.125rem;
  font-weight: 700;
  padding: 0.95rem 1rem;
  transition: background 0.2s ease;
}
.yds-cf7-form input[type="submit"]:hover,
.yds-cf7-form button[type="submit"]:hover { background: #1e40af; }
.yds-cf7-form .yds-form-submit { margin-top: 0.45rem; }
.yds-cf7-form .wpcf7-spinner { display: block; margin: 0.75rem auto 0; }
.yds-cf7-form .wpcf7-not-valid-tip { margin-top: 0.35rem; font-size: 0.8rem; }
.yds-cf7-form .wpcf7-response-output { margin: 1rem 0 0; border-radius: 0.5rem; }

/* Gallery masonry and lightbox. */
.yds-gallery-columns { columns: 1; column-gap: 1rem; }
.yds-gallery-item {
  break-inside: avoid;
  content-visibility: auto;
  contain-intrinsic-size: auto 360px;
  margin-bottom: 1rem;
}
.yds-gallery-item[hidden] { display: none; }
.yds-gallery-lightbox[hidden] { display: none; }
.yds-gallery-lightbox { display: flex; }
@media (min-width: 640px) { .yds-gallery-columns { columns: 2; } }
@media (min-width: 1024px) { .yds-gallery-columns { columns: 3; column-gap: 1.25rem; } .yds-gallery-item { margin-bottom: 1.25rem; } }
@media (min-width: 1280px) { .yds-gallery-columns { columns: 4; } }

@media (min-width: 640px) {
  .yds-cf7-form .yds-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .yds-cf7-form .yds-span-2 { grid-column: span 2 / span 2; }
}

@keyframes leadPulse {
  0%, 100% { box-shadow: 0 12px 28px rgba(249, 115, 22, 0.28); transform: translateY(0); }
  50% { box-shadow: 0 18px 40px rgba(249, 115, 22, 0.42); transform: translateY(-1px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
@media (max-width: 767px) { body { padding-bottom: 86px; } }
