/* ============================================================
   legal.css — shared styles for legal/informational pages
   (privacy-policy.html, terms.html, disclaimers.html,
    accessibility.html)

   Matches the design tokens defined in index.html:
     --stone-* palette
     --pine / --pine-light / --pine-dark
     --gold / --gold-light
     --snow
   ============================================================ */

/* Design tokens — kept in sync with index.html */
:root{
  --stone-50:#fafaf9;
  --stone-100:#f5f5f4;
  --stone-200:#e7e5e4;
  --stone-300:#d6d3d1;
  --stone-400:#a8a29e;
  --stone-500:#78716c;
  --stone-600:#57534e;
  --stone-700:#44403c;
  --stone-800:#292524;
  --stone-900:#1c1917;
  --pine:#2d4a3e;
  --pine-light:#3d6554;
  --pine-dark:#1e332b;
  --gold:#b8860b;
  --gold-light:#d4a843;
  --snow:#fefdfb;
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  font-family:'DM Sans',sans-serif;
  color:var(--stone-800);
  background:var(--snow);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  line-height:1.6;
}

/* ----------------------------------------------------------
   Skip-to-main link (ADA — keyboard users jump past nav)
---------------------------------------------------------- */
.skip-to-main{
  position:absolute;
  top:-100px;
  left:0;
  background:var(--stone-900);
  color:var(--snow);
  padding:12px 20px;
  z-index:9999;
  text-decoration:none;
  font-weight:600;
  font-size:.9rem;
  letter-spacing:.02em;
  transition:top .2s ease;
}
.skip-to-main:focus{top:0}

/* ----------------------------------------------------------
   Navigation (simplified — matches index.html aesthetic)
---------------------------------------------------------- */
.legal-nav{
  position:sticky;
  top:0;
  z-index:100;
  padding:20px 40px;
  background:var(--snow);
  border-bottom:1px solid var(--stone-200);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.legal-nav-logo{
  font-family:'Cormorant Garamond',serif;
  font-weight:600;
  font-size:1.3rem;
  color:var(--stone-800);
  text-decoration:none;
  letter-spacing:.02em;
}
.legal-nav-logo:hover{color:var(--gold)}
.legal-nav-back{
  font-size:.85rem;
  color:var(--stone-600);
  text-decoration:none;
  letter-spacing:.04em;
  transition:color .3s ease;
}
.legal-nav-back:hover{color:var(--gold)}

/* ----------------------------------------------------------
   Main content
---------------------------------------------------------- */
.legal-container{
  max-width:760px;
  margin:0 auto;
  padding:80px 40px 120px;
}

.legal-eyebrow{
  font-weight:500;
  font-size:.72rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:20px;
}

.legal-container h1{
  font-family:'Cormorant Garamond',serif;
  font-weight:400;
  font-size:clamp(2.2rem,5vw,3.4rem);
  line-height:1.1;
  color:var(--stone-900);
  letter-spacing:-.01em;
  margin-bottom:16px;
}

.legal-updated{
  font-size:.82rem;
  color:var(--stone-400);
  margin-bottom:48px;
  padding-bottom:24px;
  border-bottom:1px solid var(--stone-200);
}

.legal-container h2{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:1.6rem;
  color:var(--stone-900);
  margin-top:48px;
  margin-bottom:16px;
  line-height:1.25;
  letter-spacing:-.005em;
}

.legal-container h3{
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:1.02rem;
  color:var(--stone-800);
  margin-top:28px;
  margin-bottom:10px;
  letter-spacing:.01em;
}

.legal-container p{
  font-size:1rem;
  line-height:1.75;
  color:var(--stone-700);
  margin-bottom:16px;
}

.legal-container a{
  color:var(--pine);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:var(--stone-300);
  transition:all .2s ease;
}
.legal-container a:hover{
  color:var(--gold);
  text-decoration-color:var(--gold);
}

.legal-container ul,
.legal-container ol{
  margin:0 0 16px 0;
  padding-left:24px;
}
.legal-container li{
  font-size:1rem;
  line-height:1.75;
  color:var(--stone-700);
  margin-bottom:8px;
}
.legal-container ul li::marker{color:var(--gold)}

.legal-container strong{
  color:var(--stone-900);
  font-weight:600;
}

/* Callout box — used for important notices */
.legal-callout{
  background:var(--stone-50);
  border-left:3px solid var(--gold);
  padding:20px 24px;
  margin:28px 0;
  font-size:.95rem;
  line-height:1.7;
  color:var(--stone-700);
}
.legal-callout strong{color:var(--stone-900)}

/* Contact block at bottom of each legal page */
.legal-contact{
  margin-top:48px;
  padding:28px 32px;
  background:var(--stone-900);
  color:var(--snow);
}
.legal-contact h2{
  color:var(--snow);
  margin-top:0;
  font-size:1.3rem;
}
.legal-contact p{color:rgba(254,253,251,.75)}
.legal-contact a{
  color:var(--gold-light);
  text-decoration-color:rgba(212,168,67,.3);
}
.legal-contact a:hover{color:var(--snow)}

/* ----------------------------------------------------------
   Footer (matches index.html)
---------------------------------------------------------- */
footer{
  max-width:100%;
  background:var(--stone-900);
  padding:60px 40px;
}
.footer-inner{
  max-width:1200px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:40px;
}
.footer-brand{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  font-size:1.2rem;
  color:var(--snow);
  margin-bottom:12px;
}
.footer-address{
  font-size:.82rem;
  color:var(--stone-500);
  line-height:1.7;
}
.footer-links{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
}
.footer-links a{
  font-size:.82rem;
  color:var(--stone-500);
  text-decoration:none;
  transition:color .3s ease;
}
.footer-links a:hover{color:var(--gold-light)}
.footer-legal-links{
  display:flex;
  gap:20px;
  margin-top:24px;
  flex-wrap:wrap;
}
.footer-legal-links a{
  font-size:.75rem;
  color:var(--stone-500);
  text-decoration:none;
  transition:color .3s ease;
}
.footer-legal-links a:hover{color:var(--gold-light)}
.footer-managed{
  font-size:.75rem;
  color:var(--stone-600);
  margin-top:40px;
  padding-top:24px;
  border-top:1px solid var(--stone-800);
  text-align:center;
  width:100%;
}
.footer-managed a{
  color:var(--stone-500);
  text-decoration:none;
}
.footer-managed a:hover{color:var(--gold-light)}

/* ----------------------------------------------------------
   Global ADA / WCAG 2.1 AA baseline
---------------------------------------------------------- */

/* Visible focus ring for keyboard users only */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
  border-radius:2px;
}

/* Screen-reader-only utility */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* ----------------------------------------------------------
   Mobile
---------------------------------------------------------- */
@media (max-width:700px){
  .legal-nav{padding:16px 24px}
  .legal-container{padding:48px 24px 80px}
  .legal-container h2{font-size:1.35rem;margin-top:36px}
  .legal-container h3{font-size:.98rem}
  footer{padding:48px 24px}
  .footer-inner{flex-direction:column;gap:24px}
}
