/* ==========================================================================
   Saltwater Digital — shared site styles (index + privacy)
   Plain CSS. No external requests. System fonts. Local assets only.

   Accent (#FFF800, the brand yellow from the logo) is used sparingly:
   primary buttons, link underlines, and one or two deliberate marks.
   Everything else is monochrome — labels and headers are neutral grey,
   not accent-coloured, to keep the design considered rather than loud.
   ========================================================================== */

:root{
  /* surfaces */
  --black:#050505;          /* header + hero + about        */
  --dark:#1E1E1E;           /* contact CTA band             */
  --dark-2:#141414;         /* footer                       */
  --light:#F9F9F9;          /* products band                */
  --card:#FFFFFF;
  --card-border:#E7E7E7;
  --card-border-hover:#CFCFCF;

  /* accent — used sparingly */
  --accent:#FFF800;
  --accent-2:#F2EB00;       /* button hover                 */
  --accent-ink:#141400;     /* text on accent               */

  /* text on dark */
  --on-dark:#FFFFFF;
  --on-dark-dim:#B6B6B6;
  --on-dark-faint:#8A8A8A;
  --label:#8F8F8F;          /* muted eyebrows/labels        */
  --read:#C8C8C8;           /* long-form legal body         */
  --read-strong:#ECECEC;

  /* text on light */
  --ink:#1B1B1B;
  --ink-soft:#565656;
  --ink-faint:#6B6B6B;
  --label-light:#5E5E5E;

  --hair-dark:rgba(255,255,255,.10);
  --hair-dark-soft:rgba(255,255,255,.07);

  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,"Liberation Sans",sans-serif;
  --container:1200px;
  --pad-x:clamp(20px,5vw,48px);
  --section-y:clamp(72px,11vw,148px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--black);color:var(--on-dark);
  font-family:var(--sans);font-size:1.0625rem;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
img,svg{display:block;max-width:100%}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--pad-x)}
section[id]{scroll-margin-top:104px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55em;font:inherit;font-size:.8125rem;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;text-decoration:none;padding:.95em 1.5em;border-radius:7px;
  border:1px solid transparent;cursor:pointer;
  transition:background-color .2s ease,color .2s ease,transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease,border-color .2s ease;
}
.btn--accent{background:var(--accent);color:var(--accent-ink)}
.btn--accent:hover{background:var(--accent-2);transform:translateY(-2px);box-shadow:0 10px 30px rgba(255,248,0,.16)}
.btn--ghost{background:transparent;color:var(--on-dark);border-color:var(--hair-dark)}
.btn--ghost:hover{border-color:var(--on-dark)}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

/* ---------- logo ---------- */
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo img{height:60px;width:auto}
.footer__brand .logo img{height:60px}
@media (max-width:600px){.nav .logo img{height:44px}}  /* fit the taller logo beside the button on small screens */

/* ---------- eyebrow / section titles ---------- */
.eyebrow{margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--label)}
.section-title{margin:0;font-size:clamp(2rem,1.5rem + 2.3vw,3.15rem);font-weight:500;line-height:1.05;letter-spacing:-.025em}

/* ==========================================================================
   NAV
   ========================================================================== */
.nav{position:sticky;top:0;z-index:50;background:rgba(5,5,5,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hair-dark-soft)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
.nav__links{display:none;gap:34px}
.nav__links a{color:var(--on-dark-dim);font-size:.8125rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;transition:color .18s ease}
.nav__links a:hover{color:var(--on-dark)}
.nav__cta{padding:.7em 1.15em}
@media (min-width:900px){.nav__links{display:flex}}

/* ==========================================================================
   HERO (home)
   ========================================================================== */
.hero{position:relative;overflow:hidden;background:var(--black);min-height:min(90vh,780px);display:flex;align-items:center;padding-block:clamp(80px,14vw,150px)}
.glow{
  position:absolute;pointer-events:none;border-radius:50%;filter:blur(72px);
  background:
    radial-gradient(circle at 52% 42%, rgba(255,201,84,.85), rgba(255,201,84,0) 42%),
    radial-gradient(circle at 62% 52%, rgba(240,98,0,.8),  rgba(240,98,0,0)   46%),
    radial-gradient(circle at 72% 60%, rgba(168,14,0,.78), rgba(120,8,0,0)    58%),
    radial-gradient(circle at 46% 66%, rgba(210,54,0,.6),  rgba(210,54,0,0)   50%);
}
.hero__glow{top:-18%;right:-16%;width:min(84vw,820px);height:min(84vw,820px);opacity:.62;z-index:0}
.hero__inner{position:relative;z-index:1}
.hero .eyebrow{margin-bottom:1.4rem}
.hero__title{margin:0;font-size:clamp(2.85rem,1.7rem + 5vw,5.5rem);font-weight:500;line-height:1.0;letter-spacing:-.035em;max-width:16ch;color:var(--on-dark)}
.hero__actions{margin-top:clamp(28px,4vw,44px);display:flex;flex-wrap:wrap;gap:14px}
@media (max-width:700px){.hero__glow{top:-22%;right:-42%;opacity:.42}}

/* ==========================================================================
   ABOUT (home)
   ========================================================================== */
.about{background:var(--black);border-top:1px solid var(--hair-dark-soft);padding-block:clamp(76px,11vw,150px)}
.about__inner{max-width:940px;margin-inline:auto;text-align:center}
.about .eyebrow{margin-bottom:1.6rem}
.about__text{margin:0;font-size:clamp(1.35rem,1.05rem + 1.35vw,2.15rem);line-height:1.36;letter-spacing:-.015em;font-weight:400;color:#DcDcDc}

/* ==========================================================================
   PRODUCTS (home)
   ========================================================================== */
.products{background:var(--light);color:var(--ink);padding-block:clamp(76px,11vw,150px)}
.products__head{max-width:760px;margin:0 0 clamp(40px,6vw,64px)}
.products .eyebrow{color:var(--label-light)}
.cards{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:760px){.cards{grid-template-columns:repeat(2,1fr);gap:22px}}
.card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:clamp(26px,3.2vw,40px);transition:border-color .22s ease,box-shadow .22s ease,transform .22s cubic-bezier(.2,.7,.2,1)}
.card:hover{border-color:var(--card-border-hover);box-shadow:0 16px 48px rgba(20,20,20,.08);transform:translateY(-4px)}
.card__icon{width:52px;height:52px;border-radius:13px;background:#F1F1F0;color:var(--ink);display:grid;place-items:center;margin-bottom:clamp(22px,3vw,32px)}
.card__icon svg{width:26px;height:26px}
.card__title{margin:0 0 .5em;font-size:clamp(1.5rem,1.25rem + 1vw,2rem);font-weight:500;letter-spacing:-.02em;line-height:1.1}
.card__desc{margin:0;font-size:1.0625rem;line-height:1.6;color:var(--ink-soft)}
.card__status{display:flex;align-items:baseline;gap:.65rem;margin:clamp(20px,2.6vw,28px) 0 0;padding-top:clamp(18px,2.4vw,24px);border-top:1px solid #ECECEC;font-size:.95rem;color:var(--ink-faint)}
.card__status .dot{position:relative;top:.05rem;width:.5rem;height:.5rem;border-radius:50%;background:#2C2C2C;flex:none}

/* ==========================================================================
   CONTACT (home)
   ========================================================================== */
.contact{position:relative;overflow:hidden;background:var(--dark);padding-block:clamp(80px,12vw,160px)}
.contact__glow{top:-30%;right:-20%;width:min(78vw,720px);height:min(78vw,720px);opacity:.5;z-index:0}
.contact__inner{position:relative;z-index:1;max-width:900px}
.contact .eyebrow{margin-bottom:1.4rem}
.contact .section-title{max-width:16ch}
.contact__grid{margin-top:clamp(36px,5vw,52px);display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}
@media (min-width:720px){.contact__grid{grid-template-columns:1fr 1fr}}
.contact address{font-style:normal;display:grid;gap:.6rem}
.contact__name{font-weight:600;font-size:1.1875rem;color:var(--on-dark)}
.contact__addr{color:var(--on-dark-dim);line-height:1.7}
.contact__links{display:grid;gap:.4rem;margin-top:.2rem}
.contact__link{
  display:inline-block;width:max-content;color:var(--on-dark);text-decoration:none;
  font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem);font-weight:500;letter-spacing:-.01em;padding-block:4px;
  background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:0 100%;background-size:0% 2px;
  transition:background-size .3s cubic-bezier(.2,.7,.2,1)}
.contact__link:hover{background-size:100% 2px}
.contact__actions{margin-top:clamp(28px,4vw,36px)}

/* ==========================================================================
   FOOTER (shared)
   ========================================================================== */
.footer{background:var(--dark-2);border-top:1px solid var(--hair-dark-soft);padding-block:clamp(56px,8vw,88px) 0}
.footer__top{display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,56px)}
@media (min-width:760px){.footer__top{grid-template-columns:1.5fr 1fr 1.2fr}}
.footer__tag{margin:1.2rem 0 0;color:var(--on-dark-dim);font-size:1.0625rem;max-width:30ch}
.footer__col h2{margin:0 0 1.1rem;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--label)}
.footer__col a,.footer__col span{display:block;color:var(--on-dark-dim);text-decoration:none;font-size:1rem;line-height:1.5;margin-bottom:.7rem}
.footer__col a{transition:color .18s ease}
.footer__col a:hover{color:var(--on-dark)}
.footer__bottom{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;margin-top:clamp(44px,6vw,72px);border-top:1px solid var(--hair-dark-soft);padding-block:26px}
.footer__bottom p{margin:0;font-size:.875rem;color:var(--on-dark-faint)}
.footer__bottom a{color:var(--on-dark-dim);text-decoration:none;font-size:.875rem;transition:color .18s ease}
.footer__bottom a:hover{color:var(--on-dark)}

/* ==========================================================================
   LEGAL (privacy)
   ========================================================================== */
.legal-hero{position:relative;overflow:hidden;background:var(--black);border-bottom:1px solid var(--hair-dark-soft);padding-block:clamp(52px,8vw,104px) clamp(40px,6vw,64px)}
.legal-hero::before{
  content:"";position:absolute;pointer-events:none;border-radius:50%;
  top:-40%;right:-14%;width:min(64vw,560px);height:min(64vw,560px);filter:blur(76px);opacity:.34;
  background:
    radial-gradient(circle at 55% 45%,rgba(255,201,84,.7),rgba(255,201,84,0) 46%),
    radial-gradient(circle at 66% 56%,rgba(240,98,0,.65),rgba(240,98,0,0) 52%),
    radial-gradient(circle at 74% 62%,rgba(168,14,0,.6),rgba(120,8,0,0) 58%);
}
.legal-hero__inner{position:relative;z-index:1;max-width:760px}
.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--on-dark-dim);text-decoration:none;font-size:.9375rem;margin-bottom:1.8rem;transition:color .18s ease}
.back-link:hover{color:var(--on-dark)}
.legal-hero h1{margin:0;font-size:clamp(2.4rem,1.8rem + 2.6vw,3.6rem);font-weight:500;line-height:1.03;letter-spacing:-.03em;color:var(--on-dark)}
.legal-hero .updated{margin:1.4rem 0 0;font-size:.9375rem;color:var(--on-dark-faint)}
.legal-hero .updated strong{color:var(--on-dark-dim);font-weight:600}
.legal-hero .scope{margin:1.4rem 0 0;padding-bottom:1.5rem;border-bottom:1px solid var(--hair-dark-soft);font-size:1rem;line-height:1.6;color:var(--on-dark-dim);max-width:58ch}
.legal-hero .scope strong{color:var(--read-strong);font-weight:600}
.legal-hero .lead{margin:1.5rem 0 0;font-size:clamp(1.125rem,1.05rem + .35vw,1.3rem);line-height:1.6;color:var(--read)}
.legal-hero .org{margin:1.7rem 0 0;font-style:normal;color:var(--on-dark-dim);line-height:1.7;font-size:1rem;border-left:2px solid var(--accent);padding-left:1.1rem}
.legal-hero .org strong{color:var(--on-dark);font-weight:600}
.legal-hero .org a{color:var(--on-dark-dim)}

.legal{padding-block:clamp(44px,6vw,80px)}
.legal__inner{max-width:820px}

.toc{border:1px solid var(--hair-dark);border-radius:14px;padding:clamp(22px,3vw,30px);margin-bottom:clamp(40px,6vw,60px)}
.toc h2{margin:0 0 1rem;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--label)}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:toc;display:grid;gap:.55rem}
@media (min-width:640px){.toc ol{grid-template-columns:1fr 1fr;gap:.55rem 2.5rem}}
.toc li{counter-increment:toc}
.toc a{display:inline-flex;gap:.7rem;text-decoration:none;color:var(--read);font-size:1rem;transition:color .18s ease}
.toc a::before{content:counter(toc,decimal-leading-zero);color:var(--label);font-variant-numeric:tabular-nums;font-weight:600}
.toc a:hover{color:var(--on-dark)}

.legal section{padding-top:clamp(34px,5vw,52px);margin-top:clamp(34px,5vw,52px);border-top:1px solid var(--hair-dark-soft)}
.legal section:first-of-type{border-top:0;margin-top:0;padding-top:0}
.legal h2{margin:0 0 1.2rem;font-size:clamp(1.4rem,1.15rem + .75vw,1.85rem);font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--on-dark)}
.legal h3{margin:2rem 0 .9rem;font-size:1.1875rem;font-weight:600;letter-spacing:-.01em;color:var(--read-strong)}
.legal p{margin:0 0 1.1rem;font-size:1.0625rem;line-height:1.75;color:var(--read)}
.legal p:last-child{margin-bottom:0}
.legal strong{color:var(--read-strong);font-weight:600}
.legal a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1.5px;transition:color .18s ease}
.legal a:hover{color:var(--on-dark)}

.legal ul{margin:0 0 1.1rem;padding:0;list-style:none;display:grid;gap:.8rem}
.legal ul li{position:relative;padding-left:1.5rem;font-size:1.0625rem;line-height:1.7;color:var(--read)}
.legal ul li::before{content:"";position:absolute;left:.1rem;top:.66em;width:.42rem;height:.42rem;border-radius:50%;background:var(--on-dark-faint)}
.legal ul li strong{color:var(--read-strong)}

.table-wrap{overflow-x:auto;margin:0 0 1.3rem;border:1px solid var(--hair-dark-soft);border-radius:12px}
.legal table{width:100%;border-collapse:collapse;font-size:1rem;min-width:520px}
.legal th,.legal td{text-align:left;padding:.85rem 1.1rem;border-bottom:1px solid var(--hair-dark-soft);vertical-align:top;line-height:1.5}
.legal tbody tr:last-child td{border-bottom:0}
.legal thead th{color:var(--on-dark);font-weight:600;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.03)}
.legal td{color:var(--read)}
.legal td strong{color:var(--read-strong)}

.legal address{font-style:normal;line-height:1.85;color:var(--read);border-left:2px solid var(--accent);padding-left:1.1rem}
.legal address strong{color:var(--on-dark)}

/* ==========================================================================
   MOTION (progressive enhancement, reduced-motion safe)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .rise{opacity:0;transform:translateY(14px);animation:rise .85s cubic-bezier(.2,.7,.2,1) both}
  .d1{animation-delay:.04s}.d2{animation-delay:.14s}.d3{animation-delay:.24s}
  .glow{animation:drift 18s ease-in-out infinite alternate}
  .contact__glow{animation-duration:22s}
  /* home-page scroll reveals only (legal copy is always visible) */
  @supports (animation-timeline: view()){
    .reveal{opacity:0;transform:translateY(22px);animation:rise linear both;animation-timeline:view();animation-range:entry 8% entry 60%}
  }
}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes drift{from{transform:translate(0,0) scale(1) rotate(0deg)}to{transform:translate(-3%,2%) scale(1.08) rotate(6deg)}}
