/* Tim Stanlick for Mayor — shared stylesheet
   Colors, type and spacing match the Claude Design handoff 1:1. */

:root{
  --cream:#f3eee0;
  --ink:#191813;
  --dark-green:#14311c;
  --dark-green-2:#1c4426;
  --dark-green-border:#2d4e36;
  --dark-green-border-2:#40614a;
  --link-green:#2b6135;
  --accent:#a8531c;
  --accent-hover:#8a4416;
  --accent-hover-2:#c26326;
  --gold:#e8c99a;
  --pale-green:#dfe9d3;
  --pale-green-border:#bfd0af;
  --pale-green-2:#eef2e6;
  --pale-green-3:#d6ddc7;
  --tan-border:#c9bfa4;
  --tan-bg:#e7dfc9;
  --tan-bg-2:#dad0b5;
  --input-bg:#fbf8ef;
  --muted-1:#5d5947;
  --muted-2:#4a4739;
  --muted-3:#3d3a2e;
  --muted-4:#6b6552;
  --on-dark-1:#e4e8d8;
  --on-dark-2:#c9d6bd;
  --on-dark-3:#b9cfa8;
  --on-dark-4:#9db394;
  --on-dark-5:#8fa886;
  --warn-border:#a8531c;
  --warn-bg:#f7ecdf;
  --warn-text:#8a4416;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Petrona',Georgia,serif;
  min-height:100vh;
  overflow-x:hidden;
}
/* height:auto is REQUIRED here. Every <img> carries width/height attributes so
   the browser can reserve space before the file loads. Those attributes map to
   CSS presentational hints, so without this the raw pixel height wins wherever a
   rule below sets width but not height — which cancels aspect-ratio and renders
   the photo stretched tall. Rules that genuinely need a fixed height set
   height:100% with a class selector, which outranks this. */
img{display:block;max-width:100%;height:auto}
a{color:var(--link-green);text-decoration:none}
a:hover{color:var(--accent)}
button{font:inherit;color:inherit;border-radius:0}
input,select,textarea{border-radius:0;font-family:inherit}
::selection{background:var(--pale-green)}
h1,h2,p,dl,dt,dd,ul{margin:0}

.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,72px)}

/* ---------- Header ---------- */
.site-header{background:var(--dark-green);color:var(--cream)}
.site-header__bar{
  max-width:1180px;margin:0 auto;
  padding:clamp(14px,2.2vw,20px) clamp(18px,4vw,48px);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.wordmark{color:var(--cream);display:block}
.wordmark__name{
  font:700 clamp(18px,2.4vw,25px)/1 'Public Sans',system-ui,sans-serif;
  letter-spacing:0.05em;text-transform:uppercase;
}
.wordmark__tag{
  font:italic 400 clamp(13px,1.5vw,16px)/1.3 'Petrona',Georgia,serif;
  color:var(--on-dark-3);margin-top:6px;
}

.nav-wide{display:none;align-items:center;gap:clamp(16px,2.2vw,30px)}
.nav-wide nav{display:flex;align-items:flex-end;gap:clamp(14px,2vw,26px)}
/* Scoped to `nav a`, NOT `.nav-wide a`. The "Get a lawn sign" button is also a
   child of .nav-wide, and `.nav-wide a` would outrank .btn--header and clobber
   the button's padding and font. */
.nav-wide nav a{
  color:var(--cream);
  font:600 12px/1 'Public Sans',system-ui,sans-serif;
  letter-spacing:0.11em;text-transform:uppercase;padding-bottom:5px;
}
.nav-wide nav a:hover{color:var(--gold)}
.nav-wide nav a.is-active{position:relative}
.nav-wide nav a.is-active::after{content:"";display:block;height:2px;background:var(--accent);margin-top:6px}

.menu-toggle{
  display:inline-block;background:transparent;border:1px solid #4c6b52;color:var(--cream);
  padding:12px 15px;font:700 12px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.11em;
  text-transform:uppercase;min-height:46px;cursor:pointer;
}

.mobile-nav{
  border-top:1px solid var(--dark-green-border);
  display:none;flex-direction:column;padding:8px clamp(18px,4vw,48px) 22px;
}
.mobile-nav.is-open{display:flex}
.mobile-nav a{
  color:var(--cream);font:600 14px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.09em;
  text-transform:uppercase;padding:17px 0;border-bottom:1px solid var(--dark-green-border);
}
.mobile-nav a:last-child{border-bottom:0}

@media (min-width:1001px){
  .nav-wide{display:flex}
  .menu-toggle{display:none}
  .mobile-nav{display:none !important}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;padding:18px 28px;
  font:700 13px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.11em;text-transform:uppercase;
  cursor:pointer;border:0;text-align:center;
}
/* letter-spacing appends a trailing space after the LAST glyph, so the visible
   text sits half a letter-space left of centre. Nudge it back by that half. */
.btn,.menu-toggle,.donate-cta{text-indent:0.055em}
.sticky-cta{text-indent:0.05em}

.btn--accent{background:var(--accent);color:#fdf6ec}
.btn--accent:hover{background:var(--accent-hover-2);color:#fdf6ec}
.btn--accent-dark:hover{background:var(--accent-hover);color:#fdf6ec}
/* Padding is 1px short on each side to absorb the border, so this button ends up
   exactly as tall as the borderless ones. Otherwise it is 2px taller, and in a
   flex row the others get stretched to match and their text rides high. */
.btn--outline{border:1px solid #6f8a76;padding:17px 27px;color:var(--cream);background:transparent}
.btn--outline:hover{background:var(--dark-green-2);color:var(--cream)}
.btn--dark{background:var(--dark-green);color:var(--cream)}
.btn--dark:hover{background:var(--accent);color:#fdf6ec}
.btn--header{background:var(--accent);color:#fdf6ec;padding:15px 22px;font-size:12px;white-space:nowrap}
.btn--header:hover{background:var(--accent-hover);color:#fdf6ec}

/* ---------- Hero (home) ---------- */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr))}
.hero__copy{background:var(--dark-green);color:var(--cream);padding:clamp(44px,6vw,88px) clamp(22px,5vw,72px)}
.hero__copy h1{font:600 clamp(46px,7.6vw,104px)/0.94 'Petrona',Georgia,serif;letter-spacing:-0.02em;text-wrap:balance}
.hero__copy p{margin-top:clamp(24px,3vw,36px);max-width:30ch;font:400 clamp(19px,2vw,24px)/1.5 'Petrona',Georgia,serif;color:var(--on-dark-1)}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(28px,3.5vw,44px)}
.hero__img{width:100%;height:100%;min-height:clamp(340px,52vw,620px);object-fit:cover;object-position:50% 22%;background:var(--tan-bg)}

.hero-page{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr))}
.hero-page__copy{background:var(--dark-green);color:var(--cream);padding:clamp(40px,5.5vw,84px) clamp(22px,5vw,72px)}
.hero-page__copy h1{font:600 clamp(40px,5.6vw,74px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em}
.hero-page__copy p{margin-top:24px;max-width:38ch;font:400 clamp(18px,1.9vw,22px)/1.55 'Petrona',Georgia,serif;color:var(--on-dark-1)}

/* ---------- Voting bar ---------- */
.voting-bar{background:var(--pale-green);border-bottom:1px solid var(--pale-green-border);padding:16px clamp(20px,5vw,72px)}
.voting-bar p{margin:0 auto;max-width:1180px;font:500 clamp(14px,1.5vw,17px)/1.5 'Public Sans',system-ui,sans-serif;color:var(--dark-green)}

/* ---------- Why I'm running ---------- */
.section{padding:clamp(52px,7vw,110px) clamp(20px,5vw,72px)}
.section h2{font:600 clamp(34px,4.8vw,64px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em;color:var(--dark-green);max-width:22ch}
.rule{height:1px;background:var(--tan-border);margin:clamp(24px,3vw,40px) 0 clamp(28px,3.5vw,48px)}

.why-grid{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,64px);align-items:flex-start}
.why-card{flex:1 1 280px;max-width:400px}
.why-card img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 15%;border:1px solid var(--tan-border);background:var(--tan-bg)}
.why-card__block{border-top:1px solid var(--tan-border);margin-top:18px;padding-top:14px}
.why-card__name{font:700 13px/1.2 'Public Sans',system-ui,sans-serif;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-green)}
.why-card__role{font:italic 400 16px/1.4 'Petrona',Georgia,serif;color:var(--muted-1);margin-top:6px}
.why-card__contact{display:grid;gap:7px}
.why-card__contact a{font:400 17px/1.3 'Petrona',Georgia,serif;color:var(--link-green)}

.why-copy{flex:2 1 420px;max-width:66ch}
.why-copy p{margin:0;font:400 clamp(19px,1.9vw,23px)/1.55 'Petrona',Georgia,serif}
.why-copy p + p{margin-top:1.15em;font-size:clamp(17px,1.7vw,20px);line-height:1.6}
.why-copy blockquote{
  margin:1.15em 0 0;font:italic 500 clamp(19px,2vw,24px)/1.45 'Petrona',Georgia,serif;
  color:var(--dark-green);padding-left:22px;border-left:3px solid var(--accent);
}
.why-copy .cta-link{
  display:inline-block;margin-top:clamp(24px,3vw,36px);
  font:700 12px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.11em;text-transform:uppercase;
  color:var(--link-green);border-bottom:2px solid var(--accent);padding-bottom:6px;
}

/* ---------- Seven planks (home teaser) ---------- */
.planks{background:var(--dark-green);color:var(--cream);padding:clamp(48px,6vw,96px) 0 0}
.planks__head{
  max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,72px);
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;
}
.planks__head h2{font:600 clamp(32px,4.2vw,56px)/1.02 'Petrona',Georgia,serif;letter-spacing:-0.015em}
.planks__head-copy{max-width:36ch}
.planks__head-copy p{font:400 clamp(16px,1.6vw,19px)/1.5 'Petrona',Georgia,serif;color:var(--on-dark-2)}
.planks__head-copy .cta-link{
  display:inline-block;margin-top:16px;color:var(--cream);
  font:700 12px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.11em;text-transform:uppercase;
  border-bottom:2px solid var(--accent);padding-bottom:6px;
}
.planks__head-copy .cta-link:hover{color:var(--gold)}
.plank-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
  gap:1px;background:var(--dark-green-border);margin-top:clamp(34px,4vw,60px);
}
.plank-tile{position:relative;display:block;aspect-ratio:5/4;overflow:hidden;background:var(--dark-green)}
.plank-tile:hover{opacity:0.9}
.plank-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.plank-tile__label{
  position:absolute;left:0;right:0;bottom:0;display:block;
  background:rgba(20,49,28,0.88);padding:clamp(15px,1.9vw,22px);
}
.plank-tile__n{display:block;font:700 12px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.13em;color:var(--gold)}
.plank-tile__title{display:block;margin-top:9px;font:600 clamp(20px,2.1vw,26px)/1.15 'Petrona',Georgia,serif;color:var(--cream)}

/* ---------- Lawn sign teaser (home) ---------- */
.sign-teaser{background:var(--pale-green);padding:clamp(48px,6.5vw,104px) clamp(20px,5vw,72px)}
.sign-teaser__grid{
  max-width:1180px;margin:0 auto;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));
  gap:clamp(28px,4vw,56px);align-items:center;
}
.sign-teaser h2{font:600 clamp(36px,4.8vw,64px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em;color:var(--dark-green)}
.sign-teaser p{margin:22px 0 0;max-width:44ch;font:400 clamp(17px,1.8vw,21px)/1.55 'Petrona',Georgia,serif;color:#2a3d2c}
.sign-teaser .btn{margin-top:clamp(24px,3vw,36px)}
.sign-teaser__photo{
  background:var(--pale-green-2);
  background-image:repeating-linear-gradient(135deg,var(--pale-green-3) 0 1px,transparent 1px 10px);
  border:1px solid var(--pale-green-border);aspect-ratio:4/3;
  display:flex;align-items:flex-end;padding:clamp(14px,2vw,22px);
}
/* When a real photo replaces the placeholder caption, it fills the frame.
   Add the <img> as the only child and delete the caption <span>. */
.sign-teaser__photo:has(img),.bio-photo-frame:has(img){padding:0;background-image:none}
.sign-teaser__photo img,.bio-photo-frame img{width:100%;height:100%;object-fit:cover}

/* ---------- Bio page ---------- */
.bio-main{max-width:1180px;margin:0 auto;padding:clamp(40px,5.5vw,88px) clamp(20px,5vw,72px) clamp(56px,7vw,110px)}
.bio-main > h1{font:600 clamp(40px,6vw,80px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em;color:var(--dark-green);max-width:20ch;text-wrap:balance}
.bio-main .rule{margin:clamp(28px,3.5vw,44px) 0}
.bio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:clamp(30px,4vw,60px);align-items:start}
.bio-copy{max-width:66ch}
.bio-copy p{margin:0;font:400 clamp(19px,1.9vw,23px)/1.55 'Petrona',Georgia,serif}
.bio-copy p + p{margin-top:1.15em;font-size:clamp(17px,1.7vw,20px);line-height:1.6}
.bio-copy blockquote{
  margin:clamp(30px,3.5vw,46px) 0 0;font:italic 500 clamp(21px,2.4vw,30px)/1.35 'Petrona',Georgia,serif;
  color:var(--dark-green);padding-left:24px;border-left:3px solid var(--accent);
}
.bio-photo-frame{
  margin:clamp(28px,3.5vw,44px) 0;background:var(--tan-bg);
  background-image:repeating-linear-gradient(135deg,var(--tan-bg-2) 0 1px,transparent 1px 10px);
  border:1px solid var(--tan-border);aspect-ratio:3/2;
  display:flex;align-items:flex-end;padding:clamp(14px,2vw,20px);
}
.bio-aside img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 18%;border:1px solid var(--tan-border);background:var(--tan-bg)}
.bio-aside{margin-top:0}
.record{margin-top:clamp(26px,3vw,38px)}
.record h2{font:700 12px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted-1);margin-bottom:4px}
.record dl div{border-top:1px solid var(--tan-border);padding:15px 0}
.record dl div:last-child{border-bottom:1px solid var(--tan-border)}
.record dt{font:600 17px/1.3 'Petrona',Georgia,serif;color:var(--dark-green)}
.record dd{margin:5px 0 0;font:400 16px/1.45 'Petrona',Georgia,serif;color:var(--muted-2)}
.record img{width:100%;margin-top:clamp(22px,2.6vw,32px);aspect-ratio:1/1;object-fit:cover;border:1px solid var(--tan-border);background:var(--tan-bg)}

/* ---------- Platform page ---------- */
.platform-intro{max-width:1180px;margin:0 auto;padding:clamp(40px,5.5vw,84px) clamp(20px,5vw,72px) clamp(30px,4vw,56px)}
.platform-intro h1{font:600 clamp(40px,6.2vw,84px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em;color:var(--dark-green)}
.platform-intro p{margin:22px 0 0;max-width:52ch;font:400 clamp(18px,1.9vw,22px)/1.55 'Petrona',Georgia,serif;color:var(--muted-3)}

.plank{border-top:1px solid var(--tan-border);padding:clamp(34px,4.5vw,72px) clamp(20px,5vw,72px)}
.plank__grid{
  max-width:1180px;margin:0 auto;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));
  gap:clamp(26px,3.5vw,56px);align-items:start;
}
.plank__img{width:100%;aspect-ratio:4/3;background:var(--tan-bg);border:1px solid var(--tan-border);object-fit:cover;display:block}
.plank__n{font:700 13px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.12em;color:var(--accent)}
.plank__title{margin:12px 0 0;font:600 clamp(27px,3.2vw,42px)/1.08 'Petrona',Georgia,serif;letter-spacing:-0.015em;color:var(--dark-green);max-width:24ch}
.plank__body p{margin:20px 0 0;max-width:62ch;font:400 clamp(17px,1.7vw,20px)/1.6 'Petrona',Georgia,serif}
.plank__body p + p{margin-top:1.1em}

.platform-cta{background:var(--dark-green);color:var(--cream);padding:clamp(44px,6vw,92px) clamp(20px,5vw,72px)}
.platform-cta__inner{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px}
.platform-cta p{margin:0;max-width:34ch;font:600 clamp(26px,3.2vw,42px)/1.1 'Petrona',Georgia,serif}

/* ---------- Lawn sign page ---------- */
.sign-steps{margin-top:clamp(30px,4vw,50px);display:grid;gap:20px}
.sign-steps div{border-top:1px solid var(--dark-green-border-2);padding-top:16px}
.sign-steps__t{font:600 clamp(19px,2vw,23px)/1.3 'Petrona',Georgia,serif}
.sign-steps__d{margin-top:6px;font:400 16px/1.5 'Petrona',Georgia,serif;color:var(--on-dark-2)}
.form-pane{padding:clamp(36px,5vw,80px) clamp(22px,5vw,64px);background:var(--cream)}

/* ---------- Forms (shared) ---------- */
.form{display:grid;gap:20px;max-width:560px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:20px}
.field label{display:block;font:600 11px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted-1);margin-bottom:8px}
.field input[type=text],.field input[type=tel],.field input[type=email],.field input[type=number],.field textarea{
  width:100%;min-height:50px;padding:13px 14px;border:1px solid var(--tan-border);
  background:var(--input-bg);font:400 17px/1.3 'Petrona',Georgia,serif;color:var(--ink);
}
.field textarea{min-height:0;resize:vertical;line-height:1.4}
.checkbox-row{display:flex;gap:12px;align-items:flex-start;font:400 16px/1.5 'Petrona',Georgia,serif;color:var(--muted-3);cursor:pointer}
.checkbox-row input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--link-green);flex:0 0 auto}
.checkbox-row--list{display:flex;gap:13px;align-items:center;border-top:1px solid var(--tan-border);padding:15px 0;font:400 clamp(17px,1.8vw,20px)/1.4 'Petrona',Georgia,serif;cursor:pointer}
.checkbox-row--list:last-of-type{border-bottom:1px solid var(--tan-border)}
.checkbox-row--list input{width:22px;height:22px;accent-color:var(--link-green);flex:0 0 auto}
.form-note{
  margin:4px 0 0;border:1px dashed var(--warn-border);background:var(--warn-bg);padding:14px 16px;
  font:500 12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--warn-text);
}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Volunteer page ---------- */
.volunteer-intro{max-width:1180px;margin:0 auto;padding:clamp(40px,5.5vw,84px) clamp(20px,5vw,72px) 0}
.volunteer-intro h1{font:600 clamp(40px,6vw,80px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em;color:var(--dark-green)}
.volunteer-intro p{margin:22px 0 0;max-width:50ch;font:400 clamp(18px,1.9vw,22px)/1.55 'Petrona',Georgia,serif;color:var(--muted-3)}
.volunteer-contact{
  display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,48px);margin:clamp(28px,3.5vw,44px) 0;
  padding:22px 0;border-top:1px solid var(--tan-border);border-bottom:1px solid var(--tan-border);
}
.volunteer-contact a{font:600 clamp(20px,2.4vw,28px)/1.2 'Petrona',Georgia,serif;color:var(--dark-green)}
.volunteer-contact a:hover{color:var(--accent)}
.volunteer-form-wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,72px) clamp(52px,7vw,104px)}
.volunteer-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:clamp(28px,4vw,60px);align-items:start}
.volunteer-form h2{font:600 clamp(24px,2.8vw,34px)/1.1 'Petrona',Georgia,serif;color:var(--dark-green)}
.volunteer-form > div:last-child > p{margin:12px 0 0;font:400 17px/1.5 'Petrona',Georgia,serif;color:var(--muted-2)}
.volunteer-form .checkbox-list{margin-top:22px}
.volunteer-form .btn{margin-top:26px;width:100%}

/* ---------- Donate page ---------- */
.donate-pane{padding:clamp(36px,5vw,80px) clamp(22px,5vw,64px)}
.donate-pane h2{font:600 11px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted-1)}
.amount-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:12px;margin-top:16px}
.amount-btn{
  border:1px solid var(--tan-border);background:var(--input-bg);color:var(--dark-green);
  padding:20px 10px;font:600 clamp(19px,2vw,23px)/1 'Petrona',Georgia,serif;cursor:pointer;
  min-height:64px;width:100%;
}
.amount-btn:hover{border-color:var(--dark-green);background:#f0ead9}
.amount-btn.is-selected{background:var(--dark-green);color:var(--cream);border-color:var(--dark-green)}
.custom-amount{margin-top:18px;display:none}
.custom-amount.is-visible{display:block}
/* This is an <a>, not a <button>, so it gets no free vertical centring. Padding
   alone sets the 58px height (22.5 + 13 line + 22.5); a min-height here would
   dump all the slack at the bottom and ride the text high. */
.donate-cta{
  display:block;text-align:center;margin-top:24px;background:var(--accent);color:#fdf6ec;
  padding:22.5px 26px;font:700 13px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.11em;
  text-transform:uppercase;
}
.donate-cta:hover{background:var(--accent-hover);color:#fdf6ec}
.donate-note{margin:20px 0 0;font:400 16px/1.55 'Petrona',Georgia,serif;color:var(--muted-2)}
.donate-legal{margin-top:22px;border-top:1px solid var(--tan-border);padding-top:18px}
.donate-legal p{margin:0;font:400 15px/1.6 'Petrona',Georgia,serif;color:var(--muted-1)}
.cheque-block{margin-top:clamp(30px,4vw,50px);border-top:1px solid var(--dark-green-border-2);padding-top:18px}
.cheque-block__t{font:600 clamp(19px,2vw,23px)/1.3 'Petrona',Georgia,serif}
.cheque-block p{margin:8px 0 0;font:400 16px/1.55 'Petrona',Georgia,serif;color:var(--on-dark-2)}

/* ---------- Message pages (thank you, 404) ---------- */
.message-page{
  max-width:1180px;margin:0 auto;
  padding:clamp(56px,8vw,120px) clamp(20px,5vw,72px) clamp(64px,9vw,140px);
}
.message-page h1{
  font:600 clamp(40px,6vw,80px)/1 'Petrona',Georgia,serif;letter-spacing:-0.02em;
  color:var(--dark-green);max-width:18ch;text-wrap:balance;
}
.message-page p{
  margin:22px 0 0;max-width:52ch;
  font:400 clamp(18px,1.9vw,22px)/1.55 'Petrona',Georgia,serif;color:var(--muted-3);
}
.message-page .message-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(28px,3.5vw,44px)}
.message-page .btn--outline{border-color:var(--dark-green);color:var(--dark-green)}
.message-page .btn--outline:hover{background:var(--dark-green);color:var(--cream)}
.message-contact{
  display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,48px);margin-top:clamp(32px,4vw,52px);
  padding:22px 0;border-top:1px solid var(--tan-border);border-bottom:1px solid var(--tan-border);
}
.message-contact a{font:600 clamp(19px,2.2vw,26px)/1.2 'Petrona',Georgia,serif;color:var(--dark-green)}
.message-contact a:hover{color:var(--accent)}

/* ---------- Footer ---------- */
.site-footer{background:var(--dark-green);color:var(--cream);padding:clamp(44px,5.5vw,84px) clamp(20px,5vw,72px) clamp(30px,4vw,54px)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:clamp(26px,4vw,56px);align-items:start}
.footer-wordmark{font:600 clamp(28px,3.4vw,44px)/1.05 'Petrona',Georgia,serif}
.footer-tag{margin:18px 0 0;max-width:32ch;font:italic 400 clamp(16px,1.7vw,19px)/1.5 'Petrona',Georgia,serif;color:var(--on-dark-3)}
.footer-h{font:700 11px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.13em;text-transform:uppercase;color:var(--on-dark-5)}
.footer-list{display:grid;gap:9px;margin-top:14px}
.footer-list a{color:var(--cream);font:400 17px/1.3 'Petrona',Georgia,serif}
.footer-list a:hover{color:var(--gold)}
.footer-bottom{
  margin-top:clamp(34px,4vw,56px);border-top:1px solid var(--dark-green-border);padding-top:18px;
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;
}
.footer-bottom span{font:400 14px/1.5 'Public Sans',system-ui,sans-serif;color:var(--on-dark-4)}

/* ---------- Sticky mobile CTA ---------- */
.sticky-spacer{display:none;height:74px}
.sticky-cta{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--accent);color:#fdf6ec;
  text-align:center;padding:21px 18px;font:700 14px/1 'Public Sans',system-ui,sans-serif;letter-spacing:0.1em;
  text-transform:uppercase;box-shadow:0 -2px 0 rgba(20,49,28,0.25);
}
@media (max-width:1000px){
  .sticky-spacer{display:block}
  .sticky-cta{display:block}
}
