:root{
  --crimson:#7f1022;
  --crimson2:#a21d35;
  --navy:#1f2f45;
  --navy2:#2c4260;
  --ink:#171412;
  --cream:#f3ead7;
  --paper:#e7dcc5;
  --muted:#6b6258;
  --gold:#c6a15b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 15% 10%, rgba(255,255,255,.18), transparent 30%),
    linear-gradient(135deg,#efe5d1 0%,#e3d5bb 100%);
  font-family: Arial, Helvetica, sans-serif;
}
body:before{
  content:"";
  position:fixed; inset:0; pointer-events:none; opacity:.22;
  background-image:
    repeating-linear-gradient(0deg, rgba(0,0,0,.025) 0 1px, transparent 1px 4px);
}

.topbar{
  background:var(--navy);
  color:#fff;
  padding:10px 20px;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
}

.shell{max-width:1180px;margin:0 auto;padding:0 28px 60px}
header{
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:24px 0 18px;border-bottom:2px solid rgba(23,20,18,.5);
}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}
.brand-logo{height:64px;width:auto;display:block}

nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
nav a{text-decoration:none;color:var(--ink);font-weight:700;font-size:14px;padding:10px 12px}
nav a.login{
  color:#fff;background:var(--crimson);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);
}

.flashes{margin-top:18px;display:flex;flex-direction:column;gap:10px}
.alert{
  border:2px solid var(--ink);padding:12px 16px;font-size:14px;font-weight:700;
}
.alert-success{background:#e4efdd;color:#2b4a1f}
.alert-error{background:#f6dede;color:var(--crimson)}
.alert-info{background:var(--paper);color:var(--ink)}

.hero{
  display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;
  padding:56px 0;
}
.stamp{
  display:inline-block;border:2px solid var(--crimson);color:var(--crimson);
  font-weight:900;letter-spacing:.18em;text-transform:uppercase;padding:8px 12px;
  transform:rotate(-2deg);font-size:12px;background:rgba(255,255,255,.25)
}
h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(44px,7vw,84px);line-height:.92;letter-spacing:-.03em;
  margin:24px 0 14px;color:var(--crimson);
}
h2{font-family:Georgia,"Times New Roman",serif;color:var(--navy);font-size:32px;margin:0 0 12px}
.subhead{font-size:20px;max-width:670px;line-height:1.5;margin:0 0 28px}
.motto{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-style:italic;margin:22px 0;color:#3f362f}
.actions{display:flex;gap:12px;flex-wrap:wrap}

.btn{
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  padding:14px 18px;border:2px solid var(--ink);font-weight:800;color:var(--ink);
  background:var(--cream);box-shadow:4px 4px 0 var(--ink);min-height:48px;cursor:pointer;
  font-size:15px;font-family:inherit;
}
.btn.primary{background:var(--crimson);color:#fff}
.btn.navy{background:var(--navy);color:#fff}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn.small{padding:8px 12px;min-height:auto;box-shadow:3px 3px 0 var(--ink);font-size:13px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.agent-card{
  background:var(--cream);border:3px solid var(--ink);padding:20px;
  box-shadow:10px 10px 0 var(--crimson);position:relative;transform:rotate(1deg);
}
.agent-card img{width:100%;height:auto;display:block;border:2px solid var(--ink)}
.agent-card .label{
  position:absolute;right:18px;top:16px;background:var(--crimson);color:#fff;
  padding:6px 10px;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase
}
.dossier-note{
  margin-top:16px;border-top:2px dashed rgba(23,20,18,.55);padding-top:14px;
  font-family:"Courier New",monospace;font-size:13px;line-height:1.45
}

.section-title{
  margin:34px 0 16px;font-size:12px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;
  display:flex;align-items:center;gap:12px
}
.section-title:after{content:"";height:2px;background:rgba(23,20,18,.35);flex:1}

.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.tile{
  background:rgba(243,234,215,.92);border:2px solid var(--ink);padding:22px;min-height:185px;
  text-decoration:none;color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:4px 4px 0 rgba(23,20,18,.16)
}
.tile:hover{transform:translateY(-3px)}
.tile .eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:var(--crimson)}
.tile h3{font-family:Georgia,serif;font-size:24px;margin:8px 0 7px}
.tile p{font-size:14px;line-height:1.4;margin:0;color:var(--muted)}
.icon{width:38px;height:38px;border:2px solid var(--ink);display:grid;place-items:center;font-weight:900;background:var(--paper)}

.notice{
  margin:26px 0 0;padding:18px 20px;border-left:6px solid var(--crimson);
  background:rgba(243,234,215,.82);font-family:"Courier New",monospace;font-size:13px
}

.card{
  background:rgba(243,234,215,.92);border:2px solid var(--ink);padding:24px;
  box-shadow:6px 6px 0 rgba(23,20,18,.16); margin-bottom:20px;
}
.card h3{font-family:Georgia,serif;margin:0 0 10px;color:var(--navy)}

.form-narrow{max-width:480px}
.field{margin-bottom:16px}
.field label{display:block;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.field .hint{font-size:12px;color:var(--muted);margin-top:4px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],textarea,select{
  width:100%;padding:12px;border:2px solid var(--ink);background:#fff;font-family:inherit;font-size:15px;
}
textarea{resize:vertical;min-height:100px}
.checkbox-row{display:flex;align-items:center;gap:8px;font-size:14px}
.checkbox-row input{width:auto}

table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.5)}
table th,table td{border:2px solid var(--ink);padding:10px 12px;text-align:left;font-size:14px}
table th{background:var(--navy);color:#fff;text-transform:uppercase;font-size:11px;letter-spacing:.08em}
.table-wrap{overflow-x:auto;margin-bottom:24px}

.badge{display:inline-block;padding:3px 9px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink)}
.badge-pending{background:#f4e3b0;color:#5b4611}
.badge-approved{background:#dcefd6;color:#2b4a1f}
.badge-rejected{background:#f6dede;color:var(--crimson)}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.gallery-grid figure{margin:0;border:2px solid var(--ink);background:#fff;box-shadow:4px 4px 0 rgba(23,20,18,.16)}
.gallery-grid img{width:100%;height:170px;object-fit:cover;display:block;border-bottom:2px solid var(--ink)}
.gallery-grid figcaption{padding:10px 12px;font-size:13px;color:var(--muted)}

footer{
  margin-top:54px;border-top:2px solid rgba(23,20,18,.45);padding-top:22px;
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12px;
  color:var(--muted);text-transform:uppercase;letter-spacing:.11em
}

.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
.stat{background:var(--navy);color:#fff;padding:18px;border:2px solid var(--ink);box-shadow:4px 4px 0 rgba(23,20,18,.3)}
.stat .num{font-family:Georgia,serif;font-size:34px;display:block}
.stat .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.85}

@media(max-width:850px){
  .hero{grid-template-columns:1fr;gap:34px;padding-top:44px}
  .agent-card{transform:none}
  .grid{grid-template-columns:1fr 1fr}
  .grid.cols-3{grid-template-columns:1fr 1fr}
  .stat-row{grid-template-columns:1fr}
  nav a:not(.login){display:none}
}
@media(max-width:520px){
  .shell{padding:0 18px 40px}
  .grid{grid-template-columns:1fr}
  .grid.cols-3, .grid.cols-2{grid-template-columns:1fr}
  h1{font-size:52px}
  .subhead{font-size:18px}
  .brand-logo{height:52px}
}
