/* DNMP Repair15 — global alignment / overflow / card parity / rectangular header logo. */

html,
body.dnmp-subdomain-site {
  max-width: 100%;
  overflow-x: clip;
}

body.dnmp-subdomain-site,
body.dnmp-subdomain-site *,
body.dnmp-subdomain-site *::before,
body.dnmp-subdomain-site *::after {
  box-sizing: border-box;
}

/* Flex/grid children must be allowed to shrink instead of creating one-character columns. */
body.dnmp-subdomain-site :where(
  main, section, article, aside, nav, form, fieldset, label, div, li,
  [class*="grid"], [class*="row"], [class*="col"], [class*="card"],
  [class*="panel"], [class*="item"], [class*="content"], [class*="result"]
) {
  min-width: 0;
}

/* Enforce normal horizontal writing. Older component CSS used aggressive word breaking in a few narrow grids. */
body.dnmp-subdomain-site :where(
  h1,h2,h3,h4,h5,h6,p,a,button,label,legend,summary,strong,small,span,time,dt,dd,li,
  input,select,textarea,option,th,td
) {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  word-break: normal !important;
  overflow-wrap: break-word;
  white-space: normal;
}

body.dnmp-subdomain-site :where(code,pre,.dnmp-code,.dnmp-api-code) {
  overflow-wrap: anywhere;
}

body.dnmp-subdomain-site :where(img,svg,canvas,video,picture) {
  max-width: 100%;
}

body.dnmp-subdomain-site :where(img,video) {
  height: auto;
}

body.dnmp-subdomain-site :where(input,select,textarea,button) {
  max-width: 100%;
  min-width: 0;
}

body.dnmp-subdomain-site :where(textarea,select,input:not([type="checkbox"]):not([type="radio"])) {
  width: 100%;
}

/* Normalise common DNMP peer grids so cards line up vertically and horizontally. */
body.dnmp-subdomain-site :where(
  .dnmp-grid,
  .dnmp-card-grid,
  .dnmp-results-grid,
  .dnmp-tools-grid,
  .dnmp-service-grid,
  .dnmp-quick-grid,
  .dnmp-portal-grid,
  .dnmp-muhurat-grid,
  .dnmp-muhurat-month-categories,
  .dnmp-rashi-grid,
  .dnmp-kundli-grid,
  .dnmp-marketplace-grid,
  .dnmp-ritual-grid,
  .dnmp-search-results,
  [class^="dnmp-"][class*="__grid"],
  [class^="dnmp-"][class*="-grid"]
) {
  align-items: stretch;
  justify-items: stretch;
}

body.dnmp-subdomain-site :where(
  .dnmp-card-grid,
  .dnmp-results-grid,
  .dnmp-tools-grid,
  .dnmp-service-grid,
  .dnmp-quick-grid,
  .dnmp-portal-grid,
  .dnmp-muhurat-grid,
  .dnmp-muhurat-month-categories,
  .dnmp-rashi-grid,
  .dnmp-marketplace-grid,
  .dnmp-ritual-grid
) > :where(article,section,div,a) {
  min-width: 0;
  height: 100%;
}

body.dnmp-subdomain-site :where(
  .dnmp-card,
  [class^="dnmp-"][class*="__card"],
  [class^="dnmp-"][class*="-card"],
  .dnmp-muhurat-month-category,
  .dnmp-search-result
) {
  min-width: 0;
  max-width: 100%;
}

/* Action rows stay at the bottom of peer cards instead of floating at different heights. */
body.dnmp-subdomain-site :where(
  .dnmp-card__actions,
  [class^="dnmp-"][class*="__actions"],
  [class^="dnmp-"][class*="-actions"]
) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
}

/* Dense tables may scroll locally; the whole page must never acquire horizontal overflow. */
body.dnmp-subdomain-site :where(.dnmp-table-wrap,.dnmp-responsive-table,[class^="dnmp-"][class*="table-wrap"]) {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.dnmp-subdomain-site table {
  max-width: 100%;
}

/* Prevent mystery fully-white legacy panels in managed dark/classic themes. */
body.dnmp-subdomain-site:not(.dnmp-theme-mithila_light) :where(
  .dnmp-builder-page-intro,
  .dnmp-page-context,
  .dnmp-search-result,
  .dnmp-muhurat-month-category,
  [class^="dnmp-"][class*="__card"],
  [class^="dnmp-"][class*="-card"],
  [class^="dnmp-"][class*="__panel"],
  [class^="dnmp-"][class*="-panel"]
) {
  color: var(--dnmp-managed-text, #f7f0e5);
  border-color: var(--dnmp-managed-border, #3a3448);
}

/* Only override literal light surfaces, not deliberate accent/status cards. */
@supports (background: color-mix(in srgb, white 50%, black)) {
  body.dnmp-subdomain-site:not(.dnmp-theme-mithila_light) :where(
    .dnmp-search-result,
    .dnmp-muhurat-month-category,
    .dnmp-builder-page-intro,
    .dnmp-page-context
  ) {
    background: color-mix(in srgb, var(--dnmp-managed-surface, #181624) 96%, transparent);
  }
}

/* Header branding: rectangular image, no square frame and no duplicate site-name text. */
body.dnmp-subdomain-site .dnmp-subdomain-header__inner {
  width: 100%;
  min-width: 0;
  gap: clamp(.65rem, 1.5vw, 1.25rem);
}

body.dnmp-subdomain-site .dnmp-subdomain-brand {
  min-width: 0;
  max-width: min(100%, 620px);
  flex: 0 1 auto;
  align-items: center;
}

body.dnmp-subdomain-site .dnmp-subdomain-brand.has-image {
  width: auto;
}

body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image {
  display: block;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: min(46vw, 560px) !important;
  max-height: 96px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  aspect-ratio: auto !important;
}

body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image picture,
body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image img {
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: min(46vw, 560px) !important;
  max-height: 96px !important;
  object-fit: contain;
  object-position: center;
}

body.dnmp-subdomain-site .dnmp-subdomain-brand__copy {
  min-width: 0;
}

/* Existing signed header_style now doubles as the logo-position setting:
   legacy_overlay/compact = left, centered = middle, split = right. */
@media (min-width: 981px) {
  body.dnmp-header-legacy_overlay .dnmp-subdomain-header__inner,
  body.dnmp-header-compact .dnmp-subdomain-header__inner {
    display: flex;
    align-items: center;
  }

  body.dnmp-header-legacy_overlay .dnmp-subdomain-brand,
  body.dnmp-header-compact .dnmp-subdomain-brand {
    margin-right: 0;
  }

  body.dnmp-header-centered .dnmp-subdomain-header__inner {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    align-items: center;
  }

  body.dnmp-header-centered .dnmp-subdomain-brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
  }

  body.dnmp-header-centered .dnmp-subdomain-menu {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  body.dnmp-header-centered .dnmp-subdomain-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    justify-content: center;
  }

  body.dnmp-header-centered .dnmp-subdomain-nav__primary,
  body.dnmp-header-centered .dnmp-subdomain-nav__actions {
    justify-content: center;
  }

  body.dnmp-header-split .dnmp-subdomain-header__inner {
    display: flex;
    align-items: center;
  }

  body.dnmp-header-split .dnmp-subdomain-nav {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
  }

  body.dnmp-header-split .dnmp-subdomain-brand {
    order: 3;
    margin-left: auto;
    justify-content: flex-end;
  }

  body.dnmp-header-split .dnmp-subdomain-menu {
    order: 2;
  }
}

@media (max-width: 980px) {
  body.dnmp-subdomain-site .dnmp-subdomain-header__inner {
    display: flex;
    align-items: center;
    min-height: 64px;
  }

  body.dnmp-subdomain-site .dnmp-subdomain-brand {
    max-width: calc(100% - 62px);
  }

  body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image,
  body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image picture,
  body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image img {
    max-width: min(68vw, 400px) !important;
    max-height: 72px !important;
  }

  body.dnmp-header-centered .dnmp-subdomain-brand {
    margin-inline: auto;
    justify-content: center;
  }

  body.dnmp-header-split .dnmp-subdomain-brand {
    order: 2;
    margin-left: auto;
    justify-content: flex-end;
  }

  body.dnmp-header-split .dnmp-subdomain-menu {
    order: 1;
  }
}

/* Responsive peer-card rules. Avoid fixed narrow columns that create vertical character stacking. */
@media (max-width: 860px) {
  body.dnmp-subdomain-site :where(
    .dnmp-card-grid,
    .dnmp-results-grid,
    .dnmp-tools-grid,
    .dnmp-service-grid,
    .dnmp-quick-grid,
    .dnmp-portal-grid,
    .dnmp-muhurat-grid,
    .dnmp-muhurat-month-categories,
    .dnmp-rashi-grid,
    .dnmp-kundli-grid,
    .dnmp-marketplace-grid,
    .dnmp-ritual-grid
  ) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body.dnmp-subdomain-site :where(
    .dnmp-card-grid,
    .dnmp-results-grid,
    .dnmp-tools-grid,
    .dnmp-service-grid,
    .dnmp-quick-grid,
    .dnmp-portal-grid,
    .dnmp-muhurat-grid,
    .dnmp-muhurat-month-categories,
    .dnmp-rashi-grid,
    .dnmp-kundli-grid,
    .dnmp-marketplace-grid,
    .dnmp-ritual-grid
  ) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.dnmp-subdomain-site :where(.dnmp-subdomain-container,.dnmp,.dnmp-standalone-content) {
    max-width: 100%;
  }

  body.dnmp-subdomain-site :where(button,.button,[class*="button"],[class*="btn"]) {
    max-width: 100%;
  }
}

@media (max-width: 420px) {
  body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image,
  body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image picture,
  body.dnmp-subdomain-site .dnmp-subdomain-brand__mark.is-image img {
    max-width: min(70vw, 300px) !important;
    max-height: 60px !important;
  }
}
