/* ============================================================
   taluvu — public website (editorial redesign)
   Warm, premium, calm. Palette + characters from the taluvu app.
   Display: Fraunces (soft serif) · Body/UI: DM Sans.
   Mobile-first. Alternating light/dark editorial bands.
   ============================================================ */

:root{
  --mint:#5ECFB8;
  --mint-2:#7DCEA0;
  --mint-deep:#3E8A6C;
  --deep:#0D2E22;
  --forest:#0C1D16;
  --forest-2:#123227;
  --jade:#1E4D3C;
  --sub:#4F7264;
  --sand:#E8A44A;
  --bg:#F6F2E9;
  --bg-2:#FBF8F1;
  --tint:#E7F1E2;
  --surface:#FFFFFF;
  --border:rgba(30,77,60,.14);
  --border-mint:rgba(94,207,184,.32);
  --shadow-sm:0 4px 16px rgba(30,60,45,.06);
  --shadow-md:0 16px 44px rgba(20,45,34,.10);
  --shadow-lg:0 30px 70px rgba(12,31,26,.18);
  --r:22px;
  --r-lg:30px;
  --maxw:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

body{
  margin:0;
  font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  color:var(--deep);
  background:var(--bg);
  line-height:1.62;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%}
a{color:var(--jade);text-decoration:none}

/* Display type — Fraunces for editorial warmth */
.display{
  font-family:"Fraunces",Georgia,"Times New Roman",serif;
  font-weight:400;
  letter-spacing:-.01em;
  line-height:1.1;
  color:var(--deep);
  margin:0 0 .45em;
  font-optical-sizing:auto;
}
h1.display{font-size:clamp(2rem,4.2vw,3.3rem);line-height:1.08}
h2.display{font-size:clamp(1.85rem,4vw,3rem)}
.display.light{color:#FCFBF6}
h3{font-family:"DM Sans",sans-serif;font-weight:600;font-size:1.18rem;line-height:1.3;margin:0 0 .4em;color:var(--deep)}
p{margin:0 0 1rem}

.label{
  font-family:"DM Sans",sans-serif;
  font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mint-deep);margin:0 0 1rem;
}
.label-light{color:var(--mint)}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:780px}
.center{text-align:center}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--deep);color:#fff;padding:10px 16px;border-radius:0 0 10px 0;z-index:200}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--mint);outline-offset:2px;border-radius:6px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-size:1rem;font-weight:500;
  padding:13px 24px;border-radius:99px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
  min-height:48px;text-align:center;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(150deg,#5FB88F,#4CAF7D);color:#fff;box-shadow:0 8px 22px rgba(76,175,125,.30)}
.btn-primary:hover{box-shadow:0 12px 30px rgba(76,175,125,.4);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--jade);border-color:var(--border-mint)}
.btn-ghost:hover{background:rgba(94,207,184,.09)}
.band-dark .btn-ghost,.band-deep .btn-ghost{color:#EAF3EC;border-color:rgba(94,207,184,.5)}
.band-dark .btn-ghost:hover,.band-deep .btn-ghost:hover{background:rgba(94,207,184,.12)}
.btn-lg{padding:16px 30px;min-height:54px;font-size:1.04rem}
.btn-sm{padding:9px 18px;min-height:40px;font-size:.92rem}
.btn-block{width:100%;margin-top:6px}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(246,242,233,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:inline-flex;align-items:center;gap:9px}
.brand-name{font-weight:600;font-size:1.3rem;letter-spacing:-.02em;color:var(--deep)}
.site-nav{display:flex;align-items:center;gap:24px}
.site-nav a:not(.btn){color:var(--sub);font-weight:500;font-size:.95rem}
.site-nav a:not(.btn):hover{color:var(--deep)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:10px;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--deep);border-radius:2px;transition:.2s}
.mobile-nav{display:none;flex-direction:column;gap:2px;padding:10px 24px 20px;border-bottom:1px solid var(--border);background:var(--bg)}
.mobile-nav a:not(.btn){padding:13px 4px;color:var(--deep);font-weight:500;border-bottom:1px solid var(--border)}
.mobile-nav .btn{margin-top:14px}
@media (max-width:900px){
  .site-nav{display:none}
  .nav-toggle{display:flex}
  .mobile-nav[data-open]{display:flex}
}

/* ---------- Sections ---------- */
.section{padding:clamp(60px,9vw,116px) 0;scroll-margin-top:80px}
.section-head{margin-bottom:44px;max-width:660px}
.section-lede{font-size:1.16rem;color:var(--sub);font-weight:400}
.how .section-head,.for-you .section-head{margin-left:auto;margin-right:auto;text-align:center}

.band-dark{background:linear-gradient(165deg,#123227,#0C1D16);color:#EAF3EC}
.band-deep{background:radial-gradient(120% 120% at 30% 0%, #12332A 0%, #0A1712 70%);color:#EAF3EC}
.band-tint{background:linear-gradient(170deg,var(--tint),#DDEBD6)}
.on-dark{color:rgba(224,240,230,.82);font-size:1.1rem}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  padding:clamp(40px,6vw,88px) 0 clamp(56px,8vw,104px);
  background:radial-gradient(130% 100% at 82% 6%, #EAF3E2 0%, #F1EEE3 46%, var(--bg) 100%);
}
.hero-orb{position:absolute;border-radius:50%;filter:blur(50px);opacity:.5;pointer-events:none;z-index:0}
.hero-orb-a{width:340px;height:340px;background:rgba(94,207,184,.28);top:-80px;right:-40px}
.hero-orb-b{width:280px;height:280px;background:rgba(232,164,74,.16);bottom:-90px;left:-60px}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(30px,5vw,64px);align-items:center}
.hero-copy .display{margin-top:.15em}
.lede{font-size:1.2rem;color:var(--sub);max-width:36ch}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 20px}
.trust-line{display:flex;align-items:center;gap:9px;font-size:.92rem;color:var(--sub);margin:0;max-width:44ch}
.trust-line .shield{color:var(--mint-deep);flex-shrink:0}

.hero-visual{position:relative}
.scene-panel{
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);
  border:1px solid rgba(255,255,255,.6);background:#EAF3E4;
}
.hero-scene{width:100%;height:auto;display:block}
.hero-caption{text-align:center;font-size:.84rem;color:var(--sub);margin:14px 0 0}

.pip-breathe{transform-origin:145px 66px;animation:pip-breathe 5.5s ease-in-out infinite}
.asha-float{animation:asha-bob 6s ease-in-out infinite}
@keyframes pip-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
@keyframes asha-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .lede,.trust-line{max-width:none;margin-left:auto;margin-right:auto}
  .cta-row{justify-content:center}
  .hero-visual{order:-1;max-width:460px;margin:0 auto}
}

/* Asha in-app breathing keyframes (identical to the app) */
@keyframes a-fl2 {0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes a-br  {0%,100%{transform:scaleX(1) scaleY(1)}50%{transform:scaleX(1.035) scaleY(.968)}}
@keyframes a-gl  {0%,100%{opacity:.08}50%{opacity:.22}}
@keyframes a-aLd {0%,100%{transform:rotate(0)}50%{transform:rotate(-22deg)}}
@keyframes a-aRd {0%,100%{transform:rotate(0)}50%{transform:rotate(22deg)}}

/* ---------- Problem ---------- */
.problem{background:var(--bg-2)}
.problem .display{max-width:18ch}
.problem .section-lede{font-size:1.2rem;margin-top:.2em}

/* ---------- How (cards) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:30px 28px;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.card-icon{width:60px;height:60px;border-radius:16px;background:rgba(94,207,184,.13);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.card p{color:var(--sub);margin:0;font-size:1rem}
@media (max-width:860px){.card-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.card-grid{grid-template-columns:1fr}}

/* ---------- Spotlights ---------- */
.spotlight-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,72px);align-items:center}
.spotlight-copy p{color:var(--sub);font-size:1.1rem}
.band-dark .spotlight-copy p,.band-deep .spotlight-copy p{color:rgba(224,240,230,.82)}
.spotlight-grid.reverse .spotlight-visual{order:-1}
.tick-list{list-style:none;padding:0;margin:0 0 30px}
.tick-list li{position:relative;padding-left:30px;margin-bottom:11px;color:rgba(224,240,230,.92);font-size:1.05rem}
.tick-list li::before{content:"";position:absolute;left:0;top:9px;width:16px;height:16px;border-radius:50%;
  background:rgba(94,207,184,.18);border:1.5px solid var(--mint)}
.feature-points{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.feature-points li{display:flex;align-items:center;gap:10px;font-size:1rem;font-weight:500;color:var(--deep)}
.fp-ic{font-size:1.05rem}
@media (max-width:520px){.feature-points{grid-template-columns:1fr}}
@media (max-width:820px){
  .spotlight-grid{grid-template-columns:1fr}
  .spotlight-grid.reverse .spotlight-visual{order:0}
}

/* Mock cards */
.mock-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:24px;box-shadow:var(--shadow-md);color:var(--deep);max-width:410px;margin:0 auto}
.band-dark .mock-card{box-shadow:var(--shadow-lg)}
.mock-head{display:flex;align-items:center;gap:9px;font-size:.82rem;font-weight:600;letter-spacing:.03em;
  text-transform:uppercase;color:var(--sub);margin-bottom:16px}
.mock-dot{width:10px;height:10px;border-radius:50%;background:var(--mint)}
.mock-dot.sand{background:var(--sand)}
.mock-block{background:var(--bg-2);border-radius:14px;padding:13px 14px;margin-bottom:12px}
.mock-tag{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mint-deep);margin-bottom:9px}
.mock-line{height:9px;border-radius:5px;background:rgba(30,77,60,.12);margin:7px 0}
.mock-line.short{width:58%}
.mock-line.mock-title{height:13px;width:70%;background:rgba(30,77,60,.2);margin-bottom:16px}
.mock-line.contact-name{width:70%;height:10px;margin-bottom:8px}
.mock-foot{font-size:.78rem;color:var(--sub);margin-top:14px;text-align:center}
.contact-row{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--border)}
.contact-row:last-of-type{border-bottom:none}
.contact-body{flex:1;min-width:0}
.avatar{width:40px;height:40px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:#1E4D3C;background:rgba(94,207,184,.18)}
.avatar.rheum{background:rgba(232,164,74,.2);color:#8A5A18}
.avatar.phys{background:rgba(125,206,160,.22)}
.contact-actions{display:flex;gap:8px;flex-shrink:0}
.contact-actions i{width:30px;height:30px;border-radius:9px;background:rgba(94,207,184,.14);display:block;position:relative}
.contact-actions i::after{content:"";position:absolute;inset:0;background:var(--mint-deep);opacity:.7;-webkit-mask-size:16px;mask-size:16px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.ci-call::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3-8.6A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.6 2.6a2 2 0 0 1-.5 2.1L8 9.6a16 16 0 0 0 6 6l1.2-1.2a2 2 0 0 1 2.1-.5c.8.3 1.7.5 2.6.6a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3-8.6A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.6 2.6a2 2 0 0 1-.5 2.1L8 9.6a16 16 0 0 0 6 6l1.2-1.2a2 2 0 0 1 2.1-.5c.8.3 1.7.5 2.6.6a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E")}
.ci-mail::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E")}

/* ---------- Asha stage ---------- */
.asha-stage{display:flex;align-items:center;justify-content:center;min-height:280px;
  background:radial-gradient(circle at 50% 42%, rgba(255,255,255,.7), rgba(255,255,255,0) 62%);border-radius:var(--r-lg)}

/* ---------- Pip section ---------- */
.pip-section{overflow:hidden}
.pip-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,64px);align-items:center}
.pip-scene{display:flex;justify-content:center}
.pip-copy .on-dark{max-width:44ch}
@media (max-width:820px){.pip-inner{grid-template-columns:1fr;text-align:center}.pip-copy .on-dark{margin-left:auto;margin-right:auto}}

/* ---------- For You (audience) ---------- */
.audience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.aud-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:28px 26px;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .2s ease}
.aud-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.aud-ic{font-size:1.7rem;display:block;margin-bottom:12px}
.aud-card p{color:var(--sub);margin:0}
@media (max-width:680px){.audience-grid{grid-template-columns:1fr}}

/* ---------- Safety ---------- */
.safety{background:var(--bg-2)}
.safety-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 26px;margin-bottom:30px}
.safety-item{display:flex;align-items:flex-start;gap:11px;font-size:1.02rem;color:var(--deep);
  background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px 17px}
.safety-item .tick{color:var(--mint-deep);font-weight:700}
.safety-item .x{color:var(--sand);font-weight:700}
.disclaimer{background:rgba(94,207,184,.1);border:1px solid var(--border-mint);border-radius:16px;padding:20px 22px;font-size:1.05rem;color:var(--jade);font-weight:500;margin-bottom:16px}
.crisis-note{font-size:.94rem;color:var(--sub);margin:0}
@media (max-width:600px){.safety-grid{grid-template-columns:1fr}}

/* ---------- Beta ---------- */
.beta{background:radial-gradient(120% 100% at 50% 0%, #E7F1E2 0%, var(--bg) 62%)}
.beta-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(30px,5vw,52px);box-shadow:var(--shadow-md)}
.beta-form{margin-top:6px}
.field{margin-bottom:18px;display:flex;flex-direction:column}
.field label{font-weight:500;font-size:.96rem;margin-bottom:7px;color:var(--deep)}
.optional{color:var(--sub);font-weight:400}
.field input,.field textarea{font-family:inherit;font-size:1rem;color:var(--deep);padding:14px 16px;border:1.5px solid var(--border);border-radius:14px;background:var(--bg-2);transition:border .15s ease,background .15s ease;width:100%;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--mint);background:#fff}
.field input::placeholder,.field textarea::placeholder{color:#9AAFA4}
.check-row{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1.5px solid var(--border);border-radius:14px;background:var(--bg-2);margin-bottom:20px;cursor:pointer;font-size:.98rem}
.check-row input{width:20px;height:20px;margin-top:1px;accent-color:var(--mint);flex-shrink:0}
.form-fineprint{font-size:.85rem;color:var(--sub);text-align:center;margin:14px 0 0}
.hp-field{position:absolute;left:-9999px}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest);color:rgba(224,240,230,.72);padding:60px 0 32px}
.footer-inner{display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:start;padding-bottom:32px;border-bottom:1px solid rgba(94,207,184,.14)}
.site-footer .brand-name{color:#fff}
.footer-tag{font-size:.95rem;color:rgba(224,240,230,.66);max-width:48ch;margin:14px 0 0}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 28px;align-content:start}
.footer-links a{color:rgba(224,240,230,.82);font-weight:500}
.footer-links a:hover{color:#fff}
.footer-legal{padding-top:22px;font-size:.85rem;color:rgba(224,240,230,.5)}
.footer-legal p{margin:0 0 8px;max-width:72ch}
.footer-legal a{color:var(--mint)}
.footer-meta{color:rgba(224,240,230,.6)}
@media (max-width:640px){.footer-inner{grid-template-columns:1fr;gap:24px}}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.9,.3,1)}
.reveal.in{opacity:1;transform:none}
.card-grid .card:nth-child(2){transition-delay:.06s}
.card-grid .card:nth-child(3){transition-delay:.12s}
.card-grid .card:nth-child(4){transition-delay:.06s}
.card-grid .card:nth-child(5){transition-delay:.12s}
.card-grid .card:nth-child(6){transition-delay:.18s}
.audience-grid .aud-card:nth-child(2){transition-delay:.07s}
.audience-grid .aud-card:nth-child(3){transition-delay:.14s}
.audience-grid .aud-card:nth-child(4){transition-delay:.21s}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important;transform:none !important;transition:none !important}
  .pip-breathe,.asha-float,.hero-scene *,.asha-stage svg *{animation:none !important}
}


/* ── Clay imagery (2026-07-22) ──────────────────────────────────────────
   The app's own soft-clay renders, replacing flat placeholder graphics.
   Constrained and rounded so a 1376px asset never forces a sideways scroll. */
.clay-visual{
  display:block;width:100%;height:auto;max-width:100%;
  border-radius:20px;
  box-shadow:0 10px 34px rgba(13,46,34,.14);
}


/* ── Tap targets (2026-07-22) ───────────────────────────────────────────
   The header brand, the menu button, the desktop nav and the footer links
   were all bare inline text: 26–36px tall against a 44px guideline. This
   audience has fatigue, pain, brain fog and tremor — a link you have to aim
   at is a link some people simply cannot use.

   Done with inline-flex + min-height rather than padding, so the TEXT stays
   exactly where it was and only the hit box grows. min-height alone would do
   nothing here: these are inline elements, and min-height does not apply to
   them until they are made flex or block.

   .mobile-nav a already cleared 44px via its own padding and is untouched. */
.brand,
.site-nav a,
.footer-links a,
.footer-meta a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
/* The footer list gave each link 10px of row gap on the assumption they were
   26px tall. At 44px the boxes supply their own separation, so the extra gap
   would just make the footer sprawl. */
.footer-links{gap:0 28px}

/* The menu button was 36px square. */
.nav-toggle{min-width:44px;min-height:44px}

/* Visible keyboard focus — it was relying on the browser default, which the
   dark bands wash out almost completely. */
.brand:focus-visible,
.site-nav a:focus-visible,
.footer-links a:focus-visible,
.footer-meta a:focus-visible,
.nav-toggle:focus-visible,
.btn:focus-visible{
  outline:2px solid #5ECFB8;
  outline-offset:3px;
  border-radius:6px;
}

/* Legal-page controls: ".back" had no rule at all and inherited bare inline
   link sizing; the print button was 39px. Both are standalone controls, so
   both get the full target. */
.back,
.print-link,
.secondary-link{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:.9rem;
}
.back:focus-visible,
.print-link:focus-visible,
.secondary-link:focus-visible{outline:2px solid #5ECFB8;outline-offset:3px;border-radius:6px}

.legal-more a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.legal-more a:focus-visible{outline:2px solid #5ECFB8;outline-offset:3px;border-radius:6px}

/* DELIBERATELY NOT ENLARGED: email links sitting inside a sentence, e.g.
   "For privacy questions, contact hello@taluvu.co.uk". WCAG 2.5.8 exempts
   targets in a block of text, and forcing 44px on them would break the line
   height of the paragraph around them. Each of those addresses also appears
   as a full-size link in the footer of the same page. */
