/* ================================================================
   legal.css — Shared styles for privacy.html, terms.html, cookies.html
   GoSaed design system — dark/gold
   ================================================================ */

:root {
  --dark:    #0A0E17;
  --dark-2:  #070A11;
  --dark-3:  #0f1422;
  --gold:    #D3A746;
  --gold-lt: #E8BF6A;
  --gold-dim: rgba(211,167,70,0.12);
  --text:    #E5E7EB;
  --text-dim: rgba(229,231,235,0.6);
  --border:  rgba(211,167,70,0.18);
  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans:  'DM Sans', sans-serif;
  --max-w: 860px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--dark);
  color: var(--text);
  font-family: var(--font-sans);
  font-weight: 300;
  line-height: 1.6;
  overflow-x: hidden;
  cursor: none;
}
@media(max-width:1024px){ body { cursor: auto; } }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }

/* ── Cursor ── */
.cursor { width:8px; height:8px; background:var(--gold); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .2s,height .2s; }
.cursor-ring { width:38px; height:38px; border:1px solid rgba(211,167,70,.4); border-radius:50%; position:fixed; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .35s,height .35s,border-color .3s; }
.cursor.expand { width:14px; height:14px; }
.cursor-ring.expand { width:68px; height:68px; border-color:var(--gold); }
@media(max-width:1024px){ .cursor,.cursor-ring { display:none; } }

/* ── Loader ── */
.loader { position:fixed; inset:0; background:var(--dark); z-index:10000; display:flex; align-items:center; justify-content:center; transition:opacity .6s ease,visibility .6s ease; }
.loader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loader-inner { text-align:center; }
.loader-line { width:1px; height:0; background:var(--gold); margin:0 auto 20px; animation:growLine .8s ease-out .2s forwards; }
@keyframes growLine { to { height:62px; } }
.loader-word { font-size:.68rem; letter-spacing:9px; color:var(--gold); font-weight:300; opacity:0; animation:fadeWord .5s ease .6s forwards; }
@keyframes fadeWord { to { opacity:1; } }

/* ── Header ── */
.header { position:fixed; top:22px; left:22px; right:22px; z-index:1000; background:rgba(10,14,23,.55); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-radius:100px; border:.5px solid var(--border); transition:all .4s ease; }
.header.scrolled { top:0; left:0; right:0; border-radius:0; background:rgba(10,14,23,.96); border:.5px solid var(--border); border-top:none; border-left:none; border-right:none; }
.nav { display:flex; justify-content:space-between; align-items:center; padding:13px 36px; max-width:1600px; margin:0 auto; }
.nav-logo { font-family:var(--font-serif); font-size:1.45rem; font-weight:600; letter-spacing:-.02em; color:var(--text); }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex; gap:36px; list-style:none; align-items:center; }
.nav-links a { color:var(--text); font-size:.82rem; font-weight:400; letter-spacing:.4px; transition:color .2s; position:relative; }
.nav-links a:not(.nav-cta)::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px; background:var(--gold); transition:width .3s; }
.nav-links a:not(.nav-cta):hover::after { width:100%; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { background:var(--gold); color:var(--dark)!important; padding:8px 24px; border-radius:60px; font-weight:600!important; transition:background .2s!important; }
.nav-cta:hover { background:var(--gold-lt)!important; }
.menu-btn { display:none; background:none; border:none; cursor:pointer; padding:4px; }
.menu-btn span { display:block; width:24px; height:1.5px; background:var(--gold); margin:6px 0; transition:all .3s; }
.menu-btn.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.menu-btn.active span:nth-child(2) { opacity:0; }
.menu-btn.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }
@media(max-width:900px) {
  .menu-btn { display:block; z-index:1001; }
  .nav-links { position:fixed; top:0; right:-100%; width:72%; max-width:300px; height:100vh; background:var(--dark-2); flex-direction:column; justify-content:center; align-items:center; gap:32px; transition:right .35s; z-index:1000; }
  .nav-links.open { right:0; }
  .nav-links a { font-size:1rem; }
  .nav { padding:13px 22px; }
}

/* ── Buttons ── */
.btn { padding:11px 26px; border-radius:60px; font-family:var(--font-sans); font-weight:500; font-size:.82rem; letter-spacing:.4px; transition:all .3s; border:1px solid transparent; display:inline-flex; align-items:center; gap:7px; cursor:pointer; }
.btn-gold { background:var(--gold); color:var(--dark); border-color:var(--gold); }
.btn-gold:hover { background:transparent; color:var(--gold); transform:translateY(-2px); }
.btn-outline { border-color:rgba(211,167,70,.5); color:var(--text); background:transparent; }
.btn-outline:hover { background:var(--gold); color:var(--dark); transform:translateY(-2px); }

/* ── Page hero ── */
.legal-hero { padding:160px 5% 72px; background:var(--dark-2); border-bottom:.5px solid var(--border); position:relative; overflow:hidden; }
.legal-hero::before { content:''; position:absolute; top:20%; right:5%; width:500px; height:500px; background:radial-gradient(circle,rgba(211,167,70,.05),transparent 65%); pointer-events:none; }
.legal-hero-inner { max-width:var(--max-w); margin:0 auto; position:relative; z-index:1; }
.legal-eyebrow { font-size:.68rem; letter-spacing:7px; color:var(--gold); font-weight:300; margin-bottom:18px; display:block; }
.legal-hero h1 { font-family:var(--font-serif); font-size:clamp(2.4rem,5vw,3.8rem); font-weight:600; line-height:1.08; letter-spacing:-.03em; margin-bottom:16px; }
.legal-hero h1 span { color:var(--gold); }
.legal-hero p { font-size:.9rem; color:var(--text-dim); max-width:520px; line-height:1.85; margin-bottom:24px; }
.legal-meta { display:flex; flex-wrap:wrap; gap:20px; }
.legal-meta-item { font-size:.75rem; color:var(--text-dim); display:flex; align-items:center; gap:7px; }
.legal-meta-item i { color:var(--gold); font-size:.7rem; }

/* ── Sticky section nav ── */
.legal-nav-bar { position:sticky; top:0; z-index:90; background:var(--dark-3); border-bottom:.5px solid var(--border); overflow-x:auto; scrollbar-width:none; }
.legal-nav-bar::-webkit-scrollbar { display:none; }
.legal-nav-inner { display:flex; max-width:var(--max-w); margin:0 auto; padding:0 5%; white-space:nowrap; }
.legal-nav-link { display:inline-flex; align-items:center; padding:16px 20px; font-size:.76rem; letter-spacing:.5px; color:var(--text-dim); border-bottom:2px solid transparent; transition:all .2s; cursor:pointer; background:none; border-top:none; border-left:none; border-right:none; font-family:var(--font-sans); }
.legal-nav-link:hover, .legal-nav-link.active { color:var(--gold); border-bottom-color:var(--gold); }

/* ── Content ── */
.legal-content { max-width:var(--max-w); margin:0 auto; padding:72px 5% 100px; }

/* ── Article ── */
.legal-article { margin-bottom:64px; padding-bottom:64px; border-bottom:.5px solid var(--border); }
.legal-article:last-child { border-bottom:none; margin-bottom:0; }
.article-label { font-size:.65rem; letter-spacing:4px; color:var(--gold); font-weight:300; text-transform:uppercase; margin-bottom:12px; display:block; }
.legal-article h2 { font-family:var(--font-serif); font-size:1.6rem; font-weight:500; letter-spacing:-.02em; margin-bottom:20px; }
.legal-article h3 { font-family:var(--font-serif); font-size:1.05rem; font-weight:500; margin:24px 0 10px; color:var(--text); }
.legal-article p { font-size:.88rem; color:var(--text-dim); line-height:1.85; margin-bottom:14px; }
.legal-article p:last-child { margin-bottom:0; }
.legal-article strong { color:var(--text); font-weight:500; }
.legal-article a { color:var(--gold); border-bottom:.5px solid rgba(211,167,70,.3); transition:border-color .2s; }
.legal-article a:hover { border-bottom-color:var(--gold); }
.legal-article code { font-size:.82rem; background:var(--dark-3); border:.5px solid var(--border); border-radius:4px; padding:2px 6px; color:var(--text-dim); }

/* ── List ── */
.legal-list { list-style:none; display:flex; flex-direction:column; gap:8px; margin:12px 0; }
.legal-list li { font-size:.86rem; color:var(--text-dim); display:flex; align-items:flex-start; gap:10px; line-height:1.65; }
.legal-list li::before { content:'\2014'; color:var(--gold); flex-shrink:0; font-size:.8rem; margin-top:2px; }

/* ── Info box ── */
.info-box { background:var(--gold-dim); border:.5px solid var(--border); border-left:3px solid var(--gold); border-radius:0 10px 10px 0; padding:18px 20px; margin:20px 0; display:flex; align-items:flex-start; gap:14px; }
.info-box i { color:var(--gold); font-size:1rem; flex-shrink:0; margin-top:2px; }
.info-box p { font-size:.84rem; color:var(--text-dim); line-height:1.75; margin:0; }
.info-box strong { color:var(--text); }

/* ── Third-party table ── */
.third-party-table { width:100%; border-collapse:collapse; margin:16px 0; font-size:.82rem; }
.third-party-table th { text-align:left; padding:10px 14px; background:var(--dark-3); color:var(--gold); font-size:.68rem; letter-spacing:2px; font-weight:400; border-bottom:.5px solid var(--border); }
.third-party-table td { padding:10px 14px; color:var(--text-dim); border-bottom:.5px solid rgba(211,167,70,.08); vertical-align:top; line-height:1.6; }
.third-party-table tr:last-child td { border-bottom:none; }
.third-party-table a { color:var(--gold); border-bottom:none; }
@media(max-width:600px) { .third-party-table thead { display:none; } .third-party-table td { display:block; padding:6px 10px; } .third-party-table tr { border-bottom:.5px solid var(--border); display:block; margin-bottom:12px; } }

/* ── Rights grid ── */
.rights-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:16px 0; }
.right-card { background:var(--dark-2); border:.5px solid var(--border); border-radius:10px; padding:18px 16px; }
.right-card i { color:var(--gold); font-size:1rem; margin-bottom:10px; display:block; }
.right-card h4 { font-size:.84rem; font-weight:500; margin-bottom:6px; }
.right-card p { font-size:.77rem; color:var(--text-dim); line-height:1.6; }
@media(max-width:560px) { .rights-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:380px) { .rights-grid { grid-template-columns:1fr; } }

/* ── Cookie type cards ── */
.cookie-cards { display:flex; flex-direction:column; gap:14px; margin:16px 0; }
.cookie-card { background:var(--dark-2); border:.5px solid var(--border); border-radius:12px; padding:20px 22px; display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; }
.cookie-card-icon { width:40px; height:40px; border-radius:10px; background:var(--gold-dim); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cookie-card-icon i { color:var(--gold); font-size:.95rem; }
.cookie-card h4 { font-size:.88rem; font-weight:500; margin-bottom:5px; display:flex; align-items:center; gap:10px; }
.cookie-badge { font-size:.65rem; letter-spacing:1.5px; padding:3px 9px; border-radius:20px; font-weight:400; }
.cookie-badge.required { background:rgba(211,167,70,.15); color:var(--gold); }
.cookie-badge.optional { background:rgba(229,231,235,.06); color:var(--text-dim); }
.cookie-card p { font-size:.82rem; color:var(--text-dim); line-height:1.7; }

/* ── Cancellation table ── */
.cancel-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:.84rem; }
.cancel-table th { text-align:left; padding:10px 14px; background:var(--dark-3); color:var(--gold); font-size:.68rem; letter-spacing:2px; font-weight:400; border-bottom:.5px solid var(--border); }
.cancel-table td { padding:10px 14px; color:var(--text-dim); border-bottom:.5px solid rgba(211,167,70,.08); vertical-align:top; }
.cancel-table tr:last-child td { border-bottom:none; }
.cancel-table td:first-child { color:var(--text); font-weight:400; }
@media(max-width:600px) { .cancel-table thead { display:none; } .cancel-table td { display:block; } .cancel-table tr { border-bottom:.5px solid var(--border); display:block; margin-bottom:12px; } }

/* ── Legal CTA ── */
.legal-cta { background:var(--dark-2); border:.5px solid var(--border); border-radius:14px; padding:36px 32px; text-align:center; margin-top:64px; }
.legal-cta h3 { font-family:var(--font-serif); font-size:1.4rem; font-weight:500; margin-bottom:12px; }
.legal-cta p { font-size:.86rem; color:var(--text-dim); margin-bottom:24px; line-height:1.8; }
.legal-cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ── Footer ── */
.footer { background:var(--dark-2); border-top:.5px solid var(--border); padding:64px 5% 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; max-width:1200px; margin:0 auto; padding-bottom:48px; border-bottom:.5px solid var(--border); }
.footer-about { display:flex; flex-direction:column; gap:16px; }
.footer-logo-text { font-family:var(--font-serif); font-size:1.4rem; font-weight:600; }
.footer-logo-text span { color:var(--gold); }
.footer-about p { font-size:.82rem; color:var(--text-dim); line-height:1.75; max-width:300px; }
.footer-socials { display:flex; gap:14px; }
.footer-socials a { width:36px; height:36px; border-radius:50%; border:.5px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:.8rem; transition:all .25s; }
.footer-socials a:hover { border-color:var(--gold); color:var(--gold); background:var(--gold-dim); }
.footer-col h4 { font-size:.72rem; letter-spacing:3px; color:var(--gold); font-weight:400; margin-bottom:20px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col li { font-size:.82rem; color:var(--text-dim); display:flex; align-items:center; gap:9px; }
.footer-col li i { color:var(--gold); font-size:.75rem; width:14px; text-align:center; }
.footer-col li a { color:var(--text-dim); transition:color .2s; }
.footer-col li a:hover { color:var(--gold); }
.footer-bottom { max-width:1200px; margin:0 auto; padding:20px 0 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.footer-bottom p { font-size:.75rem; color:var(--text-dim); }
.footer-signature { font-family:var(--font-serif); font-style:italic; font-size:.78rem; color:var(--gold); opacity:.7; }
.footer-legal { display:flex; gap:16px; }
.footer-legal a { font-size:.72rem; color:var(--text-dim); transition:color .2s; }
.footer-legal a:hover, .footer-legal a.active { color:var(--gold); }
@media(max-width:900px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:560px) { .footer-grid { grid-template-columns:1fr; gap:32px; } .footer-bottom { flex-direction:column; text-align:center; } }

/* ── Floating buttons ── */
.contact-float { position:fixed; bottom:24px; right:24px; display:flex; flex-direction:column; gap:10px; z-index:900; }
.contact-btn { background:rgba(26,31,46,.9); backdrop-filter:blur(12px); padding:11px 18px; border-radius:60px; color:var(--text); font-size:.78rem; font-weight:500; display:flex; align-items:center; gap:9px; border:.5px solid var(--border); transition:all .25s; }
.contact-btn.wa:hover { background:#25D366; color:var(--dark); border-color:#25D366; transform:scale(1.02); }
.contact-btn.call:hover { background:var(--gold); color:var(--dark); border-color:var(--gold); transform:scale(1.02); }
@media(max-width:560px) { .contact-btn span { display:none; } .contact-btn { padding:13px; border-radius:50%; } }

/* ── Reveal ── */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
