/* Desert Moon — Wellness Match Finder
   Everything is scoped under .dmmf so Flatsome styles can't collide with it.
   Fonts fall back to the site's own when Cal Sans / Roboto are already loaded. */
.dmmf{
  --dmmf-bg:#f8f5f2; --dmmf-surface:#ffffff; --dmmf-soft:#f1ebe5;
  --dmmf-teal:#077d79; --dmmf-teal-2:#109a95; --dmmf-teal-tint:#e6f3f2;
  --dmmf-coral:#e96d50; --dmmf-coral-tint:#fbe9e3;
  --dmmf-ink:#1f2a2a; --dmmf-muted:#5f6868; --dmmf-line:#e6ddd4;
  --dmmf-display:"Cal Sans","Roboto","Helvetica Neue",Arial,sans-serif;
  --dmmf-body:"Roboto","Helvetica Neue",Arial,sans-serif;
  --dmmf-r-lg:25px; --dmmf-r-md:18px;
  font-family:var(--dmmf-body); color:var(--dmmf-ink); background:var(--dmmf-bg);
  font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
  border-radius:var(--dmmf-r-lg);
}
.dmmf *,.dmmf *::before,.dmmf *::after{ box-sizing:border-box; }
.dmmf h2,.dmmf h3{ font-family:var(--dmmf-display); font-weight:400; font-synthesis:none; color:var(--dmmf-ink); margin:0; letter-spacing:-.01em; text-transform:none; line-height:1.1; text-wrap:balance; }
.dmmf p{ margin:0; }
.dmmf ul,.dmmf ol,.dmmf li{ margin:0; padding:0; list-style:none; background:none; }
.dmmf li::before,.dmmf li::after,.dmmf-chip::before,.dmmf-chip::after{ content:none !important; display:none !important; }
.dmmf button{ font:inherit; margin:0; min-height:0; line-height:1.3; text-transform:none; letter-spacing:normal; cursor:pointer; box-shadow:none; }
.dmmf a{ color:var(--dmmf-teal); }
.dmmf :focus-visible{ outline:2px solid var(--dmmf-coral); outline-offset:3px; }
.dmmf-i{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.dmmf-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.dmmf-inner{ max-width:1180px; margin:0 auto; padding:24px 20px; display:grid; gap:22px; }

/* Head */
.dmmf-head{ display:grid; gap:6px; }
.dmmf .dmmf-title{ font-size:clamp(22px,2.6vw,28px); letter-spacing:0; margin:0; }
.dmmf-lede{ color:var(--dmmf-muted); font-size:15.5px; max-width:60ch; }

/* Goals */
.dmmf-goals{ display:grid; grid-template-columns:1fr; gap:10px; }
.dmmf-goal{
  display:grid; grid-template-columns:44px 1fr 22px; gap:14px; align-items:center; text-align:left;
  width:100%; padding:14px 16px; border:1px solid var(--dmmf-line); border-radius:var(--dmmf-r-md);
  background:var(--dmmf-surface); color:var(--dmmf-ink); transition:border-color .15s, background .15s;
}
.dmmf-goal:hover{ border-color:var(--dmmf-teal-2); }
.dmmf-goal-ico{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--dmmf-teal-tint); color:var(--dmmf-teal); transition:background .15s, color .15s; }
.dmmf-goal-text{ display:grid; gap:2px; min-width:0; overflow-wrap:anywhere; }
.dmmf-goal-label{ font-weight:500; font-size:16.5px; }
.dmmf-goal-hint{ color:var(--dmmf-muted); font-size:14px; line-height:1.35; }
.dmmf-tick{ width:22px; height:22px; border-radius:50%; border:1px solid var(--dmmf-line); display:grid; place-items:center; color:transparent; }
.dmmf-tick .dmmf-i{ width:13px; height:13px; stroke-width:2.6; }
.dmmf-goal[aria-pressed="true"]{ border-color:var(--dmmf-teal); background:var(--dmmf-teal-tint); box-shadow:inset 0 0 0 1px var(--dmmf-teal); }
.dmmf-goal[aria-pressed="true"] .dmmf-goal-ico{ background:var(--dmmf-teal); color:#fff; }
.dmmf-goal[aria-pressed="true"] .dmmf-tick{ background:var(--dmmf-coral); border-color:var(--dmmf-coral); color:#fff; }
.dmmf-goal[aria-disabled="true"]{ opacity:.45; cursor:not-allowed; }
.dmmf-goal[aria-disabled="true"]:hover{ border-color:var(--dmmf-line); }
.dmmf-status{ font-size:14px; color:var(--dmmf-muted); min-height:0; margin:-8px 0 0; }
.dmmf-status:empty{ display:none; }

/* Results */
.dmmf-results{ display:grid; gap:18px; }
.dmmf-results-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; padding-top:8px; border-top:1px solid var(--dmmf-line); padding-block:18px 0; }
.dmmf-results-head h3{ font-size:24px; }
.dmmf-results-head p{ color:var(--dmmf-muted); font-size:15px; }
.dmmf-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
.dmmf-rest[hidden]{ display:none; }

.dmmf-card{
  display:flex; flex-direction:column; gap:12px; padding:20px; min-width:0;
  background:var(--dmmf-surface); border:1px solid var(--dmmf-line); border-radius:var(--dmmf-r-lg);
}
.dmmf-card-top{ display:flex; gap:12px; align-items:center; }
.dmmf-card-ico{ width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:var(--dmmf-teal-tint); color:var(--dmmf-teal); flex:none; }
.dmmf .dmmf-card-name{ font-size:20px; letter-spacing:0; line-height:1.15; margin:0; }
.dmmf-card-cat{ color:var(--dmmf-muted); font-size:13.5px; margin-top:2px; }
.dmmf-card-desc{ color:var(--dmmf-muted); font-size:15px; }
.dmmf-card-fits{ display:grid; gap:6px; }
.dmmf .dmmf-fits-label{ font-size:12.5px; color:var(--dmmf-muted); letter-spacing:.04em; text-transform:uppercase; }
.dmmf .dmmf-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.dmmf .dmmf-chip{ display:inline-block; margin:0; padding:4px 11px; border-radius:999px; background:var(--dmmf-coral-tint); background-image:none; color:#a8412a; font-size:13px; font-weight:500; line-height:1.4; white-space:nowrap; }
.dmmf-card-note{ font-size:13px; color:var(--dmmf-muted); border-left:2px solid var(--dmmf-line); padding-left:10px; }
.dmmf-more{ margin-top:auto; display:inline-flex; align-items:center; gap:6px; font-weight:500; font-size:15px; text-decoration:none; padding-top:4px; align-self:flex-start; }
.dmmf-more .dmmf-i{ width:18px; height:18px; transition:transform .15s; }
.dmmf-more:hover .dmmf-i{ transform:translateX(3px); }

.dmmf-toggle{ justify-self:start; background:transparent; border:1px solid var(--dmmf-teal); color:var(--dmmf-teal); border-radius:999px; padding:10px 18px; font-weight:500; font-size:15px; }
.dmmf-toggle:hover{ background:var(--dmmf-teal-tint); }

.dmmf-extras{ display:grid; gap:8px; padding:16px 18px; border-radius:var(--dmmf-r-md); background:var(--dmmf-soft); font-size:15px; }
.dmmf-extras strong{ font-weight:500; }


.dmmf-disclaimer{ font-size:12.5px; color:var(--dmmf-muted); max-width:90ch; }

@media (max-width:959px){
  .dmmf-goal{ grid-template-columns:1fr auto; grid-template-areas:"ico tick" "text text"; align-items:start; gap:10px; padding:14px; }
  .dmmf-goal-ico{ grid-area:ico; width:38px; height:38px; }
  .dmmf-tick{ grid-area:tick; }
  .dmmf-goal-text{ grid-area:text; }
}
@media (max-width:639px){
  .dmmf-goals{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .dmmf-goal{ padding:12px; }
  .dmmf-goal-label{ font-size:15px; line-height:1.25; }
  .dmmf-goal-hint{ display:none; }
}
@media (min-width:640px){
  .dmmf-inner{ padding:32px; gap:26px; }
  .dmmf-goals{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .dmmf-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:960px){
  .dmmf-inner{ padding:40px 48px; }
  .dmmf-goals{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .dmmf-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce){
  .dmmf *{ transition:none !important; }
}
