/* ===========================================================
   Yuri Giglio — Fotografo
   main.css — foglio di stile condiviso (generato con Eleventy)
   =========================================================== */

:root{
  --black:#000000;
  --zinc:#09090b;
  --surface:#18181b;
  --white:#FFFFFF;
  --ghost:#fafafa;
  --off-white:#e5e5e5;
  --muted:#888888;
  --red:#ef4444;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --maxw:1400px;
}
*{box-sizing:border-box; margin:0; padding:0; border-radius:0 !important;}
html{scroll-behavior:smooth;}
body{
  position:relative;
  overflow-x:hidden;
  background:var(--black);
  color:var(--off-white);
  font-family:'Archivo', sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
.mono{font-family:'JetBrains Mono', monospace;}
:focus-visible{outline:2px solid var(--red); outline-offset:3px;}
.skip-link{
  position:absolute; left:-999px; top:0; z-index:10000;
  background:var(--red); color:#fff; padding:.75rem 1rem; font-size:14px;
}
.skip-link:focus{left:0;}

/* reveal on scroll */
.reveal{
  opacity:0; transform:translateY(48px);
  transition:opacity 1s var(--ease), transform 1s var(--ease);
}
.reveal.in-view{opacity:1; transform:translateY(0);}

/* grain overlay */
.grain{
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:0.15; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Navbar ---------- */
.nav{
  position:fixed; top:0; left:0; width:100%; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:2rem 1.5rem;
  mix-blend-mode:difference;
  color:#fff;
  background-color:transparent;
  transition:background-color .4s var(--ease), backdrop-filter .4s var(--ease), padding .4s var(--ease);
}
.nav.nav-scrolled{
  padding-top:1.25rem; padding-bottom:1.25rem;
  background-color:rgba(10,10,10,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  mix-blend-mode:normal;
}
.nav .brand{font-size:18px; font-weight:500; letter-spacing:-0.01em;}
.nav-links{display:flex; align-items:center; gap:3rem; font-size:18px; font-weight:500; letter-spacing:-0.01em;}
.nav-links a{position:relative;}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:currentColor;
  transition:width .3s var(--ease);
}
.nav-links a:hover::after,
.nav-links a[aria-current="page"]::after{width:100%;}
.lang-switch{font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.05em;}
.lang-switch .sep{opacity:.4; margin:0 .35rem;}
.lang-switch a[aria-current="true"]{color:var(--red);}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; color:#fff; padding:0; line-height:0;}
@media (max-width:780px){
  .nav-toggle{display:block; position:relative; z-index:60;}
  /* Menu = pannello verticale a comparsa da destra, non più flex orizzontale
     (che si sovrapponeva al brand). Font ridotto, chiusura via X / link / Esc. */
  .nav-links{
    display:none;
    position:fixed; top:0; right:0; bottom:0; z-index:55;
    width:min(80vw, 300px);
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:1.6rem; padding:5.5rem 2rem 2rem;
    font-size:15px;
    background:rgba(8,8,8,0.98);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    box-shadow:-24px 0 60px rgba(0,0,0,0.55);
  }
  .nav-open .nav-links{ display:flex; }
  .nav-open{ mix-blend-mode:normal; }
  .lang-switch{ margin-top:1rem; font-size:15px; }
}

/* ---------- Hero (full-screen, parallax pulito) ---------- */
.hero{
  position:relative; height:100vh; min-height:640px;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.hero-bg{
  position:absolute; inset:-12%; z-index:0;
  background-color:var(--surface);
  background-image:
    radial-gradient(ellipse at center, rgba(30,10,10,0.20) 0%, rgba(10,10,10,0.55) 55%, rgba(0,0,0,0.88) 100%),
    linear-gradient(rgba(139,50,50,0.30), rgba(0,0,0,0.7)),
    var(--hero-img, none);
  background-size:cover; background-position:center; background-repeat:no-repeat;
  will-change:transform;
  transition:opacity .4s ease;
}
.hero-bg.hero-bg-fading{opacity:0;}
.hero-content{
  position:relative; z-index:1; text-align:center; padding:0 1.5rem;
  display:flex; flex-direction:column; align-items:center;
  will-change:transform, opacity;
}
/* H1 hero: contenitore semantico (keyword + brand). Nessuno stile proprio,
   il "peso" di ogni riga resta nelle classi figlie. */
.hero-h1{ position:relative; will-change:transform; font-weight:inherit; font-size:inherit; }
.hero-eyebrow{
  display:block;
  font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.25em; text-transform:uppercase;
  color:rgba(255,255,255,0.65); margin-bottom:1.75rem;
}
.hero-eyebrow .dot{color:var(--red); margin:0 .5rem;}
.hero-heading{
  display:block;
  font-size:clamp(4rem, 16vw, 15rem); font-weight:900; letter-spacing:-0.04em; line-height:0.85;
  color:var(--off-white); white-space:nowrap;
}
.hero-label{
  display:block; margin-top:1rem;
  font-size:clamp(1.1rem, 2.2vw, 1.6rem); font-weight:300; font-style:italic; letter-spacing:-0.01em;
  color:var(--muted);
}
.hero-desc{
  max-width:40rem; margin-top:2.25rem;
  font-size:clamp(1rem, 1.6vw, 1.2rem); font-weight:300; line-height:1.5; color:rgba(255,255,255,0.72);
}
.hero-cta{
  margin-top:2.5rem; display:flex; gap:1rem; flex-wrap:wrap; justify-content:center;
}
.btn{
  font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  padding:.9rem 1.8rem; border:1px solid transparent; transition:all .3s var(--ease); cursor:pointer;
}
.btn-primary{ background:var(--red); color:#fff; }
.btn-primary:hover{ background:#fff; color:#000; }
.btn-ghost{ background:transparent; border-color:rgba(255,255,255,0.35); color:var(--off-white); }
.btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,0.06); }
.scroll-cue{
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:1;
  font-family:'JetBrains Mono'; font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,0.5); display:flex; flex-direction:column; align-items:center; gap:.6rem;
}
.scroll-cue .bar{ width:1px; height:36px; background:linear-gradient(rgba(255,255,255,0.6), transparent); animation:cue 1.8s var(--ease) infinite; }
@keyframes cue{ 0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 50.1%{transform:scaleY(1); transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;} }
@media (prefers-reduced-motion: reduce){ .scroll-cue .bar{ animation:none; } }

/* ---------- Worlds (tre verticali) ---------- */
.worlds{ background:var(--black); padding:6rem 1.5rem; }
.worlds-inner{ max-width:var(--maxw); margin:0 auto; }
.worlds-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:3rem; flex-wrap:wrap; }
.worlds-head h2{ font-size:clamp(2rem,5vw,3.5rem); font-weight:900; letter-spacing:-0.02em; line-height:1; }
.worlds-head h3{ font-size:clamp(2rem,5vw,3.5rem); font-weight:500; letter-spacing:-0.02em; line-height:1; }
.worlds-head p{ max-width:26rem; font-weight:300; color:rgba(255,255,255,0.6); }
.worlds-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
@media (max-width:900px){ .worlds-grid{ grid-template-columns:1fr; } }
.world{
  position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--surface); display:flex; flex-direction:column; justify-content:flex-end;
}
.world .w-img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .8s var(--ease); z-index:0; }
.world:nth-child(1) .w-img{ background:linear-gradient(160deg,#2b2e36,#0a0a0a 70%); }
.world:nth-child(2) .w-img{ background:linear-gradient(160deg,#2a2233,#0a0a0a 70%); }
.world:nth-child(3) .w-img{ background:linear-gradient(160deg,#3a2020,#0a0a0a 70%); }
.world:hover .w-img{ transform:scale(1.06); }
.world::after{ content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.85), transparent 60%); z-index:1; }
.world .w-body{ position:relative; z-index:2; padding:2rem; }
.world .w-num{ font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.1em; color:var(--red); }
.world .w-name{ font-size:clamp(1.6rem,2.5vw,2.2rem); font-weight:700; margin:.5rem 0 .75rem; line-height:1.05; color:#fff; }
.world .w-desc{ font-weight:300; font-size:.95rem; color:rgba(255,255,255,0.7); max-width:20rem; }
.world .w-link{ display:inline-flex; align-items:center; gap:.5rem; margin-top:1.25rem; font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#fff; }
.world .w-link .arr{ transition:transform .3s var(--ease); }
.world:hover .w-link .arr{ transform:translate(3px,-3px); }

/* ---------- Intro / statement ---------- */
.intro{ background:var(--black); padding:7rem 1.5rem; border-bottom:1px solid rgba(255,255,255,0.08); }
.intro-inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 1.4fr; gap:3rem; align-items:start; }
@media (max-width:880px){ .intro-inner{ grid-template-columns:1fr; gap:1.5rem; } }
.intro .label{ font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.15em; text-transform:uppercase; color:var(--red); }
.intro .lead{ font-size:clamp(1.1rem, 1.8vw, 1.5rem); font-weight:300; line-height:1.5; }
.intro .lead strong{ font-weight:600; }

/* ---------- Discipline (servizi) ---------- */
.disciplines{ background:var(--zinc); padding:6rem 1.5rem; }
.disciplines-inner{ max-width:var(--maxw); margin:0 auto; }
.disciplines h2{ font-size:clamp(2rem,5vw,3.5rem); font-weight:900; letter-spacing:-0.02em; margin-bottom:3rem; }
.disc-list{ border-top:1px solid rgba(255,255,255,0.12); }
.disc-row{
  display:grid; grid-template-columns:auto 1fr auto; gap:2rem; align-items:baseline;
  padding:2rem 0; border-bottom:1px solid rgba(255,255,255,0.12);
  transition:padding-left .4s var(--ease), color .3s var(--ease);
}
.disc-row:hover{ padding-left:1rem; color:#fff; }
.disc-row .num{ font-family:'JetBrains Mono'; font-size:13px; color:var(--red); }
.disc-row .name{ font-size:clamp(1.5rem,3vw,2.25rem); font-weight:600; letter-spacing:-0.01em; }
.disc-row .desc{ max-width:22rem; font-weight:300; color:rgba(255,255,255,0.6); font-size:.95rem; }
@media (max-width:780px){
  .disc-row{ grid-template-columns:auto 1fr; row-gap:.65rem; }
  .disc-row .desc{ grid-column:1 / -1; max-width:none; font-size:.92rem; line-height:1.55; }
}

/* ---------- Portfolio / pagine categoria — intestazione ---------- */
.page-head{
  padding:9rem 1.5rem 3rem; max-width:var(--maxw); margin:0 auto;
}
.page-head .eyebrow{
  font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--red); margin-bottom:1.25rem;
}
.page-head h1{
  font-size:clamp(2.5rem, 9vw, 7rem); font-weight:900; letter-spacing:-0.03em; line-height:.92;
}
.page-head p{ max-width:40rem; margin-top:1.75rem; font-weight:300; color:rgba(255,255,255,0.7); font-size:1.1rem; }

.filters{
  display:flex; flex-wrap:wrap; gap:.75rem; max-width:var(--maxw);
  margin:0 auto 3rem; padding:0 1.5rem;
}
.filter-btn{
  background:none; border:1px solid rgba(255,255,255,0.2); color:var(--off-white);
  font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  padding:.6rem 1.1rem; cursor:pointer; transition:all .3s var(--ease);
}
.filter-btn:hover{ border-color:var(--off-white); }
.filter-btn[aria-pressed="true"]{ background:var(--red); border-color:var(--red); color:#fff; }

/* ---------- Galleria best-of (foto reali, click → lightbox) ---------- */
.gallery-section{ max-width:var(--maxw); margin:0 auto; padding:5rem 1.5rem 7rem; }
.gallery-head{ margin-bottom:2.5rem; }
.gallery-head h2{ font-size:clamp(1.8rem,4vw,3rem); font-weight:900; letter-spacing:-0.02em; }
.gallery-grid{
  position:relative; /* altezza e posizione celle gestite da masonry in main.js */
  max-width:var(--maxw); margin:0 auto 7rem; padding:0 1.5rem;
  /* niente padding-bottom qui: coi figli position:absolute non riserverebbe
     spazio (il padding non vincola gli elementi assoluti) → si usa margin */
}
.gallery-section .gallery-grid{ padding:0; margin-bottom:0; }
.g-cell{
  position:absolute; top:0; left:0; display:block; overflow:hidden;
  background:var(--surface); border:none; padding:0; margin:0; cursor:pointer;
  opacity:0; transition:opacity .4s var(--ease), transform .3s var(--ease);
}
.g-cell.placed{ opacity:1; }
.g-cell.hide{ display:none; }
.g-cell.g-more-hidden{ display:none; }  /* cap "carica altro" su mobile/tablet */
.gallery-more{ display:block; margin:2.5rem auto 0; }
.g-cell img{
  display:block; width:100%; height:auto;
  transition:transform .7s var(--ease); pointer-events:none;
}
.g-cell:hover img{ transform:scale(1.06); }
.g-cell::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(0,0,0,0.35), transparent 45%);
  opacity:0; transition:opacity .3s var(--ease);
}
.g-cell:hover::after{ opacity:1; }
.gallery-empty{
  padding:4rem 0; text-align:center;
  font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.05em; color:var(--muted);
}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.94); padding:3.5rem 1rem;
}
.lightbox[hidden]{ display:none; }
.lightbox .lb-img{
  max-width:min(94vw, 1600px); max-height:88vh; width:auto; height:auto;
  object-fit:contain; box-shadow:0 20px 80px rgba(0,0,0,0.6);
}
.lightbox button{
  position:absolute; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.2);
  color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; font-size:26px; line-height:1; transition:background .25s var(--ease);
}
.lightbox button:hover{ background:rgba(255,255,255,0.2); }
.lightbox .lb-close{ top:1.25rem; right:1.25rem; width:46px; height:46px; font-size:22px; }
.lightbox .lb-prev{ left:1.25rem; top:50%; transform:translateY(-50%); }
.lightbox .lb-next{ right:1.25rem; top:50%; transform:translateY(-50%); }
@media (max-width:560px){
  .lightbox .lb-prev{ left:.5rem; } .lightbox .lb-next{ right:.5rem; }
  .lightbox button{ width:44px; height:44px; }
}

/* ---------- Manifesto ---------- */
.manifesto{
  background:var(--zinc); min-height:60vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:2rem 1.5rem;
}
.manifesto-text{
  font-size:clamp(1.4rem, 3vw, 2.4rem); font-weight:300; line-height:1.3; max-width:48rem;
  opacity:0; transform:translateY(2rem);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.manifesto-text.in-view{opacity:1; transform:translateY(0);}
.manifesto-text .accent{color:var(--red);}
.manifesto-line{
  margin-top:2.5rem; height:1px; width:0; max-width:320px;
  background:rgba(255,255,255,0.3);
  transition:width 1s var(--ease) .2s;
}
.manifesto-line.in-view{width:100%;}

/* ---------- Contact footer ---------- */
.contact-footer{background:var(--ghost); color:var(--black);}

.cf-top{
  border-bottom:1px solid rgba(0,0,0,0.1);
  padding:5.5rem 1.5rem 3.75rem;
  display:flex; flex-direction:column; align-items:center; gap:2.25rem;
  text-align:center;
}
.cf-top h2{ font-size:clamp(2rem, 6vw, 4.5rem); font-weight:500; text-transform:uppercase; letter-spacing:-0.03em; line-height:0.95; }
.cf-cta{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  padding:1rem 2.25rem; background:var(--black); color:#fff;
  transition:background .3s var(--ease);
}
.cf-cta:hover{ background:var(--red); }

.cf-bottom{
  max-width:var(--maxw); margin:0 auto; padding:2.75rem 1.5rem 1.75rem;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.5rem 2.5rem;
}
.cf-brand{ font-family:'JetBrains Mono'; font-size:13px; letter-spacing:.08em; }
.cf-social{ display:flex; gap:1.75rem; font-size:14px; }
.cf-social a{
  position:relative; width:fit-content;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat;
  transition:background-size .3s var(--ease);
  padding-bottom:2px;
}
.cf-social a:hover{background-size:100% 1px;}
.cf-email{font-size:1.05rem; font-weight:500;}
.cf-email a:hover{color:var(--red);}
.cf-email a{ display:inline-flex; align-items:center; gap:.4rem; }

.cf-rights-row{
  max-width:var(--maxw); margin:0 auto; padding:1.25rem 1.5rem 2.75rem;
  border-top:1px solid rgba(0,0,0,0.08);
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem 2rem;
  font-family:'JetBrains Mono'; font-size:12px; color:rgba(0,0,0,0.45);
}
@media (max-width:780px){ .cf-bottom{ justify-content:flex-start; } }

/* ---------- Contatti / form ---------- */
.form-wrap{ max-width:720px; margin:0 auto; padding:0 1.5rem 7rem; }
.contact-form{ display:grid; gap:1.75rem; }
.field{ display:flex; flex-direction:column; gap:.5rem; }
.field label{ font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.field input, .field select, .field textarea{
  background:var(--surface); border:1px solid rgba(255,255,255,0.14); color:var(--off-white);
  font-family:'Archivo', sans-serif; font-size:1rem; padding:.9rem 1rem; width:100%;
  transition:border-color .3s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--red); outline:none; }
.field textarea{ resize:vertical; min-height:160px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.75rem; }
@media (max-width:600px){ .field-row{ grid-template-columns:1fr; } }
.hp-field{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.consent{ display:flex; align-items:flex-start; gap:.75rem; font-size:.9rem; color:rgba(255,255,255,0.6); }
.consent input{ width:auto; margin-top:.2rem; flex-shrink:0; }
.consent a{ color:var(--off-white); text-decoration:underline; }
.form-submit{ justify-self:start; }
.form-alert{ padding:1rem 1.25rem; font-size:.95rem; border:1px solid; margin-bottom:2.5rem; }
.form-alert.ok{ border-color:#3a7; color:#8fd7bb; background:rgba(50,180,120,.08); }
.form-alert.err{ border-color:var(--red); color:#f4b4b4; background:rgba(239,68,68,.08); }
.form-alert[hidden]{ display:none; }

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed; left:1.5rem; right:1.5rem; bottom:1.5rem; z-index:9998;
  max-width:640px; margin:0 auto;
  background:var(--surface); border:1px solid rgba(255,255,255,0.14);
  padding:1.75rem; box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.cookie-banner[hidden]{ display:none; }
.cookie-banner p{ font-size:.9rem; line-height:1.55; color:rgba(255,255,255,0.75); margin-bottom:1.25rem; }
.cookie-banner a{ color:var(--off-white); text-decoration:underline; }
.cookie-actions{ display:flex; gap:.75rem; flex-wrap:wrap; }
.cookie-actions .btn{ padding:.75rem 1.4rem; }
/* Rifiuta cookie + "carica altro": a riposo bordo/testo bianchi su trasparente
   (leggibile, niente sfondo grigio di default del browser); in hover si riempie
   di grigio con testo rosso. Anche conformità GDPR: rifiuto visibile quanto accetta. */
.cookie-actions .btn-ghost,
.gallery-more{ background:transparent; border-color:#fff; color:#fff; }
.cookie-actions .btn-ghost:hover,
.gallery-more:hover{ background:#d4d4d4; border-color:#d4d4d4; color:var(--red); }
@media (max-width:480px){ .cookie-banner{ left:1rem; right:1rem; bottom:1rem; padding:1.25rem; } }

/* ---------- Pagine legali (privacy / cookie) ---------- */
.legal-body{ max-width:56rem; margin:0 auto; padding:0 1.5rem 7rem; }
.legal-body h2{ font-size:clamp(1.3rem,2.5vw,1.75rem); font-weight:700; margin:3rem 0 1rem; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body p, .legal-body li{ font-weight:300; line-height:1.7; color:rgba(255,255,255,0.75); font-size:.98rem; }
.legal-body ul{ padding-left:1.25rem; margin:.75rem 0; }
.legal-body li{ margin-bottom:.4rem; }
.legal-body strong{ color:var(--off-white); font-weight:600; }
.legal-body a{ color:var(--off-white); text-decoration:underline; }
.legal-note{ border-left:2px solid var(--red); padding:1rem 1.25rem; margin:2rem 0; background:rgba(239,68,68,0.06); font-size:.9rem; }
.legal-table-wrap{ overflow-x:auto; margin:1.25rem 0; }
.legal-table{ width:100%; border-collapse:collapse; font-size:.88rem; min-width:34rem; }
.legal-table th, .legal-table td{ text-align:left; padding:.7rem .85rem; border-bottom:1px solid rgba(255,255,255,0.1); vertical-align:top; }
.legal-table th{ font-family:'JetBrains Mono'; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:500; }
.legal-table td{ font-weight:300; line-height:1.55; color:rgba(255,255,255,0.75); }
.legal-table td code{ font-family:'JetBrains Mono'; font-size:.82rem; color:var(--off-white); }
.cf-legal{ display:flex; align-items:center; }
.cf-legal a{ color:rgba(0,0,0,0.45); font-size:12px; font-family:'JetBrains Mono'; }
.cf-legal a:hover{ color:var(--black); }
.cf-legal .sep{ color:rgba(0,0,0,0.25); margin:0 .5rem; }
