:root{
    --ink:#16233D;
    --ink-70: #16233Db3;
    --paper:#FAF9F6;
    --paper-dim:#F1EFE9;
    --brass:#A9834B;
    --brass-dim:#C9AE84;
    --slate:#5B6472;
    --green:#3F6B4F;
    --line: #DEDAD0;
    --serif: 'Fraunces', serif;
    --sans: 'Inter', sans-serif;
    --maxw: 1120px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;}
  img,svg{display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }
  .wrap-wide{max-width:2000px; margin:0 auto; padding:0 clamp(16px, 3.5vw, 56px);}

  /* ---- header ---- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(250,249,246,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .brand{
    font-family:var(--serif); font-weight:600; font-size:22px; letter-spacing:0.2px;
    display:flex; align-items:center; gap:10px;
  }
  .brand .mark{
    height:30px; width:auto;
  }
  nav.links{ display:flex; gap:36px; font-size:15px; color:var(--slate);}
  nav.links a{ text-decoration:none; }
  nav.links a:hover{ color:var(--ink); }
  .cta-btn{
    background:var(--ink); color:var(--paper);
    padding:11px 22px; border-radius:3px;
    font-size:14.5px; font-weight:600; text-decoration:none;
    border:1px solid var(--ink);
    transition:background 0.15s ease, color 0.15s ease;
  }
  .cta-btn:hover{ background:transparent; color:var(--ink); }
  .cta-btn.ghost{
    background:transparent; color:var(--ink); border:1px solid var(--ink);
  }
  .cta-btn.ghost:hover{ background:var(--ink); color:var(--paper); }
  @media (max-width:800px){ nav.links{display:none;} }

  /* ---- hero ---- */
  .hero{
    padding:clamp(32px, 6vw, 96px) 0 clamp(28px, 5vw, 88px);
  }
  .hero-stack{
    display:grid;
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: clamp(10px, 2.2vw, 48px);
    align-items:start;
  }
  .eyebrow-line{
    display:flex; align-items:center; gap:10px; margin-bottom:clamp(10px,1.6vw,22px);
    font-size:clamp(10px, 1.1vw, 14px); color:var(--slate); flex-wrap:wrap;
  }
  .eyebrow-line .dash{ width:20px; height:1px; background:var(--brass); flex-shrink:0; }
  h1{
    font-family:var(--serif); font-weight:500; line-height:1.1;
    margin:0 0 clamp(10px,1.6vw,22px); letter-spacing:-0.5px;
  }
  .hero h1{ font-size:clamp(22px, 3vw, 44px); }
  .hero h1 em{ font-style:italic; font-weight:400; color:var(--ink-70); }
  .hero-copy{
    width:100%; min-width:0; margin-left:0;
  }
  .hero p.lede{
    font-size:clamp(12px, 1.3vw, 18px); color:var(--slate); margin:0 0 clamp(14px,2vw,32px);
    line-height:1.55;
  }
  .hero-ctas{ display:flex; gap:clamp(8px,1vw,14px); flex-wrap:wrap; }

  .hero-visual{
    position:relative;
    background:var(--ink);
    border-radius:6px;
    padding:clamp(14px, 2.2vw, 34px) clamp(12px, 2vw, 30px);
    color:var(--paper);
    width:100%;
    min-width:0;
    box-sizing:border-box;
  }
  .hero-quick-box{
    background:var(--ink);
    border-radius:6px;
    padding:clamp(14px, 2.2vw, 32px) clamp(12px, 2vw, 28px);
    color:var(--paper);
    width:100%;
    min-width:0;
    box-sizing:border-box;
    margin-right:0;
  }
  .hero-quick-box h4{
    font-family:var(--serif); font-weight:500; font-size:clamp(13px, 1.4vw, 19px); margin:0 0 8px; color:var(--paper);
  }
  .hero-quick-box > p{
    font-size:clamp(10px, 1vw, 13.5px); color:#B9C0CE; margin:0 0 clamp(10px,1.4vw,20px); line-height:1.5;
  }
  .quick-form.stacked{
    flex-direction:column; align-items:stretch; gap:clamp(6px,0.9vw,12px);
  }
  .hero-quick-box .quick-form input{
    min-width:0; width:100%;
    padding:clamp(7px,1vw,12px) clamp(8px,1.1vw,14px); font-size:clamp(11px,1vw,14.5px);
    box-sizing:border-box;
  }
  .hero-quick-box .quick-form button{
    white-space:normal; width:100%;
    padding:clamp(8px,1.1vw,12px) clamp(10px,1.6vw,22px); font-size:clamp(11px,1vw,14.5px);
    box-sizing:border-box;
  }
  .cert-card{
    background:var(--paper); color:var(--ink);
    border-radius:4px; padding:clamp(12px,2vw,26px) clamp(10px,1.8vw,24px);
    font-family:var(--sans);
    min-width:0;
  }
  .cert-card .top{
    display:flex; justify-content:space-between; align-items:flex-start;
    border-bottom:1px solid var(--line); padding-bottom:clamp(8px,1.4vw,16px); margin-bottom:clamp(8px,1.4vw,16px);
    gap:8px;
  }
  .cert-card .stamp{
    width:clamp(24px,3vw,44px); height:clamp(24px,3vw,44px); flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
  }
  .cert-card .stamp img{ width:100%; height:100%; object-fit:contain; }
  .cert-card h4{ margin:0 0 4px; font-family:var(--serif); font-weight:500; font-size:clamp(13px,1.6vw,19px);}
  .cert-card .sub{ font-size:clamp(10px,1vw,13px); color:var(--slate); }
  .cert-row{
    display:flex; justify-content:space-between; gap:6px; font-size:clamp(9.5px,1.05vw,13.5px);
    padding:clamp(4px,0.8vw,8px) 0; border-bottom:1px dashed var(--line);
  }
  .cert-row > span:first-child{ flex:1 1 auto; }
  .cert-row .status{ color:var(--green); font-weight:600; white-space:nowrap; flex-shrink:0; }
  .cert-row:last-child{border-bottom:none;}
  .hero-visual .caption{
    font-size:clamp(9.5px,1vw,13px); color:var(--brass-dim); margin-top:clamp(10px,1.4vw,18px); letter-spacing:0.2px;
  }

  /* ---- trust strip ---- */
  .trust{
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    background:var(--paper-dim);
  }
  .trust .wrap{
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  }
  .trust-item{
    padding:26px 30px;
    border-left:1px solid var(--line);
    display:flex; align-items:flex-start; gap:14px;
  }
  .trust-item:first-child{ border-left:none; }
  .trust-ico{ color:var(--brass); flex-shrink:0; margin-top:2px; }
  .trust-item strong{ display:block; color:var(--ink); font-weight:600; font-size:14.5px; margin-bottom:3px; }
  .trust-sub{ display:block; font-size:13.5px; color:var(--slate); line-height:1.45; }
  @media (max-width:800px){
    .trust .wrap{ grid-template-columns:1fr; }
    .trust-item{ border-left:none; border-top:1px solid var(--line); }
    .trust-item:first-child{ border-top:none; }
  }

  /* ---- section shared ---- */
  section{ padding:88px 0; }
  @media (max-width:640px){ section{padding:56px 0;} }
  .section-head{ max-width:620px; margin-bottom:52px; }
  .section-head .kicker{
    font-size:14px; color:var(--slate); font-weight:600; margin-bottom:10px;
  }
  .section-head h2{
    font-family:var(--serif); font-weight:500; font-size:34px; margin:0 0 14px; line-height:1.15;
  }
  .section-head p{ color:var(--slate); font-size:16.5px; line-height:1.6; margin:0; }

  /* ---- problem section ---- */
  .problem{ background:var(--paper-dim); }
  .problem-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:48px;
  }
  @media (max-width:800px){ .problem-grid{grid-template-columns:1fr; gap:32px;} }
  .problem-item{ border-top:1px solid var(--ink); padding-top:18px; }
  .problem-item .num{ font-family:var(--serif); color:var(--ink); font-size:15px; margin-bottom:10px; display:block;}
  .problem-item h3{ font-family:var(--serif); font-weight:500; font-size:20px; margin:0 0 8px;}
  .problem-item p{ color:var(--slate); font-size:15px; margin:0; line-height:1.6;}

  /* ---- roadmap (services) ---- */
  .roadmap{ position:relative; }
  .roadmap-track{
    position:relative; padding-left:2px;
  }
  .rstep{
    display:grid; grid-template-columns:120px 1fr; gap:28px;
    padding:32px 0; border-top:1px solid var(--line);
    position:relative;
  }
  .rstep:last-child{ border-bottom:1px solid var(--line); }
  @media (max-width:700px){ .rstep{grid-template-columns:1fr; gap:8px;} }
  .rstep .tag{
    font-family:var(--serif); font-size:15px; color:var(--slate); padding-top:4px;
  }
  .rstep .body h3{
    font-family:var(--serif); font-weight:500; font-size:22px; margin:0 0 8px;
    display:flex; align-items:center; gap:12px;
  }
  .rstep .body p{ color:var(--slate); font-size:15.5px; max-width:600px; margin:0 0 10px; line-height:1.6;}
  .pill{
    font-size:12px; font-weight:600; padding:3px 10px; border-radius:20px;
    display:inline-block;
  }
  .pill.now{ background:var(--ink); color:var(--paper); }
  .pill.next{ background:var(--brass-dim); color:var(--ink); }
  .pill.partner{ background:transparent; color:var(--slate); border:1px solid var(--line); }

  /* ---- process (numbered clause-style) ---- */
  .process{ background:var(--ink); color:var(--paper); }
  .process .section-head p{ color:#B9C0CE; }
  .process .section-head .kicker{ color:var(--brass-dim); }
  .process .section-head h2{ color:var(--paper); }
  .clause-grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
    background:#2A3B5C;
    border:1px solid #2A3B5C;
  }
  @media (max-width:700px){ .clause-grid{grid-template-columns:1fr;} }
  .clause{
    background:var(--ink); padding:32px 30px;
  }
  .clause .cnum{ font-family:var(--serif); color:var(--brass-dim); font-size:15px; margin-bottom:12px; display:block;}
  .clause h3{ font-family:var(--serif); font-weight:500; font-size:20px; margin:0 0 10px; color:var(--paper);}
  .clause p{ color:#B9C0CE; font-size:15px; margin:0; line-height:1.6;}

  /* ---- why ---- */
  .why-grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:36px;
  }
  @media (max-width:800px){ .why-grid{grid-template-columns:1fr;} }
  .why-item h3{
    font-family:var(--serif); font-weight:500; font-size:19px; margin:0 0 8px;
  }
  .why-item p{ color:var(--slate); font-size:15px; margin:0; line-height:1.6; }
  .why-item .ico{ margin-bottom:14px; }

  /* ---- cta band ---- */
  .cta-band{
    background:var(--paper-dim);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .cta-band .wrap{
    display:flex; justify-content:space-between; align-items:center; gap:24px;
    flex-wrap:wrap;
  }
  .cta-band h2{
    font-family:var(--serif); font-weight:500; font-size:28px; margin:0; max-width:480px;
  }

  /* ---- contact ---- */
  .contact-grid{
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px;
  }
  @media (max-width:800px){ .contact-grid{grid-template-columns:1fr; gap:40px;} }
  .contact-info .row{
    padding:16px 0; border-top:1px solid var(--line);
  }
  .contact-info .row:last-child{border-bottom:1px solid var(--line);}
  .contact-info .label{ font-size:13px; color:var(--slate); margin-bottom:4px; }
  .contact-info .value{ font-size:16px; }
  form{ display:flex; flex-direction:column; gap:18px; }
  .field label{ display:block; font-size:13px; color:var(--slate); margin-bottom:6px; }
  .field input, .field textarea, .field select{
    width:100%; border:1px solid var(--line); background:var(--paper);
    border-radius:3px; padding:12px 14px; font-family:var(--sans); font-size:15px;
    color:var(--ink);
  }
  .field select{ cursor:pointer; }
  .field input:focus, .field textarea:focus, .field select:focus{
    outline:2px solid var(--brass); outline-offset:1px; border-color:var(--brass);
  }
  .field textarea{ resize:vertical; min-height:100px; }
  .field-hint{ font-size:12.5px; color:var(--slate); margin-top:5px; }

  /* ---- long-form intake forms: section headers, paired fields, checkbox groups ---- */
  .form-section-title{
    font-family:var(--serif); font-weight:500; font-size:19px; color:var(--ink);
    margin:8px 0 2px; padding-top:28px; border-top:1px solid var(--line);
  }
  .form-section-title.first{ margin-top:0; padding-top:0; border-top:none; }
  .form-section-sub{ font-size:13.5px; color:var(--slate); margin:-6px 0 2px; line-height:1.5; }
  .field-pair{
    display:grid; grid-template-columns:1fr 1fr; gap:18px;
  }
  @media (max-width:640px){ .field-pair{ grid-template-columns:1fr; gap:18px; } }
  .field-trio{
    display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px;
  }
  @media (max-width:700px){ .field-trio{ grid-template-columns:1fr; gap:18px; } }
  .checkbox-group{ display:flex; flex-direction:column; gap:11px; }
  .checkbox-row{
    display:flex; align-items:flex-start; gap:10px; font-size:15px; color:var(--ink); cursor:pointer;
  }
  .checkbox-row input[type="checkbox"]{
    width:17px; height:17px; margin-top:2px; flex-shrink:0; accent-color:var(--brass); cursor:pointer;
  }
  .submit-btn{
    align-self:flex-start;
    background:var(--ink); color:var(--paper); border:none;
    padding:13px 28px; border-radius:3px; font-size:15px; font-weight:600;
    cursor:pointer; transition:background 0.15s ease;
  }
  .submit-btn:hover{ background:var(--brass); }
  .form-note{ font-size:13px; color:var(--slate); margin-top:-4px; }
  .form-success{
    display:none; background:var(--green); color:var(--paper);
    padding:14px 16px; border-radius:3px; font-size:14.5px;
  }

  /* ---- footer ---- */
  footer{ padding:64px 0 44px; text-align:center; }
  .footer-logo{ height:64px; width:auto; margin:0 auto 28px; }
  .footer-row{
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:16px;
    font-size:13.5px; color:var(--slate);
    border-top:1px solid var(--line); padding-top:28px;
    text-align:left;
  }

/* ---- about / consultant page ---- */
.about-hero{
  padding:76px 0 20px;
}
.about-hero .eyebrow-line{ margin-bottom:18px; }
.about-hero h1{ font-size:44px; }
@media (max-width:640px){ .about-hero h1{font-size:32px;} }
.about-hero p.lede{ max-width:640px; }

.profile-section{ padding-top:24px; }
.profile-card{
  display:grid; grid-template-columns:280px 1fr; gap:48px;
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:6px;
  padding:44px;
}
@media (max-width:800px){ .profile-card{grid-template-columns:1fr; gap:28px; padding:28px;} }
.avatar{
  width:180px; height:180px; border-radius:50%;
  background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:56px; color:var(--brass-dim);
  border:3px solid var(--brass);
  margin:0 auto;
}
@media (max-width:800px){ .avatar{margin:0;} }
.profile-name{ font-family:var(--serif); font-weight:500; font-size:30px; margin:0 0 4px; }
.profile-title{ color:var(--slate); font-weight:600; font-size:15px; margin-bottom:18px; }
.profile-bio p{ color:var(--slate); font-size:16px; line-height:1.65; margin:0 0 16px; }
.profile-bio p:last-child{ margin-bottom:0; }

.cred-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px;
  margin-top:28px;
}
@media (max-width:640px){ .cred-grid{grid-template-columns:1fr;} }
.cred-item{
  display:flex; align-items:flex-start; gap:10px;
  font-size:14.5px; color:var(--ink);
  padding:12px 14px; background:var(--paper); border:1px solid var(--line); border-radius:4px;
}
.cred-item .dot{
  width:6px; height:6px; border-radius:50%; background:var(--brass);
  margin-top:7px; flex-shrink:0;
}

.pull-quote{
  border-left:3px solid var(--brass);
  padding:6px 0 6px 26px;
  margin:40px 0;
  font-family:var(--serif); font-size:22px; font-style:italic; color:var(--ink);
  max-width:760px; line-height:1.5;
}

.stat-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
  margin-top:56px;
}
@media (max-width:640px){ .stat-row{grid-template-columns:1fr;} }
.stat-item{ background:var(--paper); padding:28px 26px; text-align:center; }
.stat-item .num{ font-family:var(--serif); font-size:36px; color:var(--ink); display:block; margin-bottom:6px; }
.stat-item .label{ font-size:13.5px; color:var(--slate); }

/* ---- map embed ---- */
.map-embed{
  margin-top:24px;
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
  filter:grayscale(15%) contrast(1.02);
}
.map-embed iframe{ display:block; }

/* ---- language switch ---- */
.lang-switch{
  display:flex; align-items:center; gap:2px;
  border:1px solid var(--line); border-radius:20px;
  padding:3px; font-size:13px; font-weight:600;
  margin-right:8px;
}
.lang-switch a{
  padding:5px 12px; border-radius:16px; text-decoration:none; color:var(--slate);
}
.lang-switch a.active{ background:var(--ink); color:var(--paper); }
.lang-switch a:not(.active):hover{ color:var(--ink); }
@media (max-width:520px){ .lang-switch{ margin-right:4px; } .lang-switch a{ padding:5px 9px; } }

/* ---- hero copy inset (superseded by fluid .hero-copy rule above) ---- */

/* ---- quick contact band (top of page) ---- */
.quick-contact{
  background:var(--ink);
  color:var(--paper);
}
.quick-contact .wrap{
  display:grid; grid-template-columns:1fr 1.3fr; gap:40px; align-items:center;
  padding-top:36px; padding-bottom:36px;
}
@media (max-width:800px){ .quick-contact .wrap{ grid-template-columns:1fr; gap:20px; } }
.quick-contact h2{
  font-family:var(--serif); font-weight:500; font-size:24px; margin:0 0 6px; color:var(--paper);
}
.quick-contact p{ color:#B9C0CE; font-size:14.5px; margin:0; }
.quick-form{
  display:flex; gap:10px; flex-wrap:wrap;
}
.quick-form input{
  flex:1 1 160px; min-width:140px;
  border:1px solid #2A3B5C; background:#1D2C4A; color:var(--paper);
  border-radius:3px; padding:12px 14px; font-family:var(--sans); font-size:14.5px;
}
.quick-form input::placeholder{ color:#8792A6; }
.quick-form input:focus{ outline:2px solid var(--brass); outline-offset:1px; }
.quick-form button{
  background:var(--brass); color:var(--ink); border:none;
  padding:12px 22px; border-radius:3px; font-size:14.5px; font-weight:700;
  cursor:pointer; white-space:nowrap;
  transition:background 0.15s ease;
}
.quick-form button:hover{ background:var(--brass-dim); }

/* ---- next steps (what happens after you reach out) ---- */
.next-steps .step-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:8px;
}
@media (max-width:800px){ .next-steps .step-row{ grid-template-columns:1fr; gap:28px; } }
.next-steps .step{
  border-top:2px solid var(--brass); padding-top:16px;
}
.next-steps .step .snum{
  font-family:var(--serif); font-size:28px; color:var(--brass); display:block; margin-bottom:8px;
}
.next-steps .step h3{ font-family:var(--serif); font-weight:500; font-size:19px; margin:0 0 8px; }
.next-steps .step p{ color:var(--slate); font-size:15px; margin:0; line-height:1.6; }

/* ---- confirmation modal ---- */
.modal-overlay{
  display:none;
  position:fixed; inset:0; z-index:200;
  background:rgba(22,35,61,0.55);
  align-items:center; justify-content:center;
  padding:20px;
}
.modal-overlay.open{ display:flex; }
.modal-box{
  background:var(--paper); border-radius:6px; max-width:520px; width:100%;
  padding:40px 36px 32px;
  position:relative;
  box-shadow:0 20px 60px rgba(22,35,61,0.3);
  max-height:88vh; overflow-y:auto;
}
.modal-close{
  position:absolute; top:16px; right:18px;
  background:none; border:none; font-size:22px; color:var(--slate); cursor:pointer;
  line-height:1; padding:4px;
}
.modal-close:hover{ color:var(--ink); }
.modal-box .modal-kicker{ font-size:13px; color:var(--slate); font-weight:600; margin-bottom:8px; }
.modal-box h2{ font-family:var(--serif); font-weight:500; font-size:24px; margin:0 0 10px; }
.modal-box > p{ color:var(--slate); font-size:15px; margin:0 0 24px; line-height:1.6; }
.modal-steps{ display:flex; flex-direction:column; gap:18px; }
.modal-step{ display:flex; gap:14px; align-items:flex-start; }
.modal-step .msnum{
  flex-shrink:0; width:28px; height:28px; border-radius:50%;
  background:var(--ink); color:var(--brass-dim);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:13px;
}
.modal-step h4{ margin:0 0 3px; font-size:15px; font-weight:600; color:var(--ink); }
.modal-step p{ margin:0; font-size:14px; color:var(--slate); line-height:1.5; }

/* ---- newsletter popup ---- */
.newsletter-box{
  position:relative;
  border-top:4px solid var(--brass);
}
.newsletter-kicker{
  display:inline-block;
  font-size:11px; font-weight:700; letter-spacing:0.6px; text-transform:uppercase;
  color:var(--slate); background:#F1E7D6; padding:4px 10px; border-radius:3px;
  margin-bottom:14px;
}
.newsletter-box h2{ font-size:24px; }
.newsletter-form{
  display:flex; flex-direction:row; gap:10px; flex-wrap:wrap; margin-top:20px;
}
.newsletter-form input{
  flex:1 1 200px; min-width:160px;
  border:1px solid var(--line); background:var(--paper);
  border-radius:3px; padding:12px 14px; font-family:var(--sans); font-size:15px;
  color:var(--ink);
}
.newsletter-form input:focus{ outline:2px solid var(--brass); outline-offset:1px; }
.newsletter-form button{
  background:var(--ink); color:var(--paper); border:none;
  padding:12px 24px; border-radius:3px; font-size:15px; font-weight:600;
  cursor:pointer; white-space:nowrap; transition:background 0.15s ease;
}
.newsletter-form button:hover{ background:var(--brass); color:var(--ink); }
.newsletter-fineprint{
  font-size:12px; color:var(--slate); margin-top:12px;
}
.newsletter-no-thanks{
  display:inline-block; margin-top:14px; font-size:13px; color:var(--slate);
  text-decoration:underline; cursor:pointer; background:none; border:none; padding:0;
}
.newsletter-success{
  display:none; text-align:center; padding:20px 0;
}
.newsletter-success .big-tick{
  width:48px; height:48px; border-radius:50%; background:var(--green);
  color:var(--paper); display:flex; align-items:center; justify-content:center;
  margin:0 auto 16px; font-size:22px;
}

/* ---- manifesto statement (editorial full-bleed break) ---- */
.manifesto{
  background:var(--ink);
  padding:76px 0;
  text-align:center;
}
.manifesto .wrap{ max-width:820px; }
.manifesto p{
  font-family:var(--serif); font-style:italic; font-weight:500;
  color:var(--paper);
  font-size:clamp(22px, 3.4vw, 38px);
  line-height:1.3;
  margin:0;
}
.manifesto .rule{
  width:40px; height:1px; background:var(--brass); margin:0 auto 28px;
}

/* ---- bolder editorial numerals for problem-grid ---- */
.problem-item .num{
  font-size:40px; font-weight:400; color:var(--ink); opacity:0.85;
  margin-bottom:4px; line-height:1;
}

/* ---- editorial photo banner (AJF-inspired) ---- */
.photo-banner{
  position:relative; height:340px; overflow:hidden; background:var(--ink);
}
.photo-banner svg, .photo-banner img{
  position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover;
}
.photo-banner-overlay{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(22,35,61,0.92) 0%, rgba(22,35,61,0.68) 48%, rgba(22,35,61,0.1) 100%);
  display:flex; align-items:center;
}
.photo-banner-eyebrow{
  color:var(--brass-dim); font-size:13px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase;
  margin:0 0 12px;
}
.photo-banner-overlay h2{
  color:var(--paper); font-family:var(--serif); font-weight:500;
  font-size:clamp(24px,3.2vw,38px); max-width:560px; margin:0; line-height:1.2;
}
@media (max-width:700px){ .photo-banner{ height:280px; } }

/* ---- split feature (image + copy, AJF-inspired) ---- */
.split-feature{ padding:88px 0; }
.split-feature-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
}
@media (max-width:800px){ .split-feature-grid{ grid-template-columns:1fr; gap:32px; } }
.split-feature-media{
  border-radius:6px; overflow:hidden; aspect-ratio:4/3;
}
.split-feature-media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.split-feature-copy h2{
  font-family:var(--serif); font-weight:500; font-size:clamp(26px,2.6vw,34px);
  margin:0 0 18px; line-height:1.2;
}
.split-feature-copy h2 em{ font-style:italic; }
.split-feature-copy p{ color:var(--slate); font-size:16px; line-height:1.65; margin:0 0 24px; }

/* ---- editorial italic accent ---- */
h1 em{ font-style:italic; font-weight:500; }

/* ---- footer tagline ---- */
.footer-tagline{
  text-align:center; color:var(--slate); font-size:14px; margin:0 0 28px;
}

/* ---- premium footer (redesign) ---- */
footer{
  background:var(--paper-dim);
  border-top:1px solid var(--line);
  padding:0;
}
.footer-top{
  border-top:3px solid var(--brass);
  padding:64px 0 48px;
}
.footer-grid{
  display:grid; grid-template-columns:1.2fr 0.8fr 0.9fr 0.8fr 1.1fr; gap:32px;
}
@media (max-width:1100px){ .footer-grid{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:700px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-col ul li.legal-line{
  font-size:13px; color:var(--slate); line-height:1.5;
}
.footer-col ul li.legal-pending{
  color:#B3524A; font-style:italic;
}
.footer-brand-col .footer-logo-mark{ height:30px; width:auto; margin-bottom:16px; }
.footer-brand-col p{
  font-size:14px; color:var(--slate); line-height:1.6; max-width:280px; margin:0;
}
.footer-col h5{
  font-family:var(--serif); font-weight:500; font-size:14px; color:var(--ink);
  margin:0 0 16px; letter-spacing:0.2px;
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.footer-col ul li a{
  font-size:14px; color:var(--slate); text-decoration:none;
  display:inline-flex; align-items:center; gap:6px;
}
.footer-col ul li a:hover{ color:var(--ink); }
.footer-col ul li a .arrow{
  color:var(--brass); transition:transform 0.15s ease;
}
.footer-col ul li a:hover .arrow{ transform:translate(2px,-2px); }
.footer-bottom{
  border-top:1px solid var(--line);
  padding:22px 0;
}
.footer-bottom-row{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
  font-size:13px; color:var(--slate);
}

/* ---- arrow-link motif ---- */
.arrow-link{
  display:inline-flex; align-items:center; gap:6px;
  text-decoration:none; color:inherit;
}
.arrow-link .arrow{ color:var(--brass); transition:transform 0.15s ease; display:inline-block; }
.arrow-link:hover .arrow{ transform:translate(2px,-2px); }

/* ---- headline italic accent ---- */
.hero h1 em, .about-hero h1 em{
  font-style:italic; font-weight:400; color:var(--brass);
}

/* ---- ISO assessment widget ---- */
.assessment{
  background:var(--paper-dim);
}
.assessment-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:8px;
  padding:44px;
  max-width:720px;
  margin:0 auto;
  box-shadow:0 1px 3px rgba(22,35,61,0.04);
}
@media (max-width:640px){ .assessment-card{ padding:28px 22px; } }
.assessment-progress{
  display:flex; gap:6px; margin-bottom:28px;
}
.assessment-progress .dot{
  flex:1; height:3px; border-radius:2px; background:var(--line);
  transition:background 0.2s ease;
}
.assessment-progress .dot.done{ background:var(--brass); }
.assessment-step{ display:none; }
.assessment-step.active{ display:block; }
.assessment-qnum{
  font-size:13px; color:var(--slate); font-weight:600; margin-bottom:8px;
}
.assessment-step h3{
  font-family:var(--serif); font-weight:500; font-size:23px; margin:0 0 24px; line-height:1.3;
}
.assessment-options{
  display:flex; flex-direction:column; gap:10px;
}
.assessment-opt{
  display:block; width:100%; text-align:left;
  padding:16px 18px; border:1.5px solid var(--line); border-radius:6px;
  background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:15.5px;
  cursor:pointer; transition:border-color 0.15s ease, background 0.15s ease;
}
.assessment-opt:hover{ border-color:var(--brass); background:var(--paper-dim); }
.assessment-opt.selected{ border-color:var(--brass); background:#F7F0E4; font-weight:600; }
.assessment-nav{
  display:flex; justify-content:space-between; align-items:center; margin-top:28px;
}
.assessment-back{
  background:none; border:none; color:var(--slate); font-size:14px; cursor:pointer;
  text-decoration:underline; padding:0;
}
.assessment-back:disabled{ visibility:hidden; }
.assessment-result{ display:none; text-align:center; }
.assessment-result.active{ display:block; }
.assessment-result .kicker{
  font-size:13px; color:var(--slate); font-weight:600; margin-bottom:10px; text-transform:uppercase; letter-spacing:0.4px;
}
.assessment-result-standard{
  font-family:var(--serif); font-size:40px; color:var(--ink); margin:0 0 10px;
}
.assessment-result h3{
  font-family:var(--serif); font-weight:500; font-size:22px; margin:0 0 14px;
}
.assessment-result p{ color:var(--slate); font-size:15.5px; line-height:1.6; max-width:520px; margin:0 auto 28px; }
.assessment-insights{
  text-align:left; max-width:460px; margin:0 auto 28px; display:flex; flex-direction:column; gap:12px;
  background:var(--paper-dim); border:1px solid var(--line); border-radius:6px; padding:18px 20px;
}
.assessment-insight{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--slate); line-height:1.55; }
.assessment-insight .dot{ width:6px; height:6px; border-radius:50%; background:var(--brass); margin-top:7px; flex:0 0 auto; }
.assessment-result .cta-btn{ display:inline-block; }
.assessment-restart{
  display:block; margin:18px auto 0; background:none; border:none; color:var(--slate);
  font-size:13px; text-decoration:underline; cursor:pointer;
}

/* ---- QR leaflet promo popup ---- */
.promo-box{
  border-top:4px solid var(--brass);
  text-align:center;
}
.promo-kicker{
  display:inline-block;
  font-size:11px; font-weight:700; letter-spacing:0.6px; text-transform:uppercase;
  color:var(--slate); background:#F1E7D6; padding:4px 10px; border-radius:3px;
  margin-bottom:16px;
}
.promo-box h2{ font-size:24px; text-align:center; }
.promo-box p{ text-align:center; margin-left:auto; margin-right:auto; }
.promo-limit{
  display:inline-block;
  font-size:12.5px; font-weight:700; letter-spacing:0.3px;
  color:var(--slate); background:#F1E7D6;
  padding:5px 12px; border-radius:20px; margin:0 0 4px;
}
.promo-code-box{
  display:flex; align-items:center; justify-content:center; gap:12px;
  background:var(--paper-dim); border:1.5px dashed var(--brass);
  border-radius:6px; padding:16px 20px; margin:22px 0;
}
.promo-code{
  font-family:var(--serif); font-size:26px; font-weight:600; letter-spacing:1px; color:var(--ink);
}
.promo-copy-btn{
  background:var(--ink); color:var(--paper); border:none;
  padding:8px 16px; border-radius:4px; font-size:13px; font-weight:600;
  cursor:pointer; white-space:nowrap; transition:background 0.15s ease;
}
.promo-copy-btn:hover{ background:var(--brass); color:var(--ink); }
.promo-copy-btn.copied{ background:var(--green); }
.promo-instructions{
  font-size:13.5px; color:var(--slate); line-height:1.6; margin:0 0 10px;
}
.promo-expiry{
  font-size:12px; color:var(--slate); opacity:0.8; line-height:1.5; margin:0 0 24px;
}

/* ---- discount code validation ---- */
.field-error{
  display:none;
  color:#B3524A; font-size:13px; margin-top:6px;
}
.field input.invalid{
  border-color:#B3524A;
  outline:2px solid #B3524A33;
}

/* ---- page feedback widget ---- */
.feedback-section{ background:var(--paper-dim); padding:56px 0; }
.feedback-widget{
  max-width:460px; margin:0 auto; text-align:center;
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:32px 28px;
}
.feedback-prompt p{ margin:0 0 16px; font-size:15.5px; color:var(--ink); font-weight:600; }
.feedback-prompt.hidden{ display:none; }
.feedback-buttons{ display:flex; gap:14px; justify-content:center; }
.feedback-btn{
  font-size:22px; line-height:1; width:54px; height:54px; border-radius:50%;
  border:1.5px solid var(--line); background:var(--paper); cursor:pointer;
  transition:border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.feedback-btn:hover{ border-color:var(--brass); background:#F7F0E4; transform:translateY(-2px); }
.feedback-btn.selected{ border-color:var(--brass); background:#F7F0E4; }
.feedback-form{ display:none; text-align:left; }
.feedback-form.active{ display:flex; }
.feedback-form label{ text-align:center; }
.feedback-form .submit-btn{ align-self:center; }
.feedback-thanks{ display:none; }
.feedback-thanks.active{ display:block; }
.feedback-thanks p{ color:var(--slate); font-weight:400; margin:0; font-size:15.5px; }

/* ---- cookie consent banner ---- */
#cookieBanner{
  position:fixed; left:0; right:0; bottom:0; z-index:300;
  background:var(--ink); color:var(--paper);
  padding:20px 24px;
  display:none;
  box-shadow:0 -4px 20px rgba(0,0,0,0.15);
}
#cookieBanner.open{ display:block; }
.cookie-inner{
  max-width:1120px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cookie-text{ font-size:13.5px; color:#C9CFDB; line-height:1.55; max-width:720px; }
.cookie-text a{ color:var(--brass-dim); text-decoration:underline; }
.cookie-actions{ display:flex; gap:10px; flex-wrap:wrap; flex-shrink:0; }
.cookie-btn{
  padding:10px 18px; border-radius:4px; font-size:13.5px; font-weight:600;
  cursor:pointer; border:1px solid transparent; white-space:nowrap;
}
.cookie-btn.accept{ background:var(--brass); color:var(--ink); }
.cookie-btn.accept:hover{ background:var(--brass-dim); }
.cookie-btn.decline{ background:transparent; color:var(--paper); border-color:#3A4C70; }
.cookie-btn.decline:hover{ border-color:var(--paper); }
@media (max-width:640px){
  .cookie-inner{ flex-direction:column; align-items:flex-start; }
  .cookie-actions{ width:100%; }
  .cookie-btn{ flex:1; }
}

/* ---- legal / policy page prose ---- */
.legal-content{ max-width:760px; }
.legal-content h2{
  font-family:var(--serif); font-weight:500; font-size:22px; margin:40px 0 14px;
}
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{ color:var(--slate); font-size:15.5px; line-height:1.7; margin:0 0 16px; }
.legal-content ul{ color:var(--slate); font-size:15.5px; line-height:1.7; margin:0 0 16px; padding-left:22px; }
.legal-content li{ margin-bottom:6px; }
.legal-content strong{ color:var(--ink); }
.legal-updated{ font-size:13px; color:var(--slate); margin-bottom:36px; }

/* =========================================================
   Scroll interactions (reveal, parallax, header, hover)
   ========================================================= */

/* ---- reveal-on-scroll ---- */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.8s cubic-bezier(.16,.8,.24,1),
             transform 0.8s cubic-bezier(.16,.8,.24,1);
  transition-delay:calc(var(--reveal-i, 0) * 70ms);
  will-change:opacity, transform;
}
[data-reveal].is-visible{
  opacity:1;
  transform:translateY(0);
}

/* ---- shrinking header ---- */
header{
  transition:background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
header .nav{
  transition:height 0.3s ease;
}
header.scrolled{
  background:rgba(250,249,246,0.97);
  box-shadow:0 6px 24px rgba(22,35,61,0.08);
}
header.scrolled .nav{
  height:60px;
}

/* ---- hero entrance ---- */
.hero-copy > *, .hero-visual, .hero-quick-box,
.about-hero .profile-card, .about-hero .eyebrow-line, .about-hero h1, .about-hero .lede{
  opacity:0;
  transform:translateY(18px);
}
.hero-ready .hero-copy > *{
  animation:heroRise 0.9s cubic-bezier(.16,.8,.24,1) forwards;
}
.hero-ready .hero-copy > *:nth-child(1){ animation-delay:0.05s; }
.hero-ready .hero-copy > *:nth-child(2){ animation-delay:0.15s; }
.hero-ready .hero-copy > *:nth-child(3){ animation-delay:0.25s; }
.hero-ready .hero-copy > *:nth-child(4){ animation-delay:0.35s; }
.hero-ready .hero-copy > *:nth-child(5){ animation-delay:0.45s; }
.hero-ready .hero-visual{ animation:heroRise 0.9s cubic-bezier(.16,.8,.24,1) forwards; animation-delay:0.3s; }
.hero-ready .hero-quick-box{ animation:heroRise 0.9s cubic-bezier(.16,.8,.24,1) forwards; animation-delay:0.4s; }
.hero-ready.about-hero .eyebrow-line{ animation:heroRise 0.8s cubic-bezier(.16,.8,.24,1) forwards; animation-delay:0.05s; }
.hero-ready.about-hero h1{ animation:heroRise 0.8s cubic-bezier(.16,.8,.24,1) forwards; animation-delay:0.15s; }
.hero-ready.about-hero .lede{ animation:heroRise 0.8s cubic-bezier(.16,.8,.24,1) forwards; animation-delay:0.25s; }
.hero-ready.about-hero .profile-card{ animation:heroRise 0.9s cubic-bezier(.16,.8,.24,1) forwards; animation-delay:0.35s; }

@keyframes heroRise{
  to{ opacity:1; transform:translateY(0); }
}

/* ---- photo banner parallax baseline ---- */
.photo-banner > img, .photo-banner > svg{
  transform:scale(1.06);
  transition:transform 0.1s linear;
}

/* ---- count-up stat numbers ---- */
.stat-item .num{
  font-variant-numeric:tabular-nums;
}

/* ---- hover micro-interactions ---- */
.why-item, .problem-item, .rstep, .clause, .cred-item{
  transition:transform 0.3s cubic-bezier(.16,.8,.24,1), box-shadow 0.3s ease;
}
.why-item:hover, .problem-item:hover, .rstep:hover, .clause:hover, .cred-item:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 36px rgba(22,35,61,0.08);
}
.cta-btn{
  transition:background 0.2s ease, color 0.2s ease, transform 0.2s cubic-bezier(.16,.8,.24,1), box-shadow 0.2s ease;
}
.cta-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(22,35,61,0.14);
}
.promo-copy-btn, .submit-btn{
  transition:background 0.2s ease, transform 0.2s cubic-bezier(.16,.8,.24,1);
}
.submit-btn:hover{ transform:translateY(-2px); }

/* ---- respect reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  [data-reveal],
  .hero-copy > *, .hero-visual, .hero-quick-box,
  .about-hero .profile-card, .about-hero .eyebrow-line, .about-hero h1, .about-hero .lede{
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
    transition:none !important;
  }
  .photo-banner > img, .photo-banner > svg{
    transform:none !important;
  }
  .why-item, .problem-item, .rstep, .clause, .cred-item, .cta-btn{
    transition:none !important;
  }
}

@media (max-width:640px){
  [data-reveal]{ transform:translateY(18px); }
}

/* =========================================================
   Dark glass hero (.hero on the homepage, .about-hero banners)
   ========================================================= */
.hero, .about-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#0D1424;
}
.hero .eyebrow-line, .about-hero .eyebrow-line{ color:#C9D0DE; }
.hero h1, .about-hero h1{ color:#F4F1EA; }
.hero p.lede, .about-hero p.lede{ color:#AAB4C8; }

.hero .cta-btn.ghost, .about-hero .cta-btn.ghost{
  color:#EDE9E0; border-color:rgba(237,233,224,0.4);
}
.hero .cta-btn.ghost:hover, .about-hero .cta-btn.ghost:hover{
  background:rgba(255,255,255,0.08); color:#fff;
}
.hero .cta-btn:not(.ghost), .about-hero .cta-btn:not(.ghost){
  background:var(--brass); color:#141C2E; border-color:var(--brass);
  animation:heroGlowPulse 3s ease-in-out infinite;
}
.hero .cta-btn:not(.ghost):hover, .about-hero .cta-btn:not(.ghost):hover{
  background:var(--brass-dim); color:#141C2E;
}
@keyframes heroGlowPulse{
  0%, 100%{ box-shadow:0 8px 24px rgba(0,0,0,0.3); }
  50%{ box-shadow:0 8px 30px rgba(169,131,75,0.45); }
}

/* hero-visual becomes a transparent frame; the cert-card is the glass panel */
.hero-visual{
  background:transparent;
}
.cert-card{
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(237,233,224,0.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.07), 0 20px 50px rgba(0,0,0,0.28);
  color:#EDE9E0;
  transition:transform 0.4s ease, box-shadow 0.4s ease;
}
.cert-card h4{ color:#F4F1EA; }
.cert-card .sub{ color:#9AA6BC; }
.cert-row{ border-bottom-color:rgba(237,233,224,0.14); color:#C9D0DE; }
.cert-row .status{ color:#8FD2A6; }
.hero-visual:hover .cert-card{
  transform:translateY(-4px);
  box-shadow:0 0 0 1px rgba(169,131,75,0.4), 0 0 44px rgba(169,131,75,0.22), 0 28px 64px rgba(0,0,0,0.32);
}
.hero-visual .caption{ color:var(--brass-dim); }

.hero-quick-box{
  background:rgba(255,255,255,0.045);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(237,233,224,0.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.25);
}
.hero-quick-box .quick-form input{
  background:rgba(255,255,255,0.07); border:1px solid rgba(237,233,224,0.2); color:#F4F1EA;
}
.hero-quick-box .quick-form input::placeholder{ color:#8893A8; }
.hero-quick-box .quick-form button{ background:var(--brass); color:#141C2E; border:none; }
.hero-quick-box .quick-form button:hover{ background:var(--brass-dim); }

/* circuit grid + cursor glow — the divs are injected by scroll-fx.js */
.hero .circuit-bg, .about-hero .circuit-bg{
  position:absolute; inset:0; z-index:-2; pointer-events:none;
  background-image:
    linear-gradient(rgba(169,131,75,0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(169,131,75,0.12) 1px, transparent 1px);
  background-size:64px 64px;
  animation:circuitPan 40s linear infinite;
  -webkit-mask-image:radial-gradient(60% 70% at 50% 35%, rgba(0,0,0,0.9), rgba(0,0,0,0.1));
          mask-image:radial-gradient(60% 70% at 50% 35%, rgba(0,0,0,0.9), rgba(0,0,0,0.1));
}
@keyframes circuitPan{
  from{ background-position:0 0, 0 0; }
  to{ background-position:128px 128px, 128px 128px; }
}
.hero .cursor-glow, .about-hero .cursor-glow{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,30%), rgba(169,131,75,0.20), transparent 60%);
}

@media (prefers-reduced-motion: reduce){
  .hero .circuit-bg, .about-hero .circuit-bg,
  .hero .cta-btn:not(.ghost), .about-hero .cta-btn:not(.ghost){
    animation:none !important;
  }
  .hero .cursor-glow, .about-hero .cursor-glow{ display:none !important; }
}

/* =========================================================
   Live ticker strip (homepage, under the trust bar)
   ========================================================= */
.live-ticker{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--paper-dim);
  overflow:hidden; white-space:nowrap; padding:14px 0;
}
.live-ticker-track{
  display:inline-flex; gap:14px;
  animation:tickerScroll 26s linear infinite;
}
.live-ticker:hover .live-ticker-track{ animation-play-state:paused; }
.ticker-pill{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-size:13px; font-weight:600; color:var(--ink);
  background:#fff; border:1px solid var(--line);
  padding:8px 16px; border-radius:30px; white-space:nowrap;
}
.ticker-pill .dotlive{
  width:6px; height:6px; border-radius:50%; background:var(--green);
  animation:liveDot 1.8s ease-out infinite;
}
@keyframes liveDot{
  0%{ box-shadow:0 0 0 0 rgba(63,107,79,0.45); }
  70%{ box-shadow:0 0 0 7px rgba(63,107,79,0); }
  100%{ box-shadow:0 0 0 0 rgba(63,107,79,0); }
}
@keyframes tickerScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .live-ticker-track{ animation:none !important; }
  .ticker-pill .dotlive{ animation:none !important; }
}

/* ---- accessibility: visible keyboard focus ---- */
/* Remove the default outline only when a browser can tell the
   interaction was a mouse click, not a keyboard tab — keyboard
   users always keep a visible outline. */
a, button, input, textarea, select, [tabindex]{
  outline-offset:2px;
}
a:focus, button:focus, input:focus, textarea:focus, select:focus, [tabindex]:focus{
  outline:2.5px solid var(--brass);
}
:focus:not(:focus-visible){ outline:none; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:2.5px solid var(--brass);
  outline-offset:2px;
  border-radius:3px;
}
/* On dark backgrounds (the process band, hero dark card, footer-bottom
   on some pages) brass alone can be too close in luminance to body text —
   brass-dim keeps strong contrast against the dark ink background. */
.process a:focus-visible, .process button:focus-visible,
.hero-visual a:focus-visible, .hero-visual button:focus-visible,
.cta-band a:focus-visible, .cta-band button:focus-visible{
  outline-color:var(--brass-dim);
}
/* Already-handled form fields keep their own outline (same color/weight,
   just scoped earlier) so this rule only adds coverage, never conflicts. */
