
/* DermPrep Idea 9.37 — final consolidated visual repair layer */
:root{
  --dp-logo-width:172px;
  --dp-forest:#0B4A3F;
  --dp-dark:#083A32;
  --dp-coral:#F07A62;
  --dp-cream:#F7F1E7;
  --dp-paper:#FFFDF8;
  --dp-text:#173F38;
  --dp-muted:#5F706B;
  --dp-gold:#B99A5E;
  --dp-line:rgba(23,63,56,.16);
  --dp-dark-text:#F7F1E7;
  --dp-dark-body:rgba(247,241,231,.88);
  --dp-dark-muted:rgba(247,241,231,.72);
  --dp-dark-divider:rgba(247,241,231,.16);
  --dp-shell:1220px;
  --dp-radius-card:16px;
  --dp-radius-control:10px;
  --dp-shadow-subtle:0 5px 18px rgba(8,58,50,.045);
  --dp-shadow-elevated:0 14px 34px rgba(8,58,50,.075);
  --dp-shadow-overlay:0 24px 54px rgba(8,58,50,.15);
}

/* ---------- true page shell / no post-footer strip ---------- */
html{
  min-height:100%;
  margin:0;
  background:var(--dp-dark);
}
body.dp937-page{
  min-height:100dvh!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  background:var(--dp-dark)!important;
  color:var(--dp-text);
}
body.dp937-page > main{
  width:100%;
  flex:0 0 auto;
  background:var(--dp-paper);
}
body.dp937-page > .dp-global-footer{
  margin-top:auto!important;
  margin-bottom:0!important;
  flex:0 0 auto;
}
/* React-root homepage owns its own canonicalized footer. */
body.dp937-page #root{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  background:var(--dp-paper)!important;
}
body.dp937-page #root > main{
  flex:1 0 auto;
  background:var(--dp-paper)!important;
}
body.dp937-page #root > .dp-global-footer{
  margin-top:auto!important;
  flex:0 0 auto;
}

/* ---------- logo scale ---------- */
.dp-nav-logo img,
.site-header .logo img,
.dp-footer-logo{
  width:var(--dp-logo-width)!important;
  max-width:var(--dp-logo-width)!important;
  height:auto!important;
  object-fit:contain!important;
  filter:none!important;
  opacity:1!important;
}

/* ---------- accessible skip link: hidden until focus ---------- */
body.dp937-page .skip,
body.dp937-page .dp-skip,
body.dp937-page .pm-skip,
body.dp937-page .qp-skip{
  position:fixed!important;
  left:12px!important;
  top:-90px!important;
  z-index:10000!important;
  display:inline-flex!important;
  align-items:center;
  min-height:44px;
  padding:10px 14px!important;
  border-radius:8px!important;
  background:var(--dp-dark)!important;
  color:var(--dp-cream)!important;
  font:800 .82rem/1 "DM Sans",sans-serif!important;
  text-decoration:none!important;
  transition:top .14s ease!important;
}
body.dp937-page .skip:focus,
body.dp937-page .dp-skip:focus,
body.dp937-page .pm-skip:focus,
body.dp937-page .qp-skip:focus{
  top:12px!important;
  outline:3px solid var(--dp-coral)!important;
  outline-offset:3px!important;
}

/* ---------- canonical editorial canvas ---------- */
body.dp937-page .shell,
body.dp937-page .pm-shell,
body.dp937-page .qp-shell,
body.dp937-page .dp-footer-inner,
body.dp937-page .dp-footer-bottom{
  width:min(var(--dp-shell),calc(100% - 64px));
  margin-left:auto;
  margin-right:auto;
}

/* ---------- typography system ---------- */
body.dp937-page{
  font-family:"DM Sans",Arial,sans-serif;
}
body.dp937-page h1,
body.dp937-page h2,
body.dp937-page h3{
  font-family:"Playfair Display",Georgia,serif;
}
body.dp937-page p,
body.dp937-page li,
body.dp937-page label{
  line-height:1.55;
}

/* Start Here headline correction */
body.dp937-page .dp937-start-h1,
body.dp937-page .sh-hero h1#page-title{
  max-width:760px!important;
  margin:12px 0 18px!important;
  font-size:clamp(3.15rem,5vw,5.15rem)!important;
  line-height:.96!important;
  letter-spacing:-.047em!important;
  text-wrap:balance!important;
}
body.dp937-page .sh-hero h1#page-title em{
  font-size:.95em!important;
  font-weight:500!important;
}

/* Quieter breadcrumbs */
body.dp937-page .breadcrumb,
body.dp937-page .pm-breadcrumb,
body.dp937-page .qp-breadcrumb{
  color:#70807b!important;
  font-size:.78rem!important;
  line-height:1.4!important;
}
body.dp937-page .breadcrumb a,
body.dp937-page .pm-breadcrumb a,
body.dp937-page .qp-breadcrumb a{
  color:#536762!important;
  text-decoration-color:rgba(83,103,98,.34)!important;
}

/* ---------- dark-surface system ---------- */
body.dp937-page .deep-green,
body.dp937-page .dark,
body.dp937-page .dark-band,
body.dp937-page .sh-dark,
body.dp937-page .deep,
body.dp937-page .pm-trust,
body.dp937-page .pm930-education,
body.dp937-page .resource-mark,
body.dp937-page .pathway,
body.dp937-page .bottom{
  background-color:var(--dp-dark)!important;
  color:var(--dp-dark-text)!important;
}
body.dp937-page .deep-green :is(h1,h2,h3,h4,strong,b),
body.dp937-page .dark :is(h1,h2,h3,h4,strong,b),
body.dp937-page .dark-band :is(h1,h2,h3,h4,strong,b),
body.dp937-page .sh-dark :is(h1,h2,h3,h4,strong,b),
body.dp937-page .deep :is(h1,h2,h3,h4,strong,b),
body.dp937-page .pm-trust :is(h1,h2,h3,h4,strong,b),
body.dp937-page .pm930-education :is(h1,h2,h3,h4,strong,b),
body.dp937-page .resource-mark :is(h1,h2,h3,h4,strong,b),
body.dp937-page .pathway :is(h1,h2,h3,h4,strong,b),
body.dp937-page .bottom :is(h1,h2,h3,h4,strong,b){
  color:var(--dp-dark-text)!important;
  -webkit-text-fill-color:var(--dp-dark-text)!important;
}
body.dp937-page .deep-green :is(p,span,small,li),
body.dp937-page .dark :is(p,span,small,li),
body.dp937-page .dark-band :is(p,span,small,li),
body.dp937-page .sh-dark :is(p,span,small,li),
body.dp937-page .deep :is(p,span,small,li),
body.dp937-page .pm-trust :is(p,span,small,li),
body.dp937-page .pm930-education :is(p,span,small,li),
body.dp937-page .resource-mark :is(p,span,small,li),
body.dp937-page .pathway :is(p,span,small,li),
body.dp937-page .bottom :is(p,span,small,li){
  color:var(--dp-dark-body)!important;
  -webkit-text-fill-color:var(--dp-dark-body)!important;
}
body.dp937-page .deep-green a,
body.dp937-page .dark a,
body.dp937-page .dark-band a,
body.dp937-page .sh-dark a,
body.dp937-page .deep a,
body.dp937-page .pm-trust a,
body.dp937-page .pm930-education a,
body.dp937-page .resource-mark a,
body.dp937-page .pathway a,
body.dp937-page .bottom a{
  color:var(--dp-dark-text)!important;
  -webkit-text-fill-color:var(--dp-dark-text)!important;
}
body.dp937-page .deep-green a:hover,
body.dp937-page .deep-green a:focus-visible,
body.dp937-page .dark a:hover,
body.dp937-page .dark a:focus-visible,
body.dp937-page .pm-trust a:hover,
body.dp937-page .pm-trust a:focus-visible,
body.dp937-page .pm930-education a:hover,
body.dp937-page .pm930-education a:focus-visible,
body.dp937-page .pathway a:hover,
body.dp937-page .pathway a:focus-visible{
  color:var(--dp-coral)!important;
  -webkit-text-fill-color:var(--dp-coral)!important;
}

/* Root React homepage must never inherit body dark background into ordinary sections. */
body.dp937-page #root .section:not(.bottom):not(.pimppage),
body.dp937-page #root .atlas{
  color:var(--dp-text)!important;
}
body.dp937-page #root .section:not(.bottom):not(.pimppage) .heading h2,
body.dp937-page #root .atlas .heading h2{
  color:var(--dp-text)!important;
  -webkit-text-fill-color:var(--dp-text)!important;
}

/* ---------- mega-menu hover / focus repair ---------- */
.dp-nav .dp-mega a,
.dp-nav .dp-mega a:link,
.dp-nav .dp-mega a:visited{
  background:transparent!important;
  color:var(--dp-text)!important;
  -webkit-text-fill-color:var(--dp-text)!important;
  border-radius:10px!important;
  opacity:1!important;
  filter:none!important;
  transition:background-color .16s ease,color .16s ease!important;
}
.dp-nav .dp-mega a strong,
.dp-nav .dp-mega a:visited strong{
  color:var(--dp-text)!important;
  -webkit-text-fill-color:var(--dp-text)!important;
}
.dp-nav .dp-mega a span,
.dp-nav .dp-mega a:visited span{
  color:var(--dp-muted)!important;
  -webkit-text-fill-color:var(--dp-muted)!important;
  opacity:1!important;
}
.dp-nav .dp-mega a:hover,
.dp-nav .dp-mega a:focus-visible{
  background:var(--dp-cream)!important;
  color:var(--dp-forest)!important;
  -webkit-text-fill-color:var(--dp-forest)!important;
  transform:none!important;
}
.dp-nav .dp-mega a:hover strong,
.dp-nav .dp-mega a:focus-visible strong{
  color:var(--dp-forest)!important;
  -webkit-text-fill-color:var(--dp-forest)!important;
}
.dp-nav .dp-mega a:hover span,
.dp-nav .dp-mega a:focus-visible span{
  color:#50635D!important;
  -webkit-text-fill-color:#50635D!important;
}
.dp-nav .dp-mega a:focus-visible{
  outline:3px solid rgba(240,122,98,.58)!important;
  outline-offset:2px!important;
}
.dp-nav .dp-nav-button:visited{
  color:var(--dp-text)!important;
  -webkit-text-fill-color:var(--dp-text)!important;
}

/* ---------- canonical card hierarchy ---------- */
body.dp937-page :is(.featured-card,.pm-card,.pm932-mode-card,.pm930-card,.resource-card,.decision-grid article){
  border-color:var(--dp-line)!important;
  border-radius:var(--dp-radius-card)!important;
  box-shadow:var(--dp-shadow-subtle)!important;
}
body.dp937-page :is(.featured-card,.pm-card,.pm932-mode-card,.pm930-card,.resource-card):hover{
  border-color:rgba(240,122,98,.42)!important;
  box-shadow:var(--dp-shadow-elevated)!important;
}

/* ---------- Pimp Me signature feature: typography, not odd decoration ---------- */
body.dp937-page .dp937-clinical-reasoning{
  min-height:0!important;
  padding:30px 32px!important;
  border:0!important;
  border-radius:var(--dp-radius-card)!important;
  background:linear-gradient(145deg,var(--dp-dark),var(--dp-forest))!important;
  color:var(--dp-dark-text)!important;
  box-shadow:var(--dp-shadow-elevated)!important;
}
.dp937-kicker{
  margin:0 0 12px!important;
  color:var(--dp-coral)!important;
  font:800 .68rem/1 "DM Sans",sans-serif!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
}
.dp937-clinical-reasoning h2{
  margin:0!important;
  max-width:13ch;
  color:var(--dp-cream)!important;
  -webkit-text-fill-color:var(--dp-cream)!important;
  font:600 clamp(2.1rem,3.2vw,3rem)/1 "Playfair Display",serif!important;
  letter-spacing:-.035em!important;
  text-wrap:balance;
}
.dp937-reasoning-line{
  margin-top:24px;
  padding-top:17px;
  border-top:1px solid var(--dp-dark-divider);
  display:flex;
  flex-wrap:wrap;
  gap:8px 11px;
  align-items:center;
}
.dp937-reasoning-line span{
  color:var(--dp-cream)!important;
  font:800 .75rem/1.25 "DM Sans",sans-serif;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.dp937-reasoning-line i{
  color:var(--dp-coral)!important;
  font-style:normal;
  font-weight:900;
}
.dp937-reasoning-foot{
  margin:18px 0 0!important;
  color:var(--dp-dark-body)!important;
  -webkit-text-fill-color:var(--dp-dark-body)!important;
  font:700 .85rem/1.45 "DM Sans",sans-serif!important;
}

/* Pimp Me Browse card: keep green panel readable if legacy CSS makes it dark. */
body.dp937-page .pm-browse-card{
  color:var(--dp-dark-text)!important;
}
body.dp937-page .pm-browse-card :is(h2,p,strong,.pm-eyebrow){
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
body.dp937-page .pm-browse-card .pm-eyebrow{color:var(--dp-coral)!important}

/* ---------- Random Mix: compact learner-facing chooser ---------- */
body.dp937-page .rm-category-grid{
  grid-template-columns:1fr!important;
  gap:6px!important;
}
body.dp937-page .rm-category{
  min-height:50px!important;
  padding:10px 12px!important;
  align-items:center!important;
  border-radius:10px!important;
  background:#fff!important;
}
body.dp937-page .rm-category span{
  width:100%;
  display:flex!important;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
body.dp937-page .rm-category strong{
  color:var(--dp-text)!important;
  font-size:.84rem;
}
body.dp937-page .rm-category small{
  margin:0!important;
  color:var(--dp-muted)!important;
  font-size:.73rem!important;
  white-space:nowrap;
}
body.dp937-page .rm-filter-primary{
  grid-template-columns:1fr 1fr!important;
  margin:18px 0 10px!important;
}
body.dp937-page .rm-more-options{
  margin:0 0 15px;
  border-top:1px solid var(--dp-line);
  border-bottom:1px solid var(--dp-line);
}
body.dp937-page .rm-more-options summary{
  min-height:44px;
  display:flex;
  align-items:center;
  cursor:pointer;
  color:var(--dp-text);
  font-weight:800;
  font-size:.8rem;
}
body.dp937-page .rm-filter-secondary{
  grid-template-columns:1fr 1fr!important;
  margin:0 0 14px!important;
}
body.dp937-page .rm-empty-topics{
  margin:0;
  padding:15px 0;
  color:var(--dp-muted);
}
body.dp937-page .rm-summary{
  padding:13px 14px!important;
  margin-bottom:12px!important;
}

/* ---------- reasoning subpages ---------- */
body.dp937-page .dp937-timeline{
  list-style:none!important;
  margin:20px 0 0!important;
  padding:0 0 0 26px!important;
  position:relative;
}
body.dp937-page .dp937-timeline::before{
  content:"";
  position:absolute;
  left:10px;
  top:10px;
  bottom:10px;
  width:2px;
  background:rgba(240,122,98,.55);
}
body.dp937-page .dp937-timeline li{
  position:relative;
  display:flex!important;
  align-items:flex-start;
  gap:12px!important;
  min-height:48px;
  padding:6px 0 14px!important;
  border:0!important;
  background:transparent!important;
}
body.dp937-page .dp937-timeline li b{
  position:relative;
  z-index:1;
  display:grid!important;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  margin-left:-31px;
  border-radius:50%;
  background:var(--dp-coral)!important;
  color:var(--dp-dark)!important;
  font:800 .68rem/1 "DM Sans",sans-serif!important;
}
body.dp937-page .dp937-description-workspace{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  padding:0!important;
  list-style:none!important;
}
body.dp937-page .dp937-description-workspace li{
  min-height:92px;
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  padding:15px!important;
  border:1px solid var(--dp-line)!important;
  border-radius:12px!important;
  background:#fff!important;
}
body.dp937-page .dp937-description-workspace li b{
  color:var(--dp-coral)!important;
  font-size:.66rem!important;
}
body.dp937-page .dp937-rapid-strip{
  display:flex!important;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 10px!important;
  padding:14px 16px!important;
  border-radius:12px!important;
  background:var(--dp-dark)!important;
  color:var(--dp-cream)!important;
}
body.dp937-page .dp937-rapid-strip span{
  color:var(--dp-cream)!important;
  font-weight:800!important;
}
body.dp937-page .dp937-rapid-strip i{
  color:var(--dp-coral)!important;
}

/* ---------- Resources ---------- */
body.dp937-page .resource-hero{
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)!important;
  gap:46px!important;
  align-items:center!important;
  padding-top:46px!important;
  padding-bottom:44px!important;
}
body.dp937-page .resource-hero h1{
  font-size:clamp(3rem,5.2vw,5.2rem)!important;
  line-height:.97!important;
  text-wrap:balance!important;
}
body.dp937-page .resource-mark{
  min-height:250px!important;
  border-radius:18px!important;
  box-shadow:var(--dp-shadow-elevated)!important;
}
body.dp937-page .resource-mark strong{
  color:var(--dp-cream)!important;
  -webkit-text-fill-color:var(--dp-cream)!important;
}
body.dp937-page .resource-mark span{
  color:var(--dp-gold)!important;
  -webkit-text-fill-color:var(--dp-gold)!important;
}
body.dp937-page .resource-hero .back{
  display:inline-flex!important;
  align-items:center;
  min-height:44px;
  padding:0!important;
  margin-top:24px!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--dp-forest)!important;
  -webkit-text-fill-color:var(--dp-forest)!important;
  text-decoration:none!important;
  font-weight:800!important;
}
body.dp937-page .resource-hero .back:hover,
body.dp937-page .resource-hero .back:focus-visible{
  color:var(--dp-coral)!important;
  -webkit-text-fill-color:var(--dp-coral)!important;
}
/* Never display visually empty controls from stale styling. */
body.dp937-page a:empty:not(.dp-footer-logo-plate):not(.dp-nav-logo),
body.dp937-page button:empty:not(.menu):not(.dp-menu-toggle){
  display:none!important;
}

/* ---------- compact section-specific pre-footers ---------- */
body.dp937-page .pm930-continuation{
  padding:32px 0!important;
}
body.dp937-page .pm930-continuation h2{
  font-size:clamp(1.8rem,3vw,2.5rem)!important;
}
body.dp937-page .pm930-continuation-copy{
  display:none!important;
}

/* v940: footer styling migrated to /assets/dermprep-footer-v940.css */

/* ---------- focus ---------- */
body.dp937-page a:focus-visible,
body.dp937-page button:focus-visible,
body.dp937-page input:focus-visible,
body.dp937-page select:focus-visible,
body.dp937-page textarea:focus-visible{
  outline:3px solid rgba(240,122,98,.6)!important;
  outline-offset:3px!important;
}

/* ---------- responsive ---------- */
@media(max-width:900px){
  body.dp937-page .resource-hero{
    grid-template-columns:1fr!important;
    gap:26px!important;
  }
  body.dp937-page .resource-mark{min-height:210px!important}
  .dp-global-footer .dp-footer-inner{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .dp-footer-nav{
    justify-content:flex-start!important;
  }
}
@media(max-width:640px){
  body.dp937-page .shell,
  body.dp937-page .pm-shell,
  body.dp937-page .qp-shell,
  body.dp937-page .dp-footer-inner,
  body.dp937-page .dp-footer-bottom{
    width:min(100% - 32px,var(--dp-shell))!important;
  }
  body.dp937-page .dp937-start-h1,
  body.dp937-page .sh-hero h1#page-title{
    font-size:clamp(2.7rem,12vw,3.8rem)!important;
    max-width:100%!important;
  }
  body.dp937-page .dp937-clinical-reasoning{
    padding:22px 20px!important;
  }
  .dp937-reasoning-line{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 16px;
  }
  .dp937-reasoning-line i{display:none}
  body.dp937-page .rm-filter-primary,
  body.dp937-page .rm-filter-secondary{
    grid-template-columns:1fr!important;
  }
  body.dp937-page .rm-category span{
    align-items:flex-start;
  }
  body.dp937-page .dp937-description-workspace{
    grid-template-columns:1fr 1fr!important;
  }
  .dp-global-footer.dp937-footer,
  #root > .dp-global-footer.dp937-react-footer{
    padding:25px 0 17px!important;
  }
  .dp-footer-nav{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:0!important;
  }
  .dp-footer-nav a{
    display:flex!important;
    align-items:center;
    min-height:44px;
  }
  .dp-footer-bottom{
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:13px!important;
  }
  .dp-footer-email{white-space:normal}
}
@media(max-width:430px){
  body.dp937-page .dp937-description-workspace{
    grid-template-columns:1fr!important;
  }
}
@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
  }
  body.dp937-page :is(.featured-card,.pm-card,.pm932-mode-card,.pm930-card,.resource-card):hover{
    transform:none!important;
  }
}
@media print{
  html,body.dp937-page{background:#fff!important}
  .dp-global-footer{
    background:#fff!important;
    color:#111!important;
    border-top:1px solid #bbb!important;
  }
  .dp-global-footer *{
    color:#111!important;
    -webkit-text-fill-color:#111!important;
  }
  .dp-footer-logo-plate{background:#fff!important;padding:0!important}
}
