/* ═══════════════════════════════════════════════════════════════
   Mediverse Legal — styles.css
   Editorial / legal-boutique aesthetic.
   Warm off-white base · deep navy · Mediverse blue accent.
   Fraunces (display serif) + DM Sans (body sans).
   ═══════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ol,ul,fieldset{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea,button{font:inherit}

:root{
  /* Palette */
  --paper:        #F6F2EA;   /* warm off-white, slightly creamy */
  --paper-2:      #EFE9DD;   /* deeper panel */
  --ink:          #0B1B2B;   /* near-black navy */
  --ink-2:        #1E2D3E;
  --muted:        #5B6B7C;
  --rule:         #D9CFBB;   /* warm hairline */
  --rule-2:       #C7BA9E;
  --accent:       #0066FF;   /* Mediverse blue */
  --accent-ink:   #0052CC;
  --accent-soft:  rgba(0,102,255,0.08);
  --ok:           #2F7A4F;
  --warn:         #8A4A1A;
  --err:          #9B1C2C;

  /* Type */
  --serif: "Fraunces", "Iowan Old Style", "Hoefler Text", Georgia, serif;
  --sans:  "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Scale */
  --step-0:  clamp(0.95rem, calc(0.90rem + 0.20vw), 1.05rem);
  --step-1:  clamp(1.10rem, calc(1.00rem + 0.40vw), 1.30rem);
  --step-2:  clamp(1.35rem, calc(1.15rem + 0.80vw), 1.75rem);
  --step-3:  clamp(1.90rem, calc(1.50rem + 1.80vw), 2.80rem);
  --step-4:  clamp(2.60rem, calc(1.90rem + 3.20vw), 4.50rem);
  --step-5:  clamp(3.40rem, calc(2.40rem + 4.60vw), 6.20rem);

  /* Layout */
  --wrap: 1240px;
  --gutter: clamp(1.25rem, calc(0.8rem + 2vw), 2.5rem);
  --section-y: clamp(4rem, calc(2rem + 6vw), 7rem);

  /* Transitions */
  --ease: cubic-bezier(.2,.6,.2,1);
}

html,body{background:var(--paper);color:var(--ink)}
body{
  font-family:var(--sans);
  font-size:var(--step-0);
  line-height:1.6;
  font-feature-settings:"ss01","cv11";
  /* Paper grain — very subtle */
  background-image:
    radial-gradient(1200px 520px at 8% -10%, rgba(0,102,255,0.04), transparent 60%),
    radial-gradient(900px 480px at 100% 0%, rgba(139,100,40,0.05), transparent 60%);
  min-height:100vh;
}

/* Film-grain overlay — quiet, tactile */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none; z-index:1;
  opacity:.35; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.04 0 0 0 0 0.03 0 0 0 0 0.02 0 0 0 0.35 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* Selection */
::selection{background:var(--accent);color:#fff}

/* Skip link */
.skip{
  position:absolute;left:-9999px;top:-9999px;
  background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:6px;font-size:.85rem;z-index:100;
}
.skip:focus{left:12px;top:12px}

/* ─────────── NAV ─────────── */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(246,242,234,0.82);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--rule);
}
.nav__wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:.9rem clamp(1rem, 0.8rem + 2vw, 2.25rem);
  display:flex;align-items:center;gap:2rem;
}
.brand{display:flex;align-items:center;gap:.7rem;flex-shrink:0;transition:opacity .2s var(--ease)}
.brand:hover{opacity:.82}
.brand__logo{
  height:36px; width:auto; display:block;
}
.brand__tag{
  font-family:var(--serif);
  font-style:italic;font-weight:400;
  font-size:1.1rem;letter-spacing:-.005em;
  color:var(--accent);
  padding-left:.7rem;
  border-left:1px solid var(--rule-2);
  line-height:1;
  white-space:nowrap;
}

.nav__links{margin-left:auto;display:flex;align-items:center;gap:1.5rem}
.nav__links a{
  font-size:.95rem;color:var(--ink-2);font-weight:500;
  position:relative;padding:.25rem 0;
  transition:color .18s var(--ease);
}
.nav__links a:hover{color:var(--accent-ink)}
.nav__links a:not(.nav__cta)::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;
  height:1px;background:var(--accent);
  transition:right .25s var(--ease);
}
.nav__links a:not(.nav__cta):hover::after,
.nav__links a:not(.nav__cta):focus-visible::after{right:0}

.nav__cta{
  background:var(--ink);color:#fff !important;
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.95rem 1.5rem;border-radius:999px;
  font-size:1rem !important;font-weight:600 !important;letter-spacing:.005em;
  transition:background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  box-shadow:0 2px 4px rgba(11,27,43,.18), 0 0 0 1px rgba(11,27,43,.04);
  margin-left:.5rem;
}
.nav__cta span[aria-hidden="true"]{transition:transform .2s var(--ease)}
.nav__cta:hover{
  background:var(--accent);color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,102,255,.3);
}
.nav__cta:hover span[aria-hidden="true"]{transform:translateX(3px)}
.nav__cta::after{display:none !important}

.nav__toggle{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px;align-items:center;margin-left:auto}
.nav__toggle span{width:22px;height:1.5px;background:var(--ink);transition:transform .25s var(--ease), opacity .25s var(--ease)}
.nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.nav__mobile{display:none;flex-direction:column;padding:.5rem var(--gutter) 1.25rem;border-top:1px solid var(--rule);background:var(--paper)}
.nav__mobile a{padding:.85rem 0;border-bottom:1px solid var(--rule);font-size:1rem}
.nav__mobile a.nav__cta{margin-top:.75rem;text-align:center;border-bottom:0}

@media (max-width:820px){
  .nav__links{display:none}
  .nav__toggle{display:flex}
  .nav__mobile[data-open="true"]{display:flex}
}

/* ─────────── UTILITY ─────────── */
.eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
  display:inline-flex;align-items:center;gap:.7rem;
}
.eyebrow span{
  font-family:var(--serif);font-style:italic;font-weight:400;
  color:var(--accent);font-size:.85rem;letter-spacing:0;
  padding-right:.7rem;border-right:1px solid var(--rule-2);
}

.section__head{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 var(--gutter);
}
.section__title{
  font-family:var(--serif);
  font-weight:450;
  font-size:var(--step-4);
  line-height:1.02;
  letter-spacing:-.025em;
  margin:1rem 0 .75rem;
  font-variation-settings:"opsz" 144, "SOFT" 50;
}
.section__title em{font-style:italic;font-weight:350;color:var(--accent)}
.section__sub{
  color:var(--muted);
  font-size:var(--step-1);
  max-width:60ch;
  line-height:1.5;
}

.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.85rem 1.35rem;
  border-radius:999px;
  font-size:.95rem;font-weight:500;
  letter-spacing:.002em;
  transition:transform .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease), color .2s var(--ease);
  white-space:nowrap;
}
.btn--primary{background:var(--ink);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 1px 2px rgba(11,27,43,.3)}
.btn--primary:hover{background:var(--accent);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,102,255,.25)}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--rule-2)}
.btn--ghost:hover{border-color:var(--ink);background:#fff}
.btn--lg{padding:1.1rem 1.85rem;font-size:1.05rem;font-weight:600;gap:.7rem}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.btn span[aria-hidden="true"]{transition:transform .2s var(--ease)}
.btn:hover span[aria-hidden="true"]{transform:translateX(3px)}

/* ─────────── HERO ─────────── */
.hero{
  position:relative;
  max-width:var(--wrap);
  margin:0 auto;
  padding:clamp(3rem, calc(2rem + 5vw), 6rem) var(--gutter) clamp(2.5rem, calc(1.5rem + 4vw), 5rem);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:3rem;
  align-items:start;
}
.hero__grid{max-width:62ch;position:relative;z-index:2}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
  padding:.4rem .85rem;
  background:var(--paper-2);border:1px solid var(--rule);border-radius:999px;
  margin-bottom:1.75rem;
}
.hero__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(0,102,255,.15)}

.hero__title{
  font-family:var(--serif);
  font-weight:400;
  font-size:var(--step-5);
  line-height:.98;
  letter-spacing:-.032em;
  color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 40;
  max-width:16ch;
}
.hero__title em{
  font-style:italic;
  font-weight:350;
  color:var(--accent);
  /* subtle underline on decorative italic */
  background-image:linear-gradient(to right, var(--accent), var(--accent));
  background-size:100% 1px;
  background-position:0 100%;
  background-repeat:no-repeat;
  padding-bottom:.05em;
}

.hero__lede{
  margin-top:1.5rem;
  font-size:var(--step-1);
  line-height:1.55;
  color:var(--ink-2);
  max-width:54ch;
}

.hero__ctas{
  margin-top:2rem;
  display:flex;flex-wrap:wrap;gap:.75rem;
}

.hero__meta{
  margin-top:3rem;
  padding-top:1.5rem;
  border-top:1px solid var(--rule);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,auto));
  gap:2rem 2.5rem;
}
.hero__meta-k{
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.35rem;
}
.hero__meta-v{
  font-family:var(--serif);font-size:1rem;line-height:1.35;
  color:var(--ink);font-weight:500;
}
.hero__meta-v span{color:var(--accent);font-style:italic;font-weight:400}

/* Hero decorative side frame */
.hero__frame{
  position:relative;align-self:stretch;
  display:flex;justify-content:flex-end;
  padding-top:.5rem;
}
.frame__rule{
  width:1px;background:linear-gradient(to bottom, transparent, var(--rule-2) 15%, var(--rule-2) 85%, transparent);
  position:relative;
}
.frame__lat{
  position:absolute;
  top:50%;right:calc(100% + 1rem);
  transform:rotate(-90deg) translateX(50%);
  transform-origin:right center;
  white-space:nowrap;
  font-size:.68rem;letter-spacing:.28em;
  color:var(--muted);
  font-variant-numeric:tabular-nums;
}

@media (max-width:820px){
  .hero{grid-template-columns:1fr}
  .hero__frame{display:none}
  .hero__meta{grid-template-columns:1fr;gap:1rem}
}

/* ─────────── SERVICES ─────────── */
.services{
  padding:var(--section-y) 0;
  background:linear-gradient(to bottom, transparent 0, var(--paper-2) 90px, var(--paper-2) calc(100% - 90px), transparent 100%);
  position:relative;
}
.services .section__head{margin-bottom:clamp(2.5rem, calc(1.5rem + 3vw), 4rem)}

.svc{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 var(--gutter);
  display:flex;flex-direction:column;
}
.svc__item{
  display:grid;
  grid-template-columns:minmax(90px,140px) minmax(0,1fr);
  gap:clamp(1.5rem, calc(1rem + 2vw), 3rem);
  padding:clamp(2rem, calc(1rem + 2vw), 3rem) 0;
  border-top:1px solid var(--rule);
  align-items:start;
  position:relative;
  transition:background .3s var(--ease);
}
.svc__item:last-child{border-bottom:1px solid var(--rule)}
.svc__item:hover{background:rgba(255,255,255,.35)}

.svc__num{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(3rem, calc(2rem + 3vw), 4.5rem);
  line-height:1;
  color:var(--accent);
  font-variation-settings:"opsz" 144;
  font-variant-numeric:lining-nums;
}

.svc__title{
  font-family:var(--serif);
  font-weight:450;
  font-size:var(--step-3);
  line-height:1.1;
  letter-spacing:-.02em;
  color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 50;
}
.svc__tag{
  margin-top:.5rem;
  font-family:var(--serif);
  font-style:italic;
  font-size:var(--step-1);
  color:var(--muted);
  font-weight:350;
}
.svc__desc{
  margin-top:1.1rem;
  font-size:1.02rem;line-height:1.65;
  color:var(--ink-2);
  max-width:62ch;
}
.svc__desc em{color:var(--accent-ink);font-style:italic}

.svc__pills{
  margin-top:1.5rem;
  display:flex;flex-wrap:wrap;gap:.45rem;
}
.svc__pills li{
  font-size:.78rem;letter-spacing:.03em;
  padding:.32rem .7rem;
  background:#fff;
  border:1px solid var(--rule-2);
  border-radius:999px;
  color:var(--ink-2);
}

@media (max-width:640px){
  .svc__item{grid-template-columns:1fr;gap:1rem}
  .svc__num{font-size:3rem}
}

/* ─────────── ABOUT ─────────── */
.about{
  padding:var(--section-y) 0;
}
.about__grid{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:minmax(260px,420px) minmax(0,1fr);
  gap:clamp(2rem, calc(1rem + 4vw), 5.5rem);
  align-items:start;
}
.about__portrait{position:sticky;top:100px}

/* Portrait frame — warm off-white card, thin hairline, small corner ornaments */
.portrait{
  position:relative;
  background:#fff;
  border:1px solid var(--rule);
  padding:14px 14px 0;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 18px 40px rgba(11,27,43,.07);
}
.portrait::before,
.portrait::after{
  content:"";position:absolute;width:10px;height:10px;
  border:1px solid var(--accent);
}
.portrait::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.portrait::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.portrait img{
  display:block;width:100%;height:auto;
  filter:saturate(1.02) contrast(1.01);
}
.portrait__caption{
  display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;
  padding:.85rem .25rem .95rem;
  border-top:1px solid var(--rule);
  margin-top:14px;
}
.portrait__caption-k{
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
}
.portrait__caption-v{
  font-family:var(--serif);font-size:.95rem;
  color:var(--ink);font-weight:450;letter-spacing:-.005em;
}
.portrait__caption-v em{color:var(--accent);font-style:italic}

.about__main > .eyebrow{margin-bottom:.5rem}
.about__title{
  margin-top:.25rem;
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
}

.about__lede{
  font-family:var(--serif);
  font-size:var(--step-2);
  line-height:1.35;
  font-weight:400;
  color:var(--ink);
  max-width:40ch;
  margin-top:1.5rem;
  font-variation-settings:"opsz" 144;
}
.about__body{
  margin-top:1.25rem;
  font-size:1.05rem;line-height:1.65;
  color:var(--ink-2);
  max-width:64ch;
}

.about__creds{
  margin-top:2.5rem;
  display:grid;grid-template-columns:1fr;gap:0;
  border-top:1px solid var(--rule);
}
.cred{
  padding:1.1rem 0;
  border-bottom:1px solid var(--rule);
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(0,3fr);
  gap:2rem;align-items:baseline;
}
.cred__k{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.cred__v{
  font-family:var(--serif);
  font-size:1.05rem;
  line-height:1.5;
  color:var(--ink);
  font-weight:450;
}

@media (max-width:820px){
  .about__grid{grid-template-columns:1fr}
  .about__portrait{position:static;max-width:340px;margin:0 auto 2rem}
  .cred{grid-template-columns:1fr;gap:.25rem}
}

/* ─────────── APPROACH ─────────── */
.approach{
  padding:var(--section-y) 0;
  background:var(--paper-2);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.approach .section__head{margin-bottom:clamp(2rem, calc(1rem + 2vw), 3rem)}

.steps{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem, calc(.5rem + 1.5vw), 2rem);
}
.step{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:4px;
  padding:1.75rem 1.5rem;
  position:relative;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.step:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(11,27,43,.06)}
.step__num{
  font-family:var(--serif);
  font-style:italic;
  font-weight:350;
  font-size:1.4rem;
  color:var(--accent);
  margin-bottom:.9rem;
  display:inline-block;
  padding-bottom:.4rem;
  border-bottom:1px solid var(--rule-2);
  min-width:1.8em;
}
.step h3{
  font-family:var(--serif);
  font-weight:500;
  font-size:1.2rem;
  line-height:1.2;
  color:var(--ink);
  margin-bottom:.5rem;
  letter-spacing:-.01em;
}
.step p{
  font-size:.94rem;line-height:1.55;
  color:var(--muted);
}

@media (max-width:900px){
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .steps{grid-template-columns:1fr}
}

/* ─────────── CONTACT ─────────── */
.contact{
  padding:var(--section-y) 0;
}
.contact__grid{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(2rem, calc(1rem + 3vw), 5rem);
  align-items:start;
}

.contact__lede{
  margin-top:1.5rem;
  font-size:var(--step-1);
  color:var(--ink-2);
  line-height:1.55;
  max-width:48ch;
}

.contact__direct{
  margin-top:2.25rem;
  padding:1.5rem 1.75rem;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:4px;
  position:relative;
}
.contact__direct::before{
  content:"";
  position:absolute;left:0;top:1.25rem;bottom:1.25rem;
  width:3px;background:var(--accent);
}
.contact__direct-k{
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.55rem;
}
.contact__direct-v{
  display:block;
  font-family:var(--serif);
  font-size:clamp(1.8rem, calc(1.3rem + 1.5vw), 2.6rem);
  color:var(--accent-ink);
  letter-spacing:.005em;
  transition:color .2s var(--ease);
  font-weight:450;
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"ss01";
  word-break:break-all;
  line-height:1.1;
}
.contact__direct-v:hover{color:var(--accent)}
.contact__direct-note{
  margin-top:.45rem;
  font-size:.82rem;
  color:var(--muted);
  letter-spacing:.01em;
}

.disclaimer{
  margin-top:2rem;
  font-size:.82rem;
  line-height:1.55;
  color:var(--muted);
  padding-left:1rem;
  border-left:2px solid var(--rule-2);
  font-style:italic;
  max-width:50ch;
}

/* Form */
.form{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:6px;
  padding:clamp(1.5rem, calc(1rem + 1.5vw), 2.25rem);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 10px 40px rgba(11,27,43,.04);
}
.field{margin-bottom:1.25rem}
.field label,
.field legend{
  display:block;
  font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
  margin-bottom:.45rem;
}
.field__opt{
  text-transform:none;letter-spacing:0;
  font-style:italic;color:var(--rule-2);font-weight:400;
  font-family:var(--serif);font-size:.78rem;
}
.field input[type="text"],
.field input[type="email"],
.field textarea{
  width:100%;
  padding:.75rem .9rem;
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:4px;
  font-family:var(--sans);font-size:.98rem;color:var(--ink);
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}
.field input:hover,
.field textarea:hover{border-color:var(--rule-2);background:#fff}
.field input:focus,
.field textarea:focus{
  outline:0;border-color:var(--accent);background:#fff;
  box-shadow:0 0 0 3px var(--accent-soft);
}
.field textarea{resize:vertical;min-height:120px;line-height:1.55}
.field--group{border:0;padding:0}

.checks{display:flex;flex-wrap:wrap;gap:.5rem .6rem}
.check{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.5rem .85rem;
  background:var(--paper);border:1px solid var(--rule);
  border-radius:999px;
  font-size:.88rem;cursor:pointer;
  transition:all .15s var(--ease);
  text-transform:none;letter-spacing:0;color:var(--ink-2);
  font-weight:400;
  margin-bottom:0;
}
.check:hover{border-color:var(--rule-2);background:#fff}
.check input{accent-color:var(--accent);margin:0}
.check:has(input:checked){
  background:var(--accent-soft);
  border-color:var(--accent);
  color:var(--accent-ink);
}

.field__err{
  min-height:1.1em;margin-top:.35rem;
  font-size:.82rem;color:var(--err);
}
.field[data-invalid="true"] input,
.field[data-invalid="true"] textarea{border-color:var(--err);box-shadow:0 0 0 3px rgba(155,28,44,.12)}

/* Honeypot — visually hidden, not display:none (bots skip display:none) */
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

.form__footer{
  margin-top:.5rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
}
.form__status{
  font-size:.88rem;color:var(--muted);margin:0;
}
.form__status[data-state="ok"]{color:var(--ok);font-weight:500}
.form__status[data-state="err"]{color:var(--err);font-weight:500}

@media (max-width:820px){
  .contact__grid{grid-template-columns:1fr}
}

/* ─────────── FOOTER ─────────── */
.foot{
  margin-top:clamp(2rem, calc(1rem + 2vw), 4rem);
  background:var(--ink);
  color:rgba(255,255,255,.82);
  font-family:var(--sans);
}
.foot__wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:clamp(3rem, calc(2rem + 3vw), 5rem) var(--gutter) 2rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
  gap:3rem;
}
.foot__logo{
  height:40px;width:auto;display:block;
}
.foot__tag{font-size:.9rem;color:rgba(255,255,255,.55);margin-top:.7rem}

.foot__cols{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2rem;
}
.foot__k{
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.4);margin-bottom:.55rem;
}
.foot__cols a,
.foot__cols span{
  color:rgba(255,255,255,.85);
  font-size:.95rem;
  line-height:1.4;
  transition:color .18s var(--ease);
}
.foot__cols a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent)}

.foot__rule{
  max-width:var(--wrap);margin:0 auto;
  height:1px;background:rgba(255,255,255,.1);
}
.foot__fine{
  max-width:var(--wrap);margin:0 auto;
  padding:1.5rem var(--gutter) 2rem;
  display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  font-size:.78rem;color:rgba(255,255,255,.5);
  line-height:1.5;
}
.foot__legal{max-width:60ch}

@media (max-width:820px){
  .foot__wrap{grid-template-columns:1fr;gap:2rem}
  .foot__cols{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .foot__cols{grid-template-columns:1fr}
}

/* ─────────── REDUCED MOTION ─────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ─────────── PRINT ─────────── */
@media print{
  .nav,.nav__mobile,.foot,.hero__frame,body::before{display:none !important}
  body{background:#fff;color:#000}
  .btn{border:1px solid #000}
  a::after{content:" (" attr(href) ")";font-size:.8em;color:#666}
}
