/* Core components — buttons, cards, forms, tags (verbatim values from core/buttons.css, cards.css, forms.css) */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:0.85em 2em;border-radius:var(--radius-sm);border:2px solid currentcolor;font-family:var(--font-gentium);font-weight:600;font-size:var(--text-base);text-decoration:none;transition:all 0.2s ease;cursor:pointer;min-height:44px;white-space:nowrap}
.btn-sm{font-size:var(--text-sm);padding:0.7em 1.5em}
.btn-lg{font-size:var(--text-lg);padding:1em 2.5em}
.btn-primary{background:var(--sage-green);color:white;border-color:var(--sage-green)}
.btn-primary:hover{background:var(--dark-green);border-color:var(--dark-green);color:white}
.btn-secondary{background:transparent;color:var(--sage-green);border-color:var(--sage-green)}
.btn-secondary:hover{background:var(--sage-green);color:white}
.cta-button{background:var(--sage-green);color:white;border:2px solid var(--sage-green);border-radius:var(--radius-sm);padding:0.85em 2em;font-family:var(--font-gentium);font-size:var(--text-base);font-weight:600;text-decoration:none;transition:all 0.2s ease;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.cta-button:hover{background:var(--dark-green);border-color:var(--dark-green);color:white}
.cta-reassurance{font-family:var(--font-sans);font-size:14px;color:#5a6b5a;margin-top:20px;font-style:italic}
/* Cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-component);box-shadow:var(--shadow-md);transition:all 0.2s ease}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.card h3{font-size:var(--text-xl);color:var(--ink);font-family:var(--font-palatino);font-weight:400;margin-top:0;margin-bottom:0.5em}
.card p{margin:0;color:var(--body);line-height:var(--lh-normal);opacity:.95;font-family:var(--font-gentium);font-size:var(--text-base)}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--space-component);margin:var(--space-lg) 0}
.feature-card{background:var(--cream);padding:var(--space-component);border-radius:var(--radius-md);border:1px solid var(--beige);box-shadow:var(--shadow-sm);transition:all 0.2s ease}
.feature-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.feature-card h3{color:var(--sage-green);font-size:var(--text-xl);font-family:var(--font-display);margin-top:0;margin-bottom:0.5em}
.feature-card ul{list-style:none;padding:0}
.feature-card li{padding:0.5rem 0;padding-left:1.5rem;position:relative}
.feature-card li::before{content:'\2713';position:absolute;left:0;color:var(--sage-green);font-weight:bold}
/* Tags */
.grade-tag,.grade-range{display:inline-block;background:var(--sage-green);color:white;padding:0.35rem 0.85rem;border-radius:20px;font-size:0.9rem;font-weight:600;font-family:var(--font-sans)}
.free-tag{background:var(--accent-soft);color:var(--accent-ink);border-radius:20px;padding:0.2rem 0.7rem;font-size:0.78rem;font-weight:600;font-family:var(--font-sans)}
/* Forms */
.form{max-width:600px;margin:0 auto;background:white;padding:2.5rem;border-radius:12px;border:2px solid var(--beige);box-shadow:0 4px 15px rgb(0 0 0 / 5%)}
.form label{display:block;margin-bottom:1.5rem;font-weight:500;color:var(--text-dark);font-size:1.05rem}
.form label input,.form label textarea,.form label select{display:block;width:100%;padding:0.75rem 1rem;margin-top:0.5rem;border:2px solid var(--beige);border-radius:8px;font-family:var(--font-serif);font-size:1rem;transition:all 0.3s;background:var(--warm-white)}
.form label input:focus,.form label textarea:focus,.form label select:focus{outline:none;border-color:var(--sage-green);background:white;box-shadow:0 0 0 3px rgb(74 103 65 / 10%)}
.slot-btn{padding:0.75rem 1rem;border:2px solid var(--beige);background:var(--warm-white);border-radius:8px;cursor:pointer;transition:all 0.3s;font-size:0.95rem;font-family:var(--font-sans)}
.slot-btn:hover{border-color:var(--sage-light);background:var(--cream);transform:translateY(-2px)}
.slot-btn.selected{background:var(--sage-green);color:var(--warm-white);border-color:var(--sage-green)}
