/* Mobile panel for the header fragment.
 *
 * Hand-written rather than generated: the site's mobile menu is rendered by
 * framer-motion only while open, so there is no markup in the static build to
 * lift. header.js builds the panel at runtime by cloning the mega-menu links;
 * these are the styles for that structure. Kept visually in line with the
 * site's panel (white, slides in from the right, full height).
 *
 * Everything is prefixed .tt-m- so it cannot collide with propharm-child.
 */

.tt-m-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
  z-index: 99998;
}
.tt-m-overlay.is-open { opacity: 1; visibility: visible; }

.tt-m-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 85vw;
  max-width: 20rem;
  background: #fff;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  z-index: 99999;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s ease;
  font-family: "PT Sans", ui-sans-serif, system-ui, sans-serif;
  overflow: hidden;
}
.tt-m-panel.is-open { transform: translateX(0); }

.tt-m-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  flex-shrink: 0;
}
.tt-m-logo { width: 140px; height: auto; display: block; }
.tt-m-close {
  background: none !important;
  border: 0 !important;
  padding: 0.5rem !important;
  color: #374151;
  cursor: pointer;
  line-height: 0;
  box-shadow: none !important;
  min-width: 0 !important;
}

.tt-m-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.tt-m-row { border-bottom: 1px solid #f3f4f6; }

.tt-m-link,
.tt-m-acc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 0.5rem;
  padding: 0.75rem 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: #323232 !important;
  text-decoration: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  min-width: 0 !important;
  text-transform: none !important;
}
/* The theme's dynamic-styles-cached.css paints every hovered <button> white
   with !important (a Woo CTA rule). button:hover is (0,1,1), which outranks
   the bare .tt-m-acc class above, so on hover the accordion titles went white
   on the white drawer and vanished. Class+pseudo (0,2,0) wins it back. The
   drawer hangs off <body>, not #tt-header, so the fragment-scoped shield in
   header.css cannot cover these. */
.tt-m-link:hover,
.tt-m-acc:hover,
.tt-m-acc:focus,
.tt-m-acc:active {
  color: #323232 !important;
  background: none !important;
}
.tt-m-close:hover,
.tt-m-close:focus,
.tt-m-close:active {
  color: #374151 !important;
  background: none !important;
}
.tt-m-acc[aria-expanded="true"]:hover { color: #0f0d3f !important; }

.tt-m-chev { transition: transform 0.2s ease; flex-shrink: 0; }
.tt-m-acc[aria-expanded="true"] .tt-m-chev { transform: rotate(180deg); color: #8b007c; }

.tt-m-body {
  display: none;
  flex-direction: column;
  padding: 0 0.5rem 0.5rem 1rem;
  background: #f9f9f9;
  border-radius: 0 0 0.25rem 0.25rem;
}
.tt-m-body.is-open { display: flex; }

.tt-m-sub {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem;
  font-size: 0.875rem;
  color: #374151 !important;
  text-decoration: none !important;
}
.tt-m-sub:hover { color: #0f0d3f !important; }
.tt-m-sub svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: #8b007c;
}

/* Group labels: BY SERVICE / BY INDUSTRY / AI SEARCH, as on the site. */
.tt-m-label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #0f0d3f;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.625rem 0.5rem 0.125rem;
}
.tt-m-label:not(:first-child) {
  border-top: 1px solid #e5e7eb;
  margin-top: 0.375rem;
  padding-top: 0.75rem;
}

/* Second accordion level (2026-08-20): each uppercase panel heading becomes a
   collapsible group inside its open section, mirroring the site's double
   accordion. Same button-shielding as .tt-m-acc — the theme paints hovered
   buttons white with !important. */
.tt-m-gacc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 0.5rem;
  padding: 0.625rem 0.5rem 0.375rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #0f0d3f !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  min-width: 0 !important;
}
.tt-m-gacc:not(:first-child) {
  border-top: 1px solid #e5e7eb !important;
  margin-top: 0.375rem;
}
.tt-m-gacc:hover,
.tt-m-gacc:focus,
.tt-m-gacc:active {
  color: #0f0d3f !important;
  background: none !important;
}
.tt-m-gacc .tt-m-chev { width: 14px; height: 14px; }
.tt-m-gacc[aria-expanded="true"] .tt-m-chev {
  transform: rotate(180deg);
  color: #8b007c;
}
.tt-m-gbody {
  display: none;
  flex-direction: column;
  padding-left: 0.75rem;
}
.tt-m-gbody.is-open { display: flex; }

/* Trailing-arrow quick links (All SEO Services, SEO Pricing, ...). */
.tt-m-quick {
  font-weight: 600;
  color: #0f0d3f !important;
}
.tt-m-quick svg { width: 16px; height: 16px; color: #8b007c; }

/* "Get a Free SEO Audit" keeps its magenta emphasis. */
.tt-m-hot { color: #8b007c !important; font-weight: 700; }

/* Open accordion carries the site's accent: left rail + ink text. */
.tt-m-acc[aria-expanded="true"] {
  border-left: 2px solid #8b007c !important;
  color: #0f0d3f !important;
}

.tt-m-cta { margin-top: 0.75rem; }
.tt-m-cta a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 2.75rem;
  border-radius: 0.5rem;
  background: #fb830c;
  color: #fff !important;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none !important;
}

/* The site hides the desktop nav below its xl breakpoint and shows the
   hamburger. The generated markup carries those Tailwind classes, so this only
   needs to keep the panel itself out of the way on large screens. */
@media (min-width: 1280px) {
  .tt-m-panel,
  .tt-m-overlay { display: none !important; }
}
