/*!
 * MurphyMia — marketing module styles (public pages: home, services, categories, editorial,
 * policies, city pages, locale). Owner: marketing module (docs/contracts/W-marketing.md).
 * Tokens only (no raw colours), no remote resources, no CSS images (CSP img-src 'self').
 */
@layer modules {
  /* ---- Reading width and helpers ---------------------------------------------------------- */
  .mm-mkt-measure { max-width: 70ch; }
  .mm-mkt-narrow { max-width: var(--mm-width-narrow); }
  .mm-mkt-current { display: flex; flex-wrap: wrap; align-items: center; gap: var(--mm-space-2); }

  /* ---- Search widget ------------------------------------------------------------------------ */
  .mm-mkt-search__title { font-size: var(--mm-text-xl); }
  .mm-mkt-search__grid { display: grid; gap: var(--mm-space-4); grid-template-columns: minmax(0, 1fr); }
  @media (min-width: 48em) {
    .mm-mkt-search--hero .mm-mkt-search__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  }
  .mm-mkt-search__pets > summary { cursor: pointer; }
  .mm-mkt-service__aside { display: flex; flex-direction: column; gap: var(--mm-space-3); align-self: start; }
  @media (min-width: 64em) {
    .mm-mkt-service__aside { position: sticky; top: calc(var(--mm-header-height) + var(--mm-space-4)); }
  }

  /* ---- Country / language suggestion -------------------------------------------------------- */
  .mm-mkt-country { padding-block: var(--mm-space-3); background: var(--mm-color-info-tint); border-bottom: 1px solid var(--mm-color-border); }
  .mm-mkt-country__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--mm-space-3) var(--mm-space-4); }
  .mm-mkt-country__icon { color: var(--mm-color-info); }
  .mm-mkt-country__text { flex: 1 1 22rem; color: var(--mm-color-ink); }
  .mm-mkt-country__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--mm-space-2); }
  .mm-mkt-country__actions form { display: contents; }

  /* ---- Service tiles, groups and units ---------------------------------------------------- */
  .mm-mkt-group__title { font-size: var(--mm-text-lg); color: var(--mm-color-brand); }
  .mm-mkt-unit { display: inline-flex; align-items: center; gap: var(--mm-space-1); font-size: var(--mm-text-sm); font-weight: 600; color: var(--mm-color-ink); }

  /* ---- Lists ------------------------------------------------------------------------------- */
  .mm-mkt-checklist { display: grid; gap: var(--mm-space-3); padding: 0; list-style: none; max-width: 70ch; }
  .mm-mkt-checklist > li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: var(--mm-space-3); align-items: start; }
  .mm-mkt-checklist .mm-icon { margin-top: 0.15rem; color: var(--mm-color-brand); }
  .mm-mkt-checklist--neutral .mm-icon { color: var(--mm-color-ink-muted); }

  .mm-mkt-trust { display: grid; gap: var(--mm-space-6); padding: 0; list-style: none; }
  @media (min-width: 48em) { .mm-mkt-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 80em) { .mm-mkt-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  .mm-mkt-trust__item { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--mm-space-3); align-items: start; }
  .mm-mkt-trust__icon { width: 2.5rem; height: 2.5rem; padding: var(--mm-space-2); border-radius: var(--mm-radius-md); background: var(--mm-color-brand-tint); color: var(--mm-color-brand); }
  .mm-mkt-trust__title { font-size: var(--mm-text-lg); margin-bottom: var(--mm-space-1); }

  .mm-mkt-needs { display: grid; gap: var(--mm-space-4); padding: 0; list-style: none; }
  @media (min-width: 48em) { .mm-mkt-needs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .mm-mkt-needs__item { display: flex; flex-direction: column; gap: var(--mm-space-2); padding: var(--mm-space-5); border: 1px solid var(--mm-color-border); border-radius: var(--mm-radius-md); background: var(--mm-color-surface); }
  .mm-mkt-needs__title { font-size: var(--mm-text-lg); }

  .mm-mkt-species__title { display: flex; align-items: center; gap: var(--mm-space-2); font-size: var(--mm-text-lg); }
  .mm-mkt-species__services { display: grid; gap: var(--mm-space-2); padding: 0; list-style: none; }

  .mm-mkt-cities { display: flex; flex-wrap: wrap; gap: var(--mm-space-2) var(--mm-space-3); padding: 0; list-style: none; }
  .mm-mkt-cities a { display: inline-flex; align-items: center; gap: var(--mm-space-1); min-height: 2.75rem; padding: 0 var(--mm-space-4); border: 1px solid var(--mm-color-border); border-radius: var(--mm-radius-pill); background: var(--mm-color-surface); color: var(--mm-color-ink); text-decoration: none; }
  .mm-mkt-cities a:hover { border-color: var(--mm-color-brand); color: var(--mm-color-brand); }

  .mm-mkt-supply { display: grid; gap: var(--mm-space-4); padding: 0; list-style: none; }
  @media (min-width: 48em) { .mm-mkt-supply { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 64em) { .mm-mkt-supply { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  .mm-mkt-supply__item { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--mm-space-3); padding: var(--mm-space-4); border: 1px solid var(--mm-color-border); border-radius: var(--mm-radius-md); background: var(--mm-color-surface); }
  .mm-mkt-supply__item img { width: 2.5rem; height: 2.5rem; }
  .mm-mkt-supply__title { font-size: var(--mm-text-base); }

  .mm-mkt-emergency { display: grid; gap: var(--mm-space-3); padding-inline-start: 1.5em; max-width: 70ch; }

  /* ---- Facts (definition rows) -------------------------------------------------------------- */
  .mm-mkt-facts { display: grid; gap: 0; max-width: 70ch; border-top: 1px solid var(--mm-color-border); }
  .mm-mkt-facts__row { display: grid; gap: var(--mm-space-1) var(--mm-space-4); padding-block: var(--mm-space-3); border-bottom: 1px solid var(--mm-color-border); }
  @media (min-width: 48em) { .mm-mkt-facts__row { grid-template-columns: 12rem minmax(0, 1fr); } }
  .mm-mkt-facts__row dt { font-weight: 700; }
  .mm-mkt-facts__row dd { display: flex; flex-wrap: wrap; gap: var(--mm-space-2); margin: 0; }

  /* ---- FAQ ---------------------------------------------------------------------------------- */
  .mm-mkt-faq__list { display: grid; max-width: 70ch; border-top: 1px solid var(--mm-color-border); }
  .mm-mkt-faq__item { border-bottom: 1px solid var(--mm-color-border); }
  .mm-mkt-faq__question { display: flex; align-items: center; justify-content: space-between; gap: var(--mm-space-3); min-height: 2.75rem; padding-block: var(--mm-space-3); font-weight: 600; cursor: pointer; list-style: none; }
  .mm-mkt-faq__question::-webkit-details-marker { display: none; }
  .mm-mkt-faq__question:hover { color: var(--mm-color-brand); }
  .mm-mkt-faq__chevron { transition: transform var(--mm-duration-base) var(--mm-ease); }
  .mm-mkt-faq__item[open] .mm-mkt-faq__chevron { transform: rotate(180deg); }
  .mm-mkt-faq__answer { padding-bottom: var(--mm-space-4); color: var(--mm-color-ink-muted); }

  /* ---- Prices, fees, calculator ------------------------------------------------------------- */
  .mm-mkt-fee p + p { margin-top: var(--mm-space-2); }
  .mm-mkt-calculator .mm-search-panel { max-width: var(--mm-width-narrow); }

  /* ---- Call-to-action bands ----------------------------------------------------------------- */
  .mm-mkt-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--mm-space-6); }
  .mm-mkt-cta-band { padding: var(--mm-space-8); border-radius: var(--mm-radius-lg); }

  /* ---- Home hero with photo (owner reference, 2026-10-13) -----------------------------------
     Desktop: the photo fills the right half behind the content and fades into the mint tint on its
     left edge; the content keeps half the width. Phones: the photo follows the search card. */
  .mm-mkt-hero { position: relative; isolation: isolate; }
  .mm-mkt-hero__inner { max-width: 1420px; margin-inline: auto; padding: clamp(3rem, 5vw, 5.125rem) var(--mm-space-6); }
  .mm-mkt-hero__content { width: 50%; max-width: 42.5rem; }
  .mm-mkt-hero__title { font-size: clamp(2.625rem, 3.5vw, 3.75rem); line-height: 1.06; letter-spacing: -0.035em; text-wrap: balance; }
  .mm-mkt-hero .mm-hero__lead { max-width: 39.5rem; }
  .mm-mkt-hero__photo { position: absolute; inset: 0 0 0 49%; z-index: -1; overflow: hidden; }
  .mm-mkt-hero__photo picture { display: block; height: 100%; }  /* inline <picture> would stop height:100% resolving */
  .mm-mkt-hero__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .mm-mkt-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--mm-color-brand-tint) 0%, transparent 14%); }
  @media (max-width: 68.75em) {
    .mm-mkt-hero__content { width: 52%; }
    .mm-mkt-hero__photo { left: 51%; }
    .mm-mkt-hero .mm-hero__lead { font-size: var(--mm-text-base); }
  }
  @media (max-width: 47.99em) {
    .mm-mkt-hero__inner { padding: 2.25rem 1.25rem 1.75rem; }
    .mm-mkt-hero__content { width: 100%; max-width: 37.5rem; margin-inline: auto; }
    .mm-mkt-hero__title { font-size: clamp(2rem, 7.6vw, 2.75rem); line-height: 1.12; }
    .mm-mkt-hero__photo { position: relative; inset: auto; z-index: auto; }
    .mm-mkt-hero__photo img { height: auto; }
    .mm-mkt-hero__photo::after { background: linear-gradient(180deg, var(--mm-color-brand-tint), transparent 12%); }
  }
}
