


* { margin: 0; padding: 0; box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }

:root {
  
  --sheet:        #ffffff;
  --sheet-soft:   #f4f1f8;
  --sheet-leaf:   #f0fdf4;
  --sheet-deep:   #ece7f3;
  
  --forest:       #15803d;
  --forest-deep:  #052e16;
  --aubergine:    #3c2b4e;
  --aubergine-lo: #5b4570;
  --rosegold:     #c68b6f;
  --rosegold-lo:  #e2b79f;
  
  --ink:          #052e16;
  --ink-quiet:    #4a4458;
  --ink-faint:    #7c7489;
  --hairline:     #ded7e6;

  
  --fluid-step-0: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --fluid-step-1: clamp(1.15rem, 1.05rem + 0.5vw, 1.618rem);
  --fluid-step-2: clamp(1.618rem, 1.2rem + 1.6vw, 2.618rem);
  --fluid-step-3: clamp(2.2rem, 1.4rem + 3.6vw, 4.236rem);
  --fluid-lede:   clamp(1.05rem, 0.98rem + 0.6vw, 1.35rem);

  --fluid-gap-s:  clamp(0.4rem, 1vw, 0.75rem);
  --fluid-gap-m:  clamp(0.85rem, 2vw, 1.4rem);
  --fluid-gap-l:  clamp(1.4rem, 3.5vw, 2.6rem);

  --fluid-sheetwidth: clamp(320px, 92%, 1160px);
  --corner: 16px;
  --glide: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

html { scroll-behavior: smooth; }

body {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: var(--fluid-step-0);
  line-height: 1.5;
  color: var(--ink);
  background: var(--sheet);
  -webkit-font-smoothing: antialiased;
}


h1, h2, h3, h4 {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  line-height: 1.12;
  font-weight: 600;
  color: var(--forest-deep);
  letter-spacing: -0.012em;
}
h1 { font-size: var(--fluid-step-3); }
h2 { font-size: var(--fluid-step-2); }
h3 { font-size: var(--fluid-step-1); }
h4 { font-size: var(--fluid-step-1); font-weight: 500; }
p  { font-size: 1rem; margin-bottom: 0.5rem; line-height: 1.5; }

a { color: var(--forest); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: var(--aubergine); }

ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
strong { font-weight: 600; color: var(--forest-deep); }
small { font-size: 0.82rem; color: var(--ink-faint); }

::selection { background: var(--rosegold-lo); color: var(--forest-deep); }


.d-flex   { display: flex; }
.d-grid   { display: grid; }
.d-block  { display: block; }
.d-none   { display: none; }
.fd-col   { flex-direction: column; }
.fw-wrap  { flex-wrap: wrap; }
.ai-center{ align-items: center; }
.ai-start { align-items: flex-start; }
.jc-between { justify-content: space-between; }
.jc-center  { justify-content: center; }
.gap-s { gap: var(--fluid-gap-s); }
.gap-m { gap: var(--fluid-gap-m); }
.gap-l { gap: var(--fluid-gap-l); }
.mt-s { margin-top: var(--fluid-gap-s); }
.mt-m { margin-top: var(--fluid-gap-m); }
.mt-l { margin-top: var(--fluid-gap-l); }
.mb-s { margin-bottom: var(--fluid-gap-s); }
.mb-m { margin-bottom: var(--fluid-gap-m); }
.mb-l { margin-bottom: var(--fluid-gap-l); }
.p-m  { padding: var(--fluid-gap-m); }
.p-l  { padding: var(--fluid-gap-l); }
.mx-auto { margin-left: auto; margin-right: auto; }
.ml-auto { margin-left: auto; }
.w-full  { width: 100%; }
.w-half  { width: 100%; }
.text-center { text-align: center; }
.text-quiet  { color: var(--ink-quiet); }
.text-rose   { color: var(--rosegold); }
.fw-bold { font-weight: 700; }
.fw-med  { font-weight: 500; }
.fs-s { font-size: 0.85rem; }
.fs-l { font-size: var(--fluid-lede); }
.bg-sheet { background: var(--sheet); }
.bg-soft  { background: var(--sheet-soft); }
.bg-leaf  { background: var(--sheet-leaf); }

@media (min-width: 768px) {
  .w-half { width: 48%; }
}
