/* /assets/styles.css */

:root{
  --brand-blue:#3399FF; /* #39F */
  --brand-slate:#2b3442;
  --brand-ink:#0b1220;

  --bg:#ffffff;
  --panel:#f6f7f9;
  --muted:#4b5563;
  --line:#d9dde3;

  --radius:16px;
  --shadow:0 10px 26px rgba(0,0,0,.08);
  --max:1040px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--brand-ink);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:1.55;
}

img{max-width:100%;height:auto}

a{color:inherit;text-underline-offset:.18em}
a:hover{opacity:.92}
a:focus-visible,button:focus-visible{outline:2px solid var(--brand-blue);outline-offset:3px}

.container{width:min(var(--max),calc(100% - 2rem));margin:0 auto}

.skip{
  position:absolute;left:-999px;top:0;
  background:var(--brand-slate);color:#fff;
  padding:.55rem .75rem;border-radius:12px;
}
.skip:focus{left:.75rem;top:.75rem;z-index:999}

/* No-JS banner */
.noscript{
  background:#eef7ff;
  border-bottom:1px solid var(--line);
  padding:.85rem 0;
  color:#0b2a3b;
}
.noscript p{margin:.25rem 0}

/* Header */
.site-header{
  background:var(--brand-slate);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.header-stack{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.45rem;
  padding:.75rem 0;
}

/* Logo: medium and stable */
.brand-home{display:inline-block;text-decoration:none;color:inherit}
.brand-logo{
  height:clamp(64px, 6vw, 86px);
  width:auto;
  display:block;
  background:#fff;
  padding:4px;
  border-radius:12px;
}

/* Tagline below logo, one line on normal widths */
.brand-line{
  display:block;
  text-align:center;
  white-space:nowrap;
  max-width:100%;
}

.brand-name{
  font-weight:800;
  letter-spacing:.2px;
  font-size:clamp(1.06rem, 2.2vw, 1.16rem);
  line-height:1.1;
}

.brand-tag{
  margin-left:.35rem;
  color:rgba(255,255,255,.85);
  font-size:clamp(.96rem, 2.0vw, 1.06rem);
  line-height:1.1;
}

/* Allow wrap only when needed to avoid overflow */
@media (max-width:560px){
  .brand-line{white-space:normal}
  .brand-tag{margin-left:0}
}

/* Nav */
.site-nav{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  justify-content:center;
}

.site-nav a{
  text-decoration:none;
  padding:.38rem .62rem;
  border-radius:12px;
  border:1px solid transparent;
}
.site-nav a:hover{
  border-color:rgba(255,255,255,.18);
  background:rgba(51,153,255,.18);
}
.site-nav a[aria-current="page"]{
  border-color:rgba(51,153,255,.55);
  background:rgba(51,153,255,.22);
}

/* Availability notice */
.notice{
  margin:0 auto 1.1rem;      /* center the box itself */
  max-width:56rem;           /* slightly narrower than page column */
  width:100%;
  padding:.9rem 1rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius);
  background:rgba(255,255,255,.08);
  color:#ffffff;
  text-align:left;           /* keep text left-aligned */
}

/* Main content */
main{padding:1.25rem 0 2.5rem}

.hero{padding:.25rem 0 .25rem}
.hero h1{
  margin:.25rem 0 .75rem;
  font-size:clamp(1.65rem,3vw,2.25rem);
  line-height:1.18;
}
.lead{margin:0 0 1rem;color:#1f2b3d;font-size:1.06rem}

/* Privacy hero icon (18px sizing, no !important) */
.hero-icon-row{
  display:flex;
  align-items:center;
  gap:.55rem;
}
.hero-icon-row h1{margin:0}

/* scoped to the intended icon only */
.hero-icon-row svg.hero-icon{
  width:18px;
  height:18px;
  max-width:18px;
  max-height:18px;
  flex:0 0 18px;
  display:block;
}

/* CTAs */
.cta{display:flex;gap:.75rem;flex-wrap:wrap;margin:.75rem 0 0}
.button{
  display:inline-block;
  padding:.65rem .95rem;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.10);
  text-decoration:none;
  font-weight:800;
}
.button.primary{
  background:var(--brand-blue);
  color:#00324a; /* dark text for contrast on #3399FF */
  border-color:transparent;
  box-shadow:0 10px 18px rgba(51,153,255,.22);
}
.button.ghost{background:transparent}

/* Cards */
.card{
  margin:1rem 0;
  padding:1.25rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--panel);
  box-shadow:var(--shadow);
}
.card h2{margin:0 0 .75rem;font-size:1.25rem}
.card h3{margin:.9rem 0 .55rem;font-size:1.08rem}
.card p{margin:.6rem 0}

/* Lists */
.list{margin:.5rem 0 0;padding-left:1.25rem;color:#1f2b3d}
.list li{margin:.35rem 0}

.grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.label{color:var(--muted);font-size:.9rem;margin-bottom:.25rem;font-weight:800}
.small{color:var(--muted);font-size:.92rem}

.badge{
  display:inline-block;
  padding:.25rem .55rem;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  font-size:.85rem;
  font-weight:800;
}

/* Services hero image */
.waf-figure{margin:1rem 0 1.1rem}
.waf-figure img{
  width:100%;
  height:auto;
  display:block;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
}
.waf-figure figcaption{margin-top:.5rem}

/* About headshot */
.profile{
  display:flex;
  gap:1rem;
  align-items:flex-start;
  flex-wrap:wrap;
}
.profile figure{margin:0;flex:0 0 auto}
.profile img{
  width:clamp(140px, 22vw, 220px);
  border-radius:16px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
}
.profile .bio{
  flex:1 1 320px;
  min-width:260px;
}

/* Contact image (secondary) */
.contact-split{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:1rem;
  align-items:start;
}
.contact-photo{margin:0;max-width:320px;justify-self:end}
.contact-photo img{
  width:100%;
  max-height:200px;
  object-fit:cover;
  aspect-ratio:4/3;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
}

/* Email obfuscation */
.email{white-space:nowrap;font-weight:800}
.copybtn{
  font:inherit;
  margin-left:.5rem;
  padding:.35rem .6rem;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  cursor:pointer;
}

/* Footer */
footer{
  border-top:1px solid var(--line);
  padding:1.25rem 0;
  color:var(--muted);
}
.footer-row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* Responsive */
@media (max-width:820px){
  .contact-split{grid-template-columns:1fr}
  .contact-photo{max-width:none;justify-self:stretch}
  .contact-photo img{max-height:220px}
}
@media (max-width:720px){
  .grid{grid-template-columns:1fr}
}

.home .waf-figure img{ max-height: 420px; object-fit: cover; }
