/* ─────────────────────────────────────────────────────────────────────────
   Atelix — shared stylesheet for new pages (access form, admin, assistant).
   Mirrors the design tokens used across the marketing site so nav.php and
   new pages look native. Existing pages keep their own inline CSS.
   ───────────────────────────────────────────────────────────────────────── */

:root{
  --forest:#1D3828; --forest-mid:#2B5240; --forest-lt:#3A6B52;
  --cream:#FAF7F2; --card:#F2EDE4;
  --gold:#45CE95; --gold-lt:#6DDCAC; --gold-pale:#E4F8F0;
  --ink:#18180F; --muted:#6B7068; --muted-lt:#8E9189;
  --border:#E2DDD5; --border-dk:#C8C2B8; --white:#FFFFFF;
  --green-tag:#2D6A4F; --amber:#C7873A; --red-soft:#C05454;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--cream); color:var(--ink);
  font-family:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

.container{ max-width:1120px; margin:0 auto; padding:0 32px; }

/* ─── NAV base (shared by nav.php) ──────────────────────────────────────── */
nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(29,56,40,0.92);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo{
  font-family:'Figtree',sans-serif; font-size:20px; font-weight:700;
  letter-spacing:0.10em; color:var(--white); text-transform:uppercase;
}
.nav-links{ display:flex; align-items:center; gap:36px; list-style:none; }
.nav-links a{ font-size:13.5px; font-weight:400; color:rgba(255,255,255,0.55); letter-spacing:0.01em; transition:color .2s; }
.nav-links a:hover{ color:var(--white); }
.btn-nav{
  font-size:13px; font-weight:600; padding:9px 20px;
  background:var(--gold); color:var(--forest); border-radius:6px;
  letter-spacing:0.01em; transition:background .2s;
}
.btn-nav:hover{ background:var(--gold-lt); }

/* ─── Buttons ───────────────────────────────────────────────────────────── */
.btn-primary{
  display:inline-block; font-size:15px; font-weight:600; padding:14px 28px;
  background:var(--gold); color:var(--forest); border:none; border-radius:8px;
  cursor:pointer; transition:background .2s, transform .15s;
}
.btn-primary:hover{ background:var(--gold-lt); transform:translateY(-1px); }
.btn-primary:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.btn-secondary{
  display:inline-block; font-size:15px; font-weight:600; padding:13px 26px;
  background:transparent; color:var(--forest); border:1.5px solid var(--border-dk);
  border-radius:8px; cursor:pointer; transition:border-color .2s, background .2s;
}
.btn-secondary:hover{ border-color:var(--forest); background:rgba(0,0,0,0.02); }

/* ─── Forms ─────────────────────────────────────────────────────────────── */
.form-card{
  background:var(--white); border:1px solid var(--border);
  border-radius:16px; padding:38px; box-shadow:0 8px 40px rgba(0,0,0,0.05);
}
.field{ margin-bottom:20px; }
.field label{
  display:block; font-size:13px; font-weight:600; color:var(--forest);
  letter-spacing:0.02em; margin-bottom:7px;
}
.field .req{ color:var(--red-soft); margin-left:2px; }
.field input, .field select, .field textarea{
  width:100%; font-family:inherit; font-size:15px; color:var(--ink);
  background:var(--cream); border:1.5px solid var(--border);
  border-radius:9px; padding:12px 14px; transition:border-color .18s, box-shadow .18s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-pale);
}
.field input::placeholder, .field textarea::placeholder{ color:var(--muted-lt); }
.field textarea{ min-height:100px; resize:vertical; }
/* Custom-styled select (native arrow removed, brand chevron) */
.field select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none; cursor:pointer;
  padding-right:42px; line-height:1.3;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7068' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center; background-size:16px;
}
.field select:focus{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2345CE95' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
.field select:invalid, .field select option[value=""]{ color:var(--muted-lt); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field .hint{ font-size:12.5px; color:var(--muted); margin-top:6px; }
/* honeypot */
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.tag{
  display:inline-block; font-size:11px; font-weight:600; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--green-tag);
  background:var(--gold-pale); padding:5px 12px; border-radius:100px;
}

.notice{ padding:14px 18px; border-radius:10px; font-size:14.5px; margin-bottom:22px; }
.notice-ok{ background:var(--gold-pale); color:var(--green-tag); border:1px solid #bfe9d8; }
.notice-err{ background:#F9E6E6; color:#9a3b3b; border:1px solid #eecccc; }

/* ─── Compact footer (new pages) ────────────────────────────────────────── */
.mini-footer{
  background:var(--forest); color:rgba(255,255,255,0.6);
  padding:34px 0; margin-top:70px; font-size:13.5px;
}
.mini-footer .container{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.mini-footer a{ color:rgba(255,255,255,0.75); }
.mini-footer a:hover{ color:#fff; }

@media (max-width:640px){
  .container{ padding:0 20px; }
  .field-row{ grid-template-columns:1fr; }
  .form-card{ padding:26px 22px; }
}
