/* KRATTSMITH legal pages shared stylesheet
   Shared by ai-responsibility.html, privacy.html and terms.html.
   Depends on assets/kratt.css for base typography, buttons, cards and footer styles. */

html.legal-page,
html.legal-page body,
body.legal-page{
  min-height:100vh;
}

html[data-theme="dark"].legal-page body,
html[data-theme="dark"] body.legal-page{
  background:
    linear-gradient(180deg,rgba(8,11,13,.78),rgba(8,11,13,.92)),
    url("kratt-mountain-hero.webp") center center / cover no-repeat fixed !important;
}

html[data-theme="light"].legal-page body,
html[data-theme="light"] body.legal-page{
  background:
    linear-gradient(180deg,rgba(247,243,232,.34),rgba(247,243,232,.72)),
    url("kratt-mountain-hero.webp") center center / cover no-repeat fixed !important;
}

html[data-theme="dark"].legal-page .card,
html[data-theme="dark"] body.legal-page .card{
  background:rgba(14,18,21,.78) !important;
}

html[data-theme="light"].legal-page .card,
html[data-theme="light"] body.legal-page .card{
  background:rgba(255,252,242,.86) !important;
}

.legal-main{
  padding-top:96px !important;
  padding-bottom:56px !important;
}

.legal-main .card{
  max-width:920px;
  margin:0 auto;
}

.legal-main h1{
  font-size:clamp(2rem,4vw,3.2rem);
  line-height:1.1;
  margin-bottom:16px;
}

.legal-main h2{
  font-size:clamp(1.35rem,2.3vw,2rem);
  line-height:1.15;
  margin-top:34px;
  margin-bottom:10px;
  letter-spacing:-.025em;
}

.legal-main p,
.legal-main li{
  color:var(--muted);
}

.legal-main ul{
  margin:12px 0 0;
  padding-left:1.2rem;
}

.legal-main a{
  color:var(--yellow);
  text-decoration:underline;
  text-underline-offset:3px;
  font-weight:850;
}

.legal-nav{
  will-change:transform;
  transition:
    transform .58s cubic-bezier(.19,1,.22,1),
    background .24s ease,
    backdrop-filter .24s ease,
    padding .24s ease !important;
}

.legal-nav.nav-hidden{
  transform:translate3d(0,calc(-100% - 18px),0) !important;
}

@media(min-width:721px){
  .legal-nav{
    padding:14px 0 9px !important;
  }

  .legal-nav.scrolled{
    padding:8px 0 !important;
  }

  .legal-nav .wrap.nav-inner,
  .legal-nav .nav-inner{
    width:min(1180px, calc(100% - 36px)) !important;
    display:grid !important;
    grid-template-columns:auto 1fr auto !important;
    gap:18px !important;
    align-items:center !important;
  }

  .legal-nav .brand{
    gap:10px !important;
    font-size:1.24rem !important;
    letter-spacing:.10em !important;
    transform:none !important;
  }

  .legal-nav .brand-mark{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    font-size:1.05rem !important;
    border-radius:10px !important;
  }

  .legal-nav .nav-actions{
    gap:10px !important;
    transform:none !important;
  }

  .legal-nav .icon-btn,
  .legal-nav .lang-btn{
    padding:7px 3px !important;
    font-size:.9rem !important;
  }

  .legal-nav .divider{
    height:26px !important;
  }

  .legal-nav .back-home{
    padding:10px 14px !important;
    font-size:.88rem !important;
    line-height:1 !important;
    border-radius:8px !important;
  }
}

@media(max-width:820px){
  html[data-theme="dark"].legal-page body,
  html[data-theme="dark"] body.legal-page,
  html[data-theme="light"].legal-page body,
  html[data-theme="light"] body.legal-page{
    background-attachment:scroll !important;
    background-position:68% center !important;
  }

  .legal-nav{
    transform:translate3d(0,0,0);
    transition:
      transform .82s cubic-bezier(.16,1,.3,1),
      background .28s ease,
      backdrop-filter .28s ease,
      padding .28s ease !important;
  }

  .legal-nav.nav-hidden{
    transform:translate3d(0,calc(-100% - 24px),0) !important;
  }
}

@media(max-width:720px){
  .legal-main{
    padding-top:84px !important;
    padding-bottom:42px !important;
  }

  .legal-nav{
    padding:8px 0 !important;
  }

  .legal-nav .wrap.nav-inner,
  .legal-nav .nav-inner{
    width:calc(100% - 14px) !important;
    max-width:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:6px !important;
    padding:0 !important;
  }

  .legal-nav .brand{
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:none !important;
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    font-size:.95rem !important;
    letter-spacing:.08em !important;
    transform:none !important;
    white-space:nowrap !important;
    overflow:hidden !important;
  }

  .legal-nav .brand span:last-child{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .legal-nav .brand-mark{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    max-width:34px !important;
    min-height:34px !important;
    max-height:34px !important;
    font-size:.88rem !important;
    border-radius:8px !important;
  }

  .legal-nav .nav-spacer,
  .legal-nav .divider,
  .legal-nav .theme-label{
    display:none !important;
  }

  .legal-nav .nav-actions{
    flex:0 0 auto !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:6px !important;
    transform:none !important;
  }

  .legal-nav .icon-btn,
  .legal-nav .lang-btn{
    padding:5px 1px !important;
    font-size:.78rem !important;
    line-height:1 !important;
  }

  .legal-nav .back-home{
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    padding:7px 8px !important;
    font-size:.72rem !important;
    line-height:1 !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-align:center !important;
    border-radius:8px !important;
  }
}

@media(max-width:380px){
  .legal-nav .brand{
    font-size:.82rem !important;
    gap:6px !important;
  }

  .legal-nav .brand-mark{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    max-width:32px !important;
    min-height:32px !important;
    max-height:32px !important;
    font-size:.8rem !important;
  }

  .legal-nav .nav-actions{
    gap:4px !important;
  }

  .legal-nav .back-home{
    padding:6px 7px !important;
    font-size:.68rem !important;
  }
}


/* Keep KS logo visible and unclipped everywhere */
.brand{
  overflow:visible !important;
}
.brand-mark{
  overflow:visible !important;
  flex:0 0 auto !important;
}
.brand-mark-img{
  object-fit:contain !important;
  overflow:visible !important;
}

/* Legal pages: prevent logo cut-off on small screens */
.legal-nav .brand{
  overflow:visible !important;
  min-width:0 !important;
}
.legal-nav .brand-mark{
  overflow:visible !important;
  flex:0 0 auto !important;
}
.legal-nav .brand-mark-img{
  object-fit:contain !important;
  overflow:visible !important;
}

@media(max-width:720px){
  .legal-nav .wrap.nav-inner,
  .legal-nav .nav-inner{
    grid-template-columns:auto 1fr auto !important;
    overflow:visible !important;
  }

  .legal-nav .brand{
    gap:7px !important;
    transform:none !important;
    margin-left:0 !important;
    overflow:visible !important;
  }

  .legal-nav .brand-mark,
  .legal-nav .brand-mark-img{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    min-height:42px !important;
    max-height:42px !important;
  }

  .legal-nav .brand span:last-child{
    font-size:1rem !important;
    letter-spacing:.09em !important;
    white-space:nowrap !important;
  }
}

/* Main mobile dropdown: solid readable panel, no hero bleed-through */
@media(max-width:820px){
  .nav-links.open{
    position:absolute !important;
    top:calc(100% + 10px) !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    width:min(88vw, 420px) !important;
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    padding:28px 34px !important;
    border:1px solid var(--line) !important;
    border-radius:22px !important;
    box-shadow:0 22px 60px rgba(0,0,0,.28) !important;
    z-index:100 !important;
    backdrop-filter:blur(18px) saturate(130%) !important;
  }

  .nav-links.open a{
    display:block !important;
    padding:13px 0 !important;
    font-size:1.55rem !important;
    line-height:1.2 !important;
    font-weight:900 !important;
    text-align:left !important;
    opacity:1 !important;
    text-shadow:none !important;
  }

  .nav-links.open a::after{
    display:none !important;
  }

  html[data-theme="dark"] .nav-links.open{
    background:rgba(8,11,13,.96) !important;
  }

  html[data-theme="dark"] .nav-links.open a{
    color:#f7f7f2 !important;
  }

  html[data-theme="dark"] .nav-links.open a:hover,
  html[data-theme="dark"] .nav-links.open a.active{
    color:var(--yellow) !important;
  }

  html[data-theme="light"] .nav:has(.nav-links.open),
  html[data-theme="light"] .nav.scrolled:has(.nav-links.open){
    background:rgba(255,252,246,.96) !important;
    backdrop-filter:blur(18px) saturate(130%) !important;
  }

  html[data-theme="light"] .nav-links.open{
    background:rgba(255,252,242,.97) !important;
    color:#18352f !important;
    border-color:rgba(215,153,0,.34) !important;
  }

  html[data-theme="light"] .nav-links.open a{
    color:#18352f !important;
    opacity:1 !important;
  }

  html[data-theme="light"] .nav-links.open a:hover,
  html[data-theme="light"] .nav-links.open a.active{
    color:#d79900 !important;
  }

  html[data-theme="light"] .nav-actions,
  html[data-theme="light"] .nav-actions .icon-btn,
  html[data-theme="light"] .nav-actions .lang-btn{
    color:#18352f !important;
    opacity:1 !important;
  }
}

/* Slightly safer mobile header layout */
@media(max-width:720px){
  .nav-inner{
    overflow:visible !important;
  }

  .brand{
    min-width:0 !important;
  }

  .brand > span:last-child{
    white-space:nowrap !important;
  }
}


/* === Final light-mode darker KS logo fix === */
.brand-mark{
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  max-width:50px !important;
  min-height:50px !important;
  max-height:50px !important;
  flex:0 0 50px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
  animation:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  transition:transform .22s ease, filter .22s ease !important;
}
.brand-mark-img{
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  max-width:50px !important;
  min-height:50px !important;
  max-height:50px !important;
  display:block !important;
  object-fit:contain !important;
  transition:transform .22s ease, filter .22s ease !important;
}
.brand-mark-img-light{
  display:none !important;
}
html[data-theme="dark"] .brand-mark-img-dark{
  display:block !important;
  filter:
    drop-shadow(0 0 5px rgba(255,208,0,.24))
    drop-shadow(0 0 12px rgba(255,184,0,.12)) !important;
}
html[data-theme="dark"] .brand-mark-img-light{
  display:none !important;
}
html[data-theme="light"] .brand-mark-img-dark{
  display:none !important;
}
html[data-theme="light"] .brand-mark-img-light{
  display:block !important;
  filter:
    drop-shadow(0 1px 2px rgba(0,0,0,.12))
    drop-shadow(0 0 4px rgba(215,153,0,.18)) !important;
}
.brand:hover .brand-mark{
  transform:translateY(-1px) scale(1.025) !important;
}
html[data-theme="dark"] .brand:hover .brand-mark-img-dark{
  filter:
    drop-shadow(0 0 7px rgba(255,208,0,.38))
    drop-shadow(0 0 14px rgba(255,184,0,.18)) !important;
}
html[data-theme="light"] .brand:hover .brand-mark-img-light{
  filter:
    drop-shadow(0 1px 2px rgba(0,0,0,.14))
    drop-shadow(0 0 7px rgba(215,153,0,.34)) !important;
}
@media(max-width:720px){
  .brand-mark,
  .brand-mark-img{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    flex-basis:42px !important;
  }
}
@media(prefers-reduced-motion:reduce){
  .brand-mark,
  .brand-mark-img{
    transition:none !important;
  }
  .brand:hover .brand-mark{
    transform:none !important;
  }
}
