﻿/* =========================================================
   ZipLaw.ai — LIGHT MODE (Enterprise-Lux)
   - Content unchanged (CSS-only)
   - Center-aligned layout like homepage
   - Black/gray only (no color accents)
   - Premium “glass” cards + soft shadows
   - Subtle grid/noise texture background
   - Alternating sections preserved WITHOUT “box artifact”
   - Sticky white header with faint border
   ========================================================= */

:root{
  /* Layout */
  --container:1040px;
  --max-width-narrow:800px;
  --radius:18px;
  --radius-sm:12px;
  --transition:all 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);

  /* Light theme */
  --page:#fbfbfc;          /* page base */
  --page-2:#f5f6f8;        /* subtle alt section */
  /* Translucent section fills (lets the grid show through) */
  --section-bg:rgba(251,251,252,0.82);
  --section-bg-alt:rgba(245,246,248,0.82);
  --card:rgba(255,255,255,0.78);   /* glass */
  --card-strong:#ffffff;   /* solid card */
  --ink:#0b0c0f;           /* primary text */
  --ink-2:#1a1c22;         /* secondary */
  --muted:#616674;         /* muted text */
  --muted-2:#7a8090;

  /* Borders */
  --border:rgba(10,12,18,0.12);
  --border-strong:rgba(10,12,18,0.18);

  /* Shadows (lux) */
  --shadow-soft:0 14px 45px rgba(10,12,18,0.10);
  --shadow-card:0 18px 55px rgba(10,12,18,0.12);
  --shadow-faint:0 10px 28px rgba(10,12,18,0.08);

  /* Interactive (black/gray only) */
  --btn:#0b0c0f;
  --btn-hover:#161822;
  --focus:rgba(10,12,18,0.20);

  /* Accents (minimal) */
  --badge-check:#2563eb;

  /* Divider gradient (premium, monochrome) */
  --divider:linear-gradient(90deg,
    rgba(10,12,18,0.00),
    rgba(10,12,18,0.22),
    rgba(10,12,18,0.00)
  );
}

/* -----------------------------
   Reset & base
----------------------------- */
*{box-sizing:border-box}
html,body{height:100%;}
html{scroll-padding-top:6rem;}
body{
  margin:0;
  padding:0;
  padding-top:86px;
  color:var(--ink);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",sans-serif;
  letter-spacing:0.1px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;

  /* Background base */
  background:var(--page);
  position:relative;
  overflow-x:hidden;
}

/* Subtle grid + noise texture overlay (very faint) */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;

  /* grid + soft vignette + faint grain */
  background:
    radial-gradient(1200px 700px at 50% 0%, rgba(10,12,18,0.085), rgba(10,12,18,0.00) 62%),
    repeating-linear-gradient(
      0deg,
      rgba(10,12,18,0.05) 0px,
      rgba(10,12,18,0.05) 1px,
      rgba(255,255,255,0) 1px,
      rgba(255,255,255,0) 22px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(10,12,18,0.045) 0px,
      rgba(10,12,18,0.045) 1px,
      rgba(255,255,255,0) 1px,
      rgba(255,255,255,0) 22px
    );
  opacity:0.60;
  filter:contrast(105%);
}

/* Optional ultra-faint “noise” (CSS-only) */
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 20% 30%, rgba(10,12,18,0.04), rgba(255,255,255,0) 55%),
    radial-gradient(circle at 80% 60%, rgba(10,12,18,0.03), rgba(255,255,255,0) 55%);
  opacity:0.35;
}

/* Containers */
.container{max-width:var(--container);margin:0 auto;padding:0 1.75rem;}
.narrow{max-width:var(--max-width-narrow);margin:0 auto;}
.text-center{text-align:center}
.center{display:flex;align-items:center;justify-content:center}

/* -----------------------------
   Typography
----------------------------- */
h1,h2,h3,h4,h5,h6{
  font-family:"DM Sans","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",sans-serif;
  color:var(--ink);
  font-weight:700;
  letter-spacing:-0.6px;
  margin:0;
}

h1{font-size:clamp(2.2rem, 2.4vw + 1.4rem, 3.15rem);line-height:1.12;margin:0 0 1rem}
h2{font-size:clamp(1.6rem, 1.6vw + 1rem, 2.25rem);line-height:1.16;margin:0 0 .9rem}
h3{font-size:clamp(1.25rem, 1vw + .95rem, 1.6rem);line-height:1.22;margin:1.25rem 0 .55rem}

p{
  margin:0 0 1.05rem;
  line-height:1.75;
  color:var(--ink-2);
}

/* Keep readable width, but centered experience */
main p{max-width:720px;margin-left:auto;margin-right:auto;}

/* Premium divider under section headings (subtle, monochrome) */
h2::after{display:none;content:none;}

/* Links (monochrome, elegant) */
a{
  color:var(--ink);
  text-decoration:none;
  transition:var(--transition);
  border-bottom:1px solid rgba(10,12,18,0.18);
}
a:hover{
  color:var(--ink);
  border-bottom-color:rgba(10,12,18,0.45);
}

/* Muted utility */
.muted{
  color:var(--muted);
  font-size:.95rem;
  font-weight:500;
}

/* Spacing utilities */
.pad-xl{padding:3.4rem 0}
.pad-xxl{padding:4.6rem 0}
.pad-lg{padding:2.4rem 0}
.text-90{font-size:0.9rem}
.text-95{font-size:0.95rem}
.text-100{font-size:1rem}
.lh-18{line-height:1.8}
.mt-0-5{margin-top:0.5rem}
.mt-0-6{margin-top:0.6rem}
.mt-1{margin-top:1rem}
.mt-1-5{margin-top:1.5rem}
.mt-2{margin-top:2rem}
.mb-1{margin-bottom:1rem}
.mb-2{margin-bottom:2rem}
.pt-1-5{padding-top:1.5rem}
.border-top-light{border-top:1px solid var(--border)}

/* Page-specific top spacing
  Legal pages effectively have: main.pad-xl + section.pad-xl.
  Homepage and Contact need the same header-to-first-title gap.
*/
main.legal-page:not(.container){padding-top:1.5rem;}
main.contact-page{padding-top:2rem;}
main.about-page{padding-top:1.5rem;}
body > main{padding-top:1.5rem;}

/* -----------------------------
   Sections (Alternation + NO artifact)
   - We preserve alternation by tinting section backgrounds
   - We DO NOT add borders that create “boxes”
----------------------------- */
section{
  position:relative;
  background:var(--section-bg);
}
section.alt{
  background:var(--section-bg-alt);
}

/* Terms / Privacy / About: no section “panel” background */
main.legal-page section{
  background:transparent;
}

/* If these wrappers exist, keep them from drawing an extra container */
.terms-card,
.terms-container{
  background:transparent;
  border:0;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

/* -----------------------------
   Header / Nav (Sticky white)
----------------------------- */
.site-header{
  background:rgba(255,255,255,0.92);
  border-bottom:1px solid var(--border);
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:50;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

.site-header .header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.0rem 0;
}

/* Brand */
.site-header .brand{
  display:flex;
  align-items:center;
  gap:0.6rem;
  color:var(--ink);
  font-weight:800;
  font-size:1.15rem;
  transition:var(--transition);
  text-decoration:none;
  border-bottom:none;
}
.site-header .brand:hover{opacity:0.9}

/* New black logo image */
.brand-icon{
  height:auto;
  width:220px;        /* tuned for header use */
  max-width:260px;
  max-height:88px;
  display:block;
  flex-shrink:0;
  margin-right:0.35rem;
}

.brand-area{display:flex;align-items:center;gap:.6rem}

/* Nav */
.nav{
  display:flex;
  gap:1.6rem;
  align-items:center;
}
.nav a{
  color:rgba(10,12,18,0.70);
  text-decoration:none;
  border-bottom:none;
  padding:.48rem .7rem;
  border-radius:12px;
  font-size:.95rem;
  font-weight:650;
  transition:var(--transition);
}
.nav a:hover{
  background:rgba(10,12,18,0.045);
  color:var(--ink);
}

/* -----------------------------
   Buttons (Monochrome)
----------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:.25rem;
  padding:.72rem 1.4rem;
  border:1px solid var(--border-strong);
  border-radius:14px;
  text-decoration:none;
  border-bottom:none;
  font-family:inherit;
  font-weight:700;
  font-size:.95rem;
  line-height:1;
  text-align:center;
  transition:var(--transition);
  cursor:pointer;
  letter-spacing:0.2px;
  -webkit-appearance:none;
  appearance:none;
  background:rgba(255,255,255,0.75);
  color:var(--ink);
  box-shadow:0 8px 20px rgba(10,12,18,0.06);
}

button.btn::-moz-focus-inner{border:0;padding:0;}

.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 30px rgba(10,12,18,0.10);
  background:rgba(255,255,255,0.92);
  border-bottom:none;
}

.btn.primary{
  background:var(--btn);
  color:#fff;
  border-color:rgba(10,12,18,0.95);
  box-shadow:0 14px 38px rgba(10,12,18,0.18);
}
.btn.primary:hover{
  background:var(--btn-hover);
  color:var(--badge-check);
  box-shadow:0 18px 46px rgba(10,12,18,0.22);
}
.btn.primary:active{transform:translateY(0);}

.btn.ghost{
  background:rgba(255,255,255,0.40);
  border-color:var(--border-strong);
  color:var(--ink);
}
.btn.ghost:hover{
  background:rgba(255,255,255,0.90);
}

.btn.secondary{
  background:rgba(255,255,255,0.72);
  color:var(--ink);
  border:1px solid var(--border);
  box-shadow:var(--shadow-faint);
}
.btn.secondary:hover{
  background:rgba(255,255,255,0.95);
  box-shadow:0 14px 34px rgba(10,12,18,0.12);
}

.btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(10,12,18,0.12), 0 14px 34px rgba(10,12,18,0.14);
}

/* -----------------------------
   Hero (Light, premium, center aligned)
----------------------------- */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(900px 520px at 50% 0%, rgba(10,12,18,0.06), rgba(255,255,255,0) 60%),
    linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,255,255,0.92));
}

/* Homepage (and any page) using the grid-first look */
main.legal-page .hero{
  background:transparent;
}
main.legal-page .hero::after{
  display:none;
}

.hero.pad-xxl{padding:3.2rem 0 3.2rem;}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 20%, rgba(10,12,18,0.05), rgba(255,255,255,0) 55%),
    radial-gradient(circle at 82% 35%, rgba(10,12,18,0.03), rgba(255,255,255,0) 50%);
  opacity:0.85;
}

.hero .container{
  display:flex;
  flex-direction:column;
  align-items:center;
  position:relative;
  z-index:2;
}

.lead{
  font-size:1.05rem;
  color:var(--muted);
  max-width:720px;
  line-height:1.7;
  margin-left:auto;
  margin-right:auto;
}

/* Stack helper */
.stack{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:1.6rem;
  justify-content:center;
}
.stack-lg{gap:1.1rem}
.stack.center{justify-content:center}

/* Trust strip */
.trust-strip{
  margin-top:1.35rem;
  color:rgba(10,12,18,0.62);
  font-size:.85rem;
  font-weight:650;
  letter-spacing:0.4px;
  padding:.55rem 1.2rem;
  border-radius:999px;
  border:1px solid rgba(10,12,18,0.10);
  background:rgba(255,255,255,0.75);
  box-shadow:0 10px 24px rgba(10,12,18,0.08);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

/* -----------------------------
   Lists
----------------------------- */
.list-steps,.list-bullets{padding-left:1.2rem;line-height:1.85;margin:0 auto;max-width:720px;}
.list-steps li,.list-bullets li{margin-bottom:.7rem;color:var(--ink-2);}

/* -----------------------------
   Cards / Panels (Glass)
----------------------------- */
.contact-card,
.stat-card,
.feature-card,
details{
  border-radius:var(--radius);
  background:var(--card);
  border:1px solid var(--border);
  box-shadow:var(--shadow-card);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

/* Ensure “cards” don’t look like a second rectangle underneath */
.contact-card,
.stat-card,
.feature-card{
  position:relative;
  overflow:hidden;
}

/* Subtle inner highlight (lux edge) */
.contact-card::before,
.stat-card::before,
.feature-card::before,
details::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,0.70), rgba(255,255,255,0.00) 55%);
  opacity:0.55;
}

/* -----------------------------
   Contact card/button tweaks
----------------------------- */
.contact-card{
  padding:1.2rem 1.2rem;
  max-width:720px;
  margin:0 auto;
}

/* -----------------------------
   Contact form
----------------------------- */
.contact-form{
  max-width:640px;
  width:100%;
  margin:0 auto;
  display:block;
  text-align:left; /* forms read better left aligned */
  background:transparent;
}

.contact-form .field{
  display:flex;
  flex-direction:column;
  gap:0.4rem;
  margin-bottom:1.05rem;
}
.contact-form label{
  font-weight:750;
  color:var(--ink-2);
  font-family:"DM Sans","Inter",sans-serif;
  letter-spacing:-0.2px;
}

.contact-form input,
.contact-form textarea{
  width:100%;
  display:block;
  padding:0.8rem 0.95rem;
  border-radius:14px;
  border:1px solid rgba(10,12,18,0.14);
  background:rgba(255,255,255,0.92);
  color:var(--ink);
  transition:var(--transition);
  box-shadow:0 8px 18px rgba(10,12,18,0.05);
}

.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:rgba(10,12,18,0.30);
  box-shadow:0 0 0 4px rgba(10,12,18,0.10), 0 10px 24px rgba(10,12,18,0.08);
}

.contact-form textarea{
  min-height:150px;
  resize:vertical;
}

.contact-form .actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:0.35rem;
}

/* -----------------------------
   Stats grid
----------------------------- */
.stats-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:1.4rem;
  margin-top:2rem;
}
.stat-card{
  padding:1.7rem;
  text-align:center;
  transition:var(--transition);
}
.stat-card:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 70px rgba(10,12,18,0.14);
  border-color:rgba(10,12,18,0.16);
}
.stat-number{
  font-size:2.35rem;
  font-weight:900;
  color:var(--ink);
  line-height:1;
  margin-bottom:0.5rem;
  font-family:"DM Sans","Inter",sans-serif;
}
.stat-label{
  font-weight:800;
  color:var(--ink-2);
  font-size:0.95rem;
  margin-bottom:0.8rem;
  font-family:"DM Sans","Inter",sans-serif;
}
.stat-detail{
  font-size:0.86rem;
  color:var(--muted);
  line-height:1.6;
  margin:0 auto;
  max-width:44ch;
}

/* -----------------------------
   Features grid
----------------------------- */
.features-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:1.4rem;
  margin-top:2rem;
}
.feature-card{
  padding:1.7rem;
  text-align:center;
  transition:var(--transition);
}
.feature-card:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 70px rgba(10,12,18,0.14);
  border-color:rgba(10,12,18,0.16);
}
.feature-icon{
  font-size:2.2rem;
  margin-bottom:1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:16px;
  background:rgba(255,255,255,0.75);
  border:1px solid rgba(10,12,18,0.10);
  box-shadow:0 12px 30px rgba(10,12,18,0.10);
  transition:var(--transition);
  color:var(--ink);
}
.feature-card:hover .feature-icon{
  transform:scale(1.03);
  box-shadow:0 16px 42px rgba(10,12,18,0.14);
}
.feature-card h3{
  margin:0.45rem 0 0.35rem;
  color:var(--ink);
}
.feature-card p{
  font-size:0.92rem;
  color:var(--muted);
  line-height:1.6;
  margin:0 auto;
  max-width:55ch;
}

/* -----------------------------
   Trust badges (footer)
----------------------------- */
.trust-badges{
  display:flex;
  gap:0.7rem;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:0.2rem;
  margin-bottom:0.35rem;
  padding:.3rem .7rem;
  border-radius:999px;
  border:1px solid rgba(10,12,18,0.10);
  background:rgba(255,255,255,0.75);
  box-shadow:0 10px 24px rgba(10,12,18,0.08);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  width:fit-content;
  margin-left:auto;
  margin-right:auto;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  font-size:0.8rem;
  color:rgba(10,12,18,0.65);
  font-weight:650;
}
.badge::before{
  content:'✓';
  color:var(--badge-check);
  font-weight:900;
}

/* -----------------------------
   Details / FAQ accordion
----------------------------- */
details{
  margin:1.1rem auto;
  padding:1rem 1.2rem;
  max-width:720px;
  transition:var(--transition);
}
details:hover{
  box-shadow:0 22px 70px rgba(10,12,18,0.14);
  border-color:rgba(10,12,18,0.16);
}
details[open]{
  background:rgba(255,255,255,0.88);
  border-color:rgba(10,12,18,0.18);
}

summary{
  cursor:pointer;
  font-weight:850;
  color:var(--ink);
  padding:.35rem 0;
  -webkit-user-select:none;
  user-select:none;
  transition:var(--transition);
  list-style:none;
  font-family:"DM Sans","Inter",sans-serif;
}
summary::-webkit-details-marker{display:none;}
summary:hover{opacity:1;color:var(--badge-check);}
details[open]>summary{color:var(--ink);margin-bottom:.6rem;}

/* -----------------------------
   Footer (light, premium)
----------------------------- */
.site-footer{
  border-top:1px solid var(--border);
  background:rgba(255,255,255,0.92);
  color:rgba(10,12,18,0.70);
  padding:1.1rem 0;
}
.site-footer .footer-text{
  margin-top:0.35rem;
}
.site-footer .footer-text.mt-1{
  margin-top:0.35rem;
}
.site-footer .footer-text.mt-0-2{
  margin-top:0.15rem;
}
.site-footer a{
  color:var(--ink);
  font-weight:650;
  border-bottom:1px solid rgba(10,12,18,0.18);
}
.site-footer a:hover{
  border-bottom-color:rgba(10,12,18,0.45);
}

/* Social icons (if used) */
.social-links{
  display:flex;
  justify-content:center;
  gap:1.15rem;
  margin-top:0.35rem;
}
.social-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.78);
  transition:var(--transition);
  box-shadow:0 10px 24px rgba(10,12,18,0.08);
}
.social-icon svg{width:22px;height:22px;display:block}
.social-icon:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 42px rgba(10,12,18,0.12);
  border-color:rgba(10,12,18,0.16);
}

/* -----------------------------
   Smooth scrolling
----------------------------- */
section{scroll-behavior:smooth}

/* -----------------------------
   Responsive
----------------------------- */
@media (min-width:900px){
  .hero h1{font-size:3rem}
  .site-header .header-inner{padding:1.1rem 0}
}

@media (max-width:720px){
  .container{padding:0 1.25rem;}
  .nav{gap:1rem;font-size:.92rem}
  .stack{gap:.65rem;margin-top:1.2rem}
  .hero h1{font-size:1.95rem;line-height:1.15}
  .hero .lead{font-size:1rem;line-height:1.6}
  .pad-xxl{padding:4.2rem 0}
  .pad-xl{padding:3.2rem 0}
  .pad-lg{padding:2.2rem 0}
  h2{font-size:1.55rem;line-height:1.2}
  h3{font-size:1.15rem;line-height:1.22}
  p{font-size:0.98rem;line-height:1.65}
  .features-grid{grid-template-columns:1fr;gap:1.2rem;margin-top:1.5rem}
  .feature-card{padding:1.35rem}
  .feature-icon{width:56px;height:56px;font-size:2.05rem}
  .contact-form{max-width:100%;}
  .contact-form .actions{justify-content:center}
  .btn{width:auto;padding:.72rem 1.25rem;}
  .btn.primary{padding:.76rem 1.35rem;}

main.legal-page:not(.container){padding-top:1.5rem;}
main.contact-page{padding-top:2rem;}
main.about-page{padding-top:1.5rem;}
body > main{padding-top:1.5rem;}

}

@media (max-width:520px){
  body{padding-top:78px;}
  html{scroll-padding-top:5.25rem;}
}

/* -----------------------------
   Mobile menu styles (unchanged behavior)
----------------------------- */
#menuToggle{display:none;padding:.45rem .6rem;border-radius:10px}
.nav.open{
  display:flex;
  flex-direction:column;
  gap:.5rem;
  margin-top:.6rem;
}

@media (max-width:720px){
  #menuToggle{display:inline-block}
  .nav{
    display:none;
    width:100%;
    background:rgba(255,255,255,0.92);
    padding:0.6rem;
    border-radius:14px;
    gap:.5rem;
    flex-direction:column;
    border:1px solid var(--border);
    box-shadow:0 16px 44px rgba(10,12,18,0.12);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
  }
  .nav a{
    display:block;
    padding:.6rem .75rem;
  }
  .site-header .header-inner{flex-direction:row;align-items:center}
}

@media (max-width:520px){
  .brand-icon{width:auto;max-height:56px;height:auto}
  .site-header .brand{font-size:1.05rem}

/* -----------------------------
   Google Form Embed Styling
----------------------------- */
.google-form-wrapper {
  max-width: 720px;
  margin: 1.5rem auto 0;
  padding: 0;
}

.contact-google-form {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  background: var(--card);
  overflow: hidden;
}

@media (max-width: 720px) {
  .google-form-wrapper {
    max-width: 100%;
  }
  
  .contact-google-form {
    width: 100%;
    height: 1100px;
  }
}
}