/* Dreamloud Portal — minimal public integration layer.
   Loaded on all public pages; the full portal design is loaded only where portal UI exists. */

.dlp-header-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.75rem;
  padding:.6rem .9rem;
  border:1px solid currentColor;
  border-radius:2px;
  color:inherit;
  font:600 .9rem/1.25 DLText,Manrope,Arial,sans-serif;
  text-decoration:none;
  text-align:center;
}

.dlp-site-links{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:.4rem 1rem;
  color:#f2eee4;
  font:400 .9rem/1.45 DLText,Manrope,Arial,sans-serif;
}
.dlp-site-links a{
  color:inherit;
  min-height:2.75rem;
  display:inline-flex;
  align-items:center;
  padding:.35rem 0;
  text-underline-offset:.22em;
}
.dlp-site-links button{
  appearance:none;
  -webkit-appearance:none;
  min-height:2.75rem;
  margin:0;
  padding:.35rem 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-decoration:underline;
  text-underline-offset:.22em;
  cursor:pointer;
}
.dlp-site-links:empty{display:none}

.dlp-public-dialog{
  --dlp-public-ink:#172953;
  --dlp-public-paper:#f2eee4;
  --dlp-public-yellow:#f9da5a;
  width:min(42rem,calc(100vw - 2rem));
  max-height:min(85dvh,46rem);
  overflow:auto;
  box-sizing:border-box;
  padding:clamp(1rem,4vw,2rem);
  border:2px solid var(--dlp-public-ink);
  border-radius:.55rem;
  background:var(--dlp-public-paper);
  color:var(--dlp-public-ink);
  font:400 1rem/1.6 DLText,Manrope,Arial,sans-serif;
}
.dlp-public-dialog::backdrop{background:rgb(9 15 38 / .8)}
.dlp-public-dialog :is(h2,p,label){color:inherit}
.dlp-public-dialog h2{
  margin:.5rem 0 1rem;
  font:800 clamp(1.8rem,6vw,2.8rem)/1 DLDisplay,"Barlow Condensed ExtraBold","Arial Narrow",Impact,sans-serif;
  text-transform:uppercase;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}
.dlp-public-dialog p{max-width:62ch}
.dlp-public-dialog button,
.dlp-public-dialog .dlp-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.75rem;
  max-width:100%;
  margin:.35rem;
  padding:.7rem 1rem;
  border:2px solid var(--dlp-public-ink);
  border-radius:.35rem;
  background:var(--dlp-public-yellow);
  color:var(--dlp-public-ink);
  font:700 .95rem/1.35 DLText,Manrope,Arial,sans-serif;
  text-decoration:none;
  cursor:pointer;
}
.dlp-public-dialog>[data-dlp-close]{
  display:block;
  margin:0 0 1rem auto;
  background:transparent;
}
.dlp-public-dialog .dlp-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  margin-top:1rem;
}
.dlp-public-dialog .dlp-check,
.dlp-public-dialog label{display:block}
.dlp-public-dialog input[type=checkbox]{
  width:1.25rem;
  height:1.25rem;
  margin-right:.45rem;
  vertical-align:middle;
}
.dlp-public-dialog :is(a,button,input):focus-visible,
.dlp-header-link:focus-visible,
.dlp-site-links :is(a,button):focus-visible{
  outline:3px solid #f9da5a;
  outline-offset:4px;
}

.dlp-teaser{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:20;
  max-width:calc(100vw - 2rem);
  padding:.8rem 1rem;
  border:2px solid #172953;
  border-radius:.5rem;
  background:#f9da5a;
  color:#172953;
  font:700 1rem/1.5 Arial,sans-serif;
}
.dlp-teaser[hidden]{display:none!important}

@media(max-width:45rem){
  .dlp-header-link{
    min-height:2.5rem;
    padding:.5rem .75rem;
    font-size:.82rem;
  }
  .dlp-public-dialog{
    width:calc(100vw - 1rem);
    padding:1rem;
  }
  .dlp-public-dialog .dlp-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .dlp-public-dialog .dlp-actions>*{
    width:100%;
    margin:.2rem 0;
  }
  .dlp-teaser{
    position:static;
    display:block;
    margin:1rem auto;
  }
}

@media(prefers-reduced-motion:reduce){
  .dlp-public-dialog *,
  .dlp-site-links *{animation:none!important;transition:none!important}
}

@media(forced-colors:active){
  .dlp-public-dialog :is(a,button,input):focus-visible,
  .dlp-header-link:focus-visible,
  .dlp-site-links :is(a,button):focus-visible{
    outline:3px solid Highlight;
  }
}

/* Portal 3.4.12 — A11Y-01 public-dialog reflow. */
.dlp-public-dialog :is(p,label,a,button){
  overflow-wrap:anywhere;
}
@media(max-width:400px){
  .dlp-public-dialog{
    width:calc(100% - .5rem);
    max-width:calc(100% - .5rem);
    padding:.85rem;
    border-radius:.35rem;
  }
  .dlp-public-dialog h2{
    font-size:clamp(1.65rem,10vw,2.2rem);
  }
  .dlp-public-dialog>[data-dlp-close],
  .dlp-public-dialog .dlp-button,
  .dlp-public-dialog button{
    max-width:100%;
  }
}
