/* ============================================================
   rcmpcemetery.ca — shared stylesheet
   Palette and type drawn from the bronze plaques and granite
   of the RCMP National Memorial Cemetery at Beechwood.
   ============================================================ */

:root {
  --ground:        #ECE9E1;
  --ground-raised: #F6F4EE;
  --ink:           #211C1D;
  --ink-soft:      #55504C;
  --ink-faint:     #7B7570;
  --oxblood:       #4A2230;
  --brass:         #8F7130;
  --brass-bright:  #A8863C;
  --granite:       #5E6259;
  --rule:          #CFC9BC;
  --rule-faint:    #DED8CC;
  --shadow:        rgba(33, 28, 29, .13);

  --step--1: 0.82rem;
  --step-0:  1.19rem;
  --step-1:  1.42rem;
  --step-2:  1.78rem;
  --step-3:  2.3rem;
  --step-4:  3.1rem;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ground:        #171613;
    --ground-raised: #211F1B;
    --ink:           #E7E2D7;
    --ink-soft:      #B3ADA1;
    --ink-faint:     #8A8478;
    --oxblood:       #B98A9C;
    --brass:         #C9A455;
    --brass-bright:  #DBB868;
    --granite:       #9BA093;
    --rule:          #39352E;
    --rule-faint:    #2B2822;
    --shadow:        rgba(0, 0, 0, .5);
  }
}

:root[data-theme="dark"] {
  --ground:        #171613;
  --ground-raised: #211F1B;
  --ink:           #E7E2D7;
  --ink-soft:      #B3ADA1;
  --ink-faint:     #8A8478;
  --oxblood:       #B98A9C;
  --brass:         #C9A455;
  --brass-bright:  #DBB868;
  --granite:       #9BA093;
  --rule:          #39352E;
  --rule-faint:    #2B2822;
  --shadow:        rgba(0, 0, 0, .5);
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--ground);
  color: var(--ink);
  font-family: "Spectral", Georgia, "Times New Roman", serif;
  font-size: var(--step-0);
  font-weight: 400;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; }

h1, h2, h3 { text-wrap: balance; }

a { color: var(--oxblood); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--brass); }

:focus-visible { outline: 2px solid var(--brass-bright); outline-offset: 3px; }

.wrap {
  max-width: 62rem;
  margin: 0 auto;
  padding-inline: 20px;
}

.skip {
  position: absolute;
  left: -9999px;
  background: var(--ground-raised);
  color: var(--ink);
  padding: .7rem 1rem;
  z-index: 20;
}
.skip:focus { left: 20px; top: 10px; }

.label {
  font-family: "Archivo", system-ui, sans-serif;
  font-size: var(--step--1);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brass);
}

/* ---------- Site navigation ---------- */

.sitenav {
  border-bottom: 1px solid var(--rule);
  background: var(--ground);
}

.sitenav .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .5rem 2rem;
  padding-block: 1.1rem;
}

.sitenav .brand {
  font-family: "Cinzel", Georgia, serif;
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: .03em;
  color: var(--ink);
  text-decoration: none;
  margin-right: auto;
}
.sitenav .brand:hover { color: var(--oxblood); }

.sitenav ul {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem 1.6rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.sitenav a:not(.brand) {
  font-family: "Archivo", system-ui, sans-serif;
  font-size: var(--step--1);
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-decoration: none;
  padding-block: .2rem;
  border-bottom: 2px solid transparent;
}
.sitenav a:not(.brand):hover { color: var(--ink); border-bottom-color: var(--brass-bright); }
.sitenav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--oxblood); }

/* ---------- Masthead ---------- */

.masthead {
  padding-block: 3.4rem 2.6rem;
  border-bottom: 1px solid var(--rule);
}

.masthead .label { display: block; margin-bottom: 1.1rem; }

.masthead h1 {
  font-family: "Cinzel", Georgia, serif;
  font-weight: 600;
  font-size: var(--step-4);
  line-height: 1.12;
  letter-spacing: .005em;
  margin: 0 0 1.4rem;
}

.standfirst {
  font-size: var(--step-1);
  line-height: 1.6;
  font-weight: 300;
  color: var(--ink-soft);
  max-width: 34ch;
  margin: 0;
}

.masthead-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.2rem;
  align-items: end;
}

@media (min-width: 56rem) {
  .masthead-grid { grid-template-columns: 1.25fr .9fr; gap: 3rem; }
}

.masthead figure { margin: 0; }

.masthead img {
  width: 100%;
  display: block;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: 50% 40%;
  box-shadow: 0 2px 18px var(--shadow);
}

figcaption {
  font-family: "Archivo", system-ui, sans-serif;
  font-size: var(--step--1);
  line-height: 1.5;
  color: var(--ink-faint);
  margin-top: .7rem;
}

/* ---------- Prose ---------- */

.prose { max-width: 64ch; }
.prose p { margin: 0 0 1.15rem; }
.prose p:last-child { margin-bottom: 0; }

.dropcap p:first-child::first-letter {
  font-family: "Cinzel", Georgia, serif;
  font-size: 3.3em;
  line-height: .82;
  float: left;
  padding: .06em .12em 0 0;
  color: var(--oxblood);
}

/* ---------- Generic section ---------- */

.band {
  padding-block: 2.8rem;
  border-top: 1px solid var(--rule-faint);
}

.band:first-of-type { border-top: 0; }

.band h2 {
  font-family: "Cinzel", Georgia, serif;
  font-weight: 500;
  font-size: var(--step-3);
  line-height: 1.22;
  margin: .7rem 0 1.4rem;
}

.band h3 {
  font-family: "Cinzel", Georgia, serif;
  font-weight: 500;
  font-size: var(--step-1);
  margin: 0 0 .6rem;
}

.split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.4rem;
  align-items: start;
}

@media (min-width: 56rem) {
  .split { grid-template-columns: 1.2fr .85fr; gap: 3rem; }
}

figure.shot { margin: 0; }
figure.shot img { width: 100%; display: block; box-shadow: 0 2px 16px var(--shadow); }

/* ---------- Note ---------- */

.note {
  margin: 1.6rem 0 0;
  padding: 1rem 0 0;
  border-top: 2px solid var(--brass-bright);
  font-size: var(--step--1);
  font-family: "Archivo", system-ui, sans-serif;
  line-height: 1.62;
  color: var(--ink-soft);
  max-width: 52ch;
}
.note strong { color: var(--ink); font-weight: 600; }

/* ---------- Fact list ---------- */

.facts { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }

.facts li {
  display: grid;
  grid-template-columns: 6.2rem 1fr;
  gap: 1rem;
  padding-block: .85rem;
  border-bottom: 1px solid var(--rule-faint);
  font-size: var(--step--1);
  font-family: "Archivo", system-ui, sans-serif;
  line-height: 1.55;
  color: var(--ink-soft);
}

.facts .yr {
  color: var(--brass);
  font-weight: 600;
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
}

/* ---------- Contact ---------- */

.contact {
  margin-top: 3.4rem;
  padding: 2.2rem;
  background: var(--ground-raised);
  border-top: 3px solid var(--oxblood);
}

.contact h2 {
  font-family: "Cinzel", Georgia, serif;
  font-weight: 500;
  font-size: var(--step-2);
  margin: .7rem 0 1rem;
}

.contact p { margin: 0 0 1rem; max-width: 58ch; }
.contact p:last-child { margin-bottom: 0; }

.who {
  font-family: "Archivo", system-ui, sans-serif;
  font-size: var(--step--1);
  line-height: 1.6;
  color: var(--ink-soft);
  margin-top: 1.4rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--rule);
}
.who strong { color: var(--ink); }
.who p { margin: 0; }

/* ---------- Footer ---------- */

.sitefoot {
  margin-top: 2.6rem;
  padding-block: 1.8rem 3rem;
  border-top: 1px solid var(--rule);
  font-family: "Archivo", system-ui, sans-serif;
  font-size: var(--step--1);
  line-height: 1.65;
  color: var(--ink-faint);
}

.sitefoot p { margin: 0 0 .7rem; max-width: 68ch; }
.sitefoot a { color: var(--ink-soft); }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
