/* ============================================================
   qrectly — shared styles (home + privacy)
   Local Outfit webfont, flat design system, cyan palette.
   ============================================================ */

/* ---- Local fonts (Outfit) ---- */
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/outfit-400.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/outfit-400-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/outfit-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/outfit-500-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/outfit-600.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/outfit-600-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/outfit-700.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/outfit-700-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Outfit';font-style:normal;font-weight:800;font-display:swap;
  src:url('fonts/outfit-800.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Outfit';font-style:normal;font-weight:800;font-display:swap;
  src:url('fonts/outfit-800-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ---- Tokens ---- */
:root{
  --pale:#A9E3EC;
  --cyan:#2eb5ca;
  --ink:#103137;
  --muted:#5b787d;
  --bg:#ECF8FB;
  --hair:#d8eef2;
}

/* ---- Base ---- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{min-height:100%}
body{
  font-family:'Outfit',system-ui,sans-serif;background:var(--bg);color:var(--ink);
  min-height:100vh;display:grid;place-items:center;padding:28px;-webkit-font-smoothing:antialiased;
}
body.privacy{place-items:start center}
a{color:inherit;text-decoration:none}

.card{width:min(560px,100%);background:#fff;border:2px solid var(--ink)}
.privacy .card{width:min(760px,100%)}

/* ---- Module bands (shared motif) ---- */
.band{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));grid-auto-rows:1fr;height:50px;overflow:hidden}
.band.top{border-bottom:2px solid var(--ink)}
.band.bot{border-top:2px solid var(--ink)}
.band span{aspect-ratio:1;background:transparent;transition:background .12s linear}
.band span.on{background:var(--cyan)}
.band span.ink{background:var(--ink)}
.band span:hover{background:var(--pale)}

/* ---- Privacy top bar ---- */
.bar{display:flex;align-items:center;justify-content:space-between;padding:22px 44px;border-bottom:2px solid var(--ink)}
.mark{font-weight:800;font-size:22px;letter-spacing:-.02em}
.mark i,h1 i{font-style:normal;color:var(--cyan)}
.back{font-weight:700;font-size:13.5px;color:var(--ink);display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid var(--cyan);padding-bottom:3px;transition:color .12s linear}
.back:hover{color:var(--cyan)}

/* ---- Content shell ---- */
.body{padding:38px 44px}
.privacy .body{padding:40px 44px 8px}

.kicker{display:flex;align-items:center;gap:9px;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:20px}
.kicker b{width:9px;height:9px;background:var(--cyan)}

h1{font-weight:800;letter-spacing:-.02em;line-height:1}
.home h1{font-size:clamp(40px,8vw,56px);margin-bottom:12px}
.privacy h1{font-size:clamp(34px,7vw,46px);line-height:1.02;margin-bottom:10px}

/* ---- Home copy ---- */
.tag{font-size:17px;color:var(--muted);max-width:34ch;margin-bottom:30px}
.label{font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--cyan);padding-bottom:10px;margin-bottom:14px;display:inline-block}
.lead{font-size:16px;line-height:1.6;color:var(--ink);max-width:42ch;margin-bottom:26px}

/* ---- Buttons ---- */
.actions{display:flex;flex-wrap:wrap;gap:0;margin-bottom:18px;border:2px solid var(--ink);width:fit-content}
.btn{font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:8px;padding:13px 20px;transition:background .12s linear,color .12s linear}
.btn.solid{background:var(--cyan);color:var(--ink);border-right:2px solid var(--ink)}
.btn.solid:hover{background:var(--ink);color:#fff}
.btn.ghost{background:#fff;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}

/* ---- App Store badge ---- */
.appstore{display:inline-flex;align-items:center;gap:11px;border:2px solid var(--ink);background:#fff;padding:10px 18px;width:fit-content;transition:background .12s linear,color .12s linear}
.appstore .apple{width:20px;height:24px;fill:var(--ink);transition:fill .12s linear}
.appstore .as{display:flex;flex-direction:column;line-height:1.05}
.appstore .as small{font-size:10px;letter-spacing:.04em;font-weight:500;color:var(--muted);transition:color .12s linear}
.appstore .as strong{font-size:17px;font-weight:700}
.appstore:hover{background:var(--ink);color:#fff}
.appstore:hover .apple{fill:#fff}
.appstore:hover .as small{color:var(--pale)}

/* ---- Footer ---- */
.foot{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;color:var(--muted);padding:14px 44px}
.privacy .foot{padding:26px 44px}
.foot a{color:var(--cyan);font-weight:600}
.foot a:hover{text-decoration:underline}
.sep{width:5px;height:5px;background:var(--pale)}

/* ---- Privacy: intro + TOC ---- */
.updated{font-size:13.5px;color:var(--muted);margin-bottom:30px}
.intro{font-size:16.5px;line-height:1.65;color:var(--ink);max-width:62ch;margin-bottom:28px}

.toc{border:2px solid var(--ink);padding:20px 22px;margin-bottom:36px}
.toc p{font-weight:700;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.toc ol{list-style:none;counter-reset:t;display:grid;grid-template-columns:1fr 1fr;gap:6px 24px}
.toc li{counter-increment:t}
.toc a{font-size:14.5px;font-weight:500;color:var(--ink);display:inline-flex;gap:9px;padding:3px 0;transition:color .12s linear}
.toc a::before{content:counter(t,decimal-leading-zero);color:var(--cyan);font-weight:700;font-variant-numeric:tabular-nums}
.toc a:hover{color:var(--cyan)}

/* ---- Privacy: sections ---- */
section{padding-top:28px;margin-top:28px;border-top:1px solid var(--hair);scroll-margin-top:20px}
section:first-of-type{border-top:none;margin-top:0;padding-top:0}
h2{display:flex;align-items:center;gap:11px;font-weight:700;font-size:20px;letter-spacing:-.01em;margin-bottom:14px}
h2 .n{font-size:13px;font-weight:700;color:#fff;background:var(--ink);min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.privacy p{font-size:15.5px;line-height:1.7;color:var(--ink);max-width:64ch;margin-bottom:14px}
.privacy p:last-child{margin-bottom:0}
.sub{font-weight:700;color:var(--ink)}
ul{list-style:none;max-width:64ch;margin:0 0 14px}
ul li{position:relative;padding-left:20px;font-size:15.5px;line-height:1.7;color:var(--ink);margin-bottom:7px}
ul li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;background:var(--cyan)}
.mailink{color:var(--cyan);font-weight:600}
.mailink:hover{text-decoration:underline}
.note{font-size:14px;color:var(--muted);font-style:italic}

/* ---- Focus ---- */
a:focus-visible,.btn:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}

/* ---- Mobile ---- */
@media (max-width:560px){
  .body{padding:30px 24px}
  .foot{padding:14px 24px}
  .actions{width:100%}
  .actions .btn{flex:1;justify-content:center}
  .privacy .bar{padding:18px 24px}
  .privacy .body{padding:30px 24px 8px}
  .privacy .foot{padding:22px 24px}
  .toc ol{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .band span,.btn,.appstore,.back,.toc a,.mailink{transition:none}
}
