/* North County Giving Tree — one stylesheet, mobile-first.
   Matches the printed flyer: warm parchment, deep green serif + script headings, gold hairlines and hearts,
   watercolor pine sprigs in the corners. Festive, not tacky. */
:root{
  --paper:#f4eddc;        /* page parchment */
  --paper-2:#faf5e8;      /* lighter card */
  --paper-3:#ece2c8;      /* darker band */
  --green:#2f4b3a;        /* flyer heading green */
  --green-d:#223728;
  --green-l:#5f7f5a;
  --red:#8e2d30;          /* cranberry */
  --gold:#b58b3a;         /* readable gold on parchment */
  --gold-l:#d8b96a;
  --ink:#2b2f2a;
  --muted:#6f7466;
  --line:#d9ccab;
  --r:14px;
  --serif:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --script:"Great Vibes","Snell Roundhand","Brush Script MT",cursive;
  --sans:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans);
  background-image:radial-gradient(ellipse at 50% 0%,rgba(255,252,243,.9),rgba(244,237,220,0) 60%),
                   radial-gradient(ellipse at 50% 100%,rgba(222,208,170,.55),rgba(244,237,220,0) 55%)}
a{color:var(--green);text-decoration-color:var(--gold-l);text-underline-offset:2px}

/* gold frame around the viewport, like the flyer's border */
.page::before{content:"";position:absolute;inset:10px;border:1px solid var(--gold);border-radius:3px;pointer-events:none;z-index:50;opacity:.75;
  box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px rgba(181,139,58,.45)}
@media(max-width:600px){.page::before{inset:7px;box-shadow:inset 0 0 0 2px var(--paper),inset 0 0 0 3px rgba(181,139,58,.4)}}

/* corner sprigs */
.sprig{position:absolute;width:200px;height:200px;background:url(sprig.svg?v=2) no-repeat;background-size:contain;pointer-events:none;z-index:0;opacity:.95}
.sprig-tl{top:6px;left:6px}
.sprig-br{right:6px;bottom:6px;transform:rotate(180deg)}
@media(max-width:600px){.sprig{width:120px;height:120px;opacity:.85}.sprig-tl{top:2px;left:2px}}
.page{position:relative;min-height:100vh;overflow:hidden}
.admin .sprig{display:none}

/* header / footer */
.site-header{text-align:center;padding:34px 16px 6px;position:relative;z-index:1}
@media(max-width:600px){.site-header{padding:48px 44px 4px}.site-header a{font-size:.8rem;letter-spacing:.14em}}
.site-header a{display:inline-block;text-decoration:none;color:var(--green);font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:.22em;text-transform:uppercase}
.site-header .brand-sub{display:block;font-family:var(--script);font-size:1.5rem;letter-spacing:0;text-transform:none;color:var(--gold);font-weight:400;line-height:1}
.wrap{max-width:680px;margin:0 auto;padding:8px 20px 24px;position:relative;z-index:1}
.site-footer{text-align:center;color:var(--muted);font-size:.9rem;padding:24px 20px 44px;position:relative;z-index:1;overflow-wrap:anywhere}
.site-footer .eyebrow{margin-bottom:4px}

/* type */
h1,h2,h3,.stat b,.deadline,.status-line,.child h3{font-variant-numeric:lining-nums}
h1,h2,h3{font-family:var(--serif);color:var(--green);font-weight:600;line-height:1.1;letter-spacing:.01em}
h1{font-size:2.3rem;margin:.3em 0 .35em}
h2{font-size:1.65rem;margin:0 0 .4em}
h3{font-size:1.3rem;margin:0 0 .3em;color:var(--red)}
.eyebrow{font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:0}
.script{font-family:var(--script);font-weight:400;color:var(--green);line-height:1;letter-spacing:0}
.lead{font-size:1.12rem;line-height:1.6}
.muted{color:var(--muted);font-size:.93rem}
.italic{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--green)}

/* gold heart rule  — — ♥ — — */
.rule{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold);margin:12px auto}
.rule::before,.rule::after{content:"";height:1px;width:48px;background:var(--gold);opacity:.8}
.rule svg{width:14px;height:14px;fill:var(--gold)}
.rule-wide::before,.rule-wide::after{width:84px}

/* hero (landing) */
.hero{text-align:center;padding:10px 0 8px}
.hero h1{font-size:2.1rem;margin:.1em 0 0;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.hero .script{font-size:3.6rem;margin:-4px 0 2px;display:block;text-transform:none;letter-spacing:0}
.hero .italic{margin:0 0 10px}
.tree{width:min(78%,300px);height:auto;display:block;margin:4px auto 0;filter:drop-shadow(0 10px 18px rgba(47,75,58,.18))}
.hero .lead{max-width:34ch;margin:8px auto 0}
@media(min-width:620px){
  .hero h1{font-size:2.6rem}
  .hero .script{font-size:5.2rem}
  .hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px;text-align:left}
  .hero-grid .lead{margin:0}
  .tree{width:100%;max-width:320px}
}

/* green call-to-action panel — the flyer's "scan to sponsor" box */
.cta{background:var(--green);color:#f6efdd;border-radius:var(--r);padding:22px 20px;margin:20px 0 6px;text-align:center;
  box-shadow:0 10px 24px rgba(34,55,40,.22);border:1px solid rgba(216,185,106,.45);position:relative}
.cta::after{content:"";position:absolute;inset:6px;border:1px solid rgba(216,185,106,.35);border-radius:9px;pointer-events:none}
.cta h2{color:#f6efdd;font-size:1.45rem;letter-spacing:.08em;text-transform:uppercase;margin:6px 0 4px}
.cta p{margin:0 0 14px;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:#e9dcb8}
.cta .gift{width:34px;height:34px;fill:none;stroke:var(--gold-l);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cta .muted{color:#cfc5a5;margin-top:10px;font-size:.88rem}

/* buttons */
.btn{display:inline-block;border:0;border-radius:999px;padding:14px 28px;font:700 1.02rem/1.2 var(--sans);text-decoration:none;cursor:pointer;min-height:48px;letter-spacing:.02em;transition:transform .08s ease,box-shadow .15s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 6px 16px rgba(142,45,48,.3)}
.btn-primary:hover{background:#772427}
.cta .btn-primary{background:var(--gold-l);color:var(--green-d);box-shadow:0 6px 16px rgba(0,0,0,.25)}
.cta .btn-primary:hover{background:#e6cb86}
.btn-secondary{background:var(--green);color:#fff}
.btn-small{padding:8px 14px;font-size:.9rem;min-height:36px}
.btn-ghost{background:transparent;color:var(--green);border:2px solid var(--green)}

/* parchment cards */
.card{background:var(--paper-2);border-radius:var(--r);padding:22px 20px;margin:18px 0;border:1px solid var(--line);
  box-shadow:0 2px 0 rgba(255,255,255,.6) inset,0 6px 18px rgba(90,70,30,.08)}
.card > h2:first-child{text-align:center}
.card .rule{margin-top:-2px}
.band{background:var(--paper-3);border-radius:6px;padding:18px 20px;margin:18px -4px;text-align:center}

/* how-it-works steps */
.steps{list-style:none;counter-reset:step;margin:0;padding:0}
.steps li{counter-increment:step;position:relative;padding:6px 0 6px 52px;margin:0}
.steps li::before{content:counter(step);position:absolute;left:0;top:4px;width:36px;height:36px;border-radius:50%;border:1px solid var(--gold);
  color:var(--gold);font:600 1.25rem/34px var(--serif);text-align:center;background:var(--paper)}
.steps li strong{color:var(--green)}
.deadline{text-align:center;font-family:var(--serif);font-size:1.2rem;color:var(--green);margin:16px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.deadline strong{color:var(--red)}

/* forms */
.form label{display:block;font-weight:700;margin:16px 0 6px;color:var(--green)}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:1rem;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fffdf7;color:var(--ink)}
.form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23b58b3a' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,75,58,.15)}
.form .btn{width:100%;margin-top:22px}
.hp{position:absolute;left:-9999px}
.err{color:var(--red);margin:4px 0 0;font-size:.92rem}
.form-intro{text-align:center;margin-bottom:4px}

/* notices */
.notice{background:#e8efe3;border-left:4px solid var(--green);padding:12px 14px;border-radius:0 10px 10px 0;margin:12px 0}
.notice-warn{background:#f5e3e0;border-color:var(--red)}
.status-line{text-align:center;font-family:var(--serif);font-size:1.15rem;color:var(--green);margin:4px 0 14px}

/* assignment: school → drop-off → family → child */
.school-block{margin:26px 0}
.school-block > h2{text-align:center}
.dropoff{background:var(--paper-3);border-radius:10px;padding:14px 16px;margin:8px 0 14px;font-size:.98rem;position:relative;padding-left:46px}
.dropoff::before{content:"";position:absolute;left:14px;top:16px;width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b58b3a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") no-repeat center/contain}
.dropoff strong{color:var(--green)}
.family{background:var(--paper-2);border:1px solid var(--gold);border-radius:var(--r);padding:14px;margin:16px 0;position:relative;box-shadow:0 6px 18px rgba(90,70,30,.08)}
.family-title{margin:-26px auto 8px;width:max-content;max-width:100%;background:var(--green);color:#f6efdd;font-family:var(--serif);font-weight:600;letter-spacing:.06em;padding:4px 16px;border-radius:999px;font-size:.95rem;text-transform:uppercase}
.child{background:#fffdf7;border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0}
.child h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:1.45rem;margin-bottom:8px}
.child h3 .id{font-weight:700;letter-spacing:.02em}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:3px 14px;margin:0;font-size:.97rem}
.kv dt{font-weight:700;color:var(--muted);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;padding-top:2px}
.kv dd{margin:0}
.rules{background:var(--green);color:#f6efdd;border-radius:var(--r);padding:18px 20px;margin:24px 0;border:1px solid rgba(216,185,106,.45)}
.rules h3{color:var(--gold-l);text-align:center;font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.rules ul{margin:0;padding-left:1.2em}.rules li{margin:.45em 0}.rules strong{color:#fff}
.pill{display:inline-block;font:700 .72rem/1.6 var(--sans);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 10px;background:#eee;color:var(--ink);vertical-align:middle}
.pill-ok{background:#dcebd6;color:var(--green-d)}.pill-warn{background:#f5e3e0;color:var(--red)}.pill-gold{background:#f3e6c0;color:#6d5320}
.bookmark{text-align:center;margin-top:18px}

/* partners */
.partner-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}
.partner{text-align:center;font-size:.9rem}.partner a{text-decoration:none;color:inherit}.partner img{max-width:100%;max-height:64px;display:block;margin:0 auto 4px}
.partner-major{font-weight:700;grid-column:span 2}

/* simple pages */
.simple{text-align:center;padding:30px 0}

/* ---------- admin: keep it plain and wide, same palette ---------- */
.admin .wrap{max-width:1100px}
.admin .site-header{padding-top:18px}
.admin-nav{background:var(--green-d);display:flex;flex-wrap:wrap;gap:4px 14px;padding:10px 16px;border-radius:10px;margin-bottom:14px}
.admin-nav a{color:#fff;text-decoration:none;font-size:.95rem}.admin-nav a:hover{text-decoration:underline}
.admin-nav .spacer{flex:1}
.admin h1{font-size:1.8rem}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:12px 0}
.stat{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.stat b{display:block;font-size:1.7rem;color:var(--green-d);line-height:1.1;font-family:var(--serif)}.stat span{font-size:.82rem;color:var(--muted)}
table.t{width:100%;border-collapse:collapse;background:#fffdf7;border-radius:var(--r);overflow:hidden;font-size:.93rem}
table.t th,table.t td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.t th{background:var(--paper-3);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.table-scroll{overflow-x:auto}
.bar{background:#e4dbc3;border-radius:999px;height:12px;overflow:hidden;min-width:100px}.bar i{display:block;height:100%;background:var(--green)}
.inline-form{display:inline}
.admin-form label{display:block;font-weight:700;margin:10px 0 3px}
.admin-form input,.admin-form select,.admin-form textarea{width:100%;font:inherit;padding:9px;border:1.5px solid var(--line);border-radius:8px;background:#fffdf7}
.row{display:grid;gap:10px}@media(min-width:640px){.row-2{grid-template-columns:1fr 1fr}.row-3{grid-template-columns:1fr 1fr 1fr}}
.flash{background:#e8efe3;border-left:4px solid var(--green);padding:10px 14px;border-radius:0 8px 8px 0;margin:12px 0}.flash.bad{background:#f5e3e0;border-color:var(--red)}
.checkbox{display:inline-block;width:18px;height:18px;border:2px solid var(--ink);border-radius:3px;vertical-align:middle}

/* print: per-school check-in sheet */
@media print{body{background:#fff;font-size:12pt}.page::before,.sprig,.site-header,.site-footer,.admin-nav,.no-print{display:none!important}.wrap{max-width:none;padding:0}table.t{font-size:11pt}.checkbox{display:inline-block;width:16px;height:16px;border:2px solid #000}}

@media(prefers-reduced-motion:reduce){.btn{transition:none}}
