/* Magical Moments Childcare — shared marketing-site styles.
   Palette tokens lifted verbatim from the audit-tool prototypes so the
   public site and the toolset read as one brand. Marketing pages are
   warmer and more spacious than the denser tool UI. */

:root {
  --paper:#F5F2F0; --card:#FFFFFF; --ink:#2B342F; --ink-soft:#5C645F;
  --line:#E2DDD6; --line-soft:#EDE9E3;
  --green:#364C3E; --green-deep:#293B30; --green-soft:#E7EAE8;
  --gold:#E6B655; --gold-deep:#A87A2A; --gold-soft:#FBF3E1;
  --radius:16px;
  --shadow:0 1px 2px rgba(43,52,47,.05),0 10px 30px rgba(43,52,47,.07);
  --sans:"Helvetica Neue",Arial,sans-serif;
  --serif:"IvyPresto Display","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --maxw:1040px; --readw:720px;
}

* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; }
body {
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); line-height:1.55; font-size:16px;
}
img { max-width:100%; height:auto; display:block; }
a { color:var(--green-deep); }

.wrap { max-width:var(--maxw); margin:0 auto; padding:0 20px; }
.readable { max-width:var(--readw); }

/* --- Header / nav --- */
.site-header {
  background:var(--card); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:20;
}
.site-header .wrap {
  display:flex; align-items:center; gap:16px;
  min-height:64px; flex-wrap:wrap;
}
.brandmark { display:flex; align-items:center; gap:10px; text-decoration:none; }
.brandmark img { width:34px; }
.brandname {
  font-family:var(--serif); font-size:15px; color:var(--green-deep);
  letter-spacing:.01em; font-weight:600;
}
.site-nav { margin-left:auto; display:flex; gap:4px; flex-wrap:wrap; }
.site-nav a {
  text-decoration:none; color:var(--ink-soft); font-size:14px; font-weight:600;
  padding:8px 12px; border-radius:999px; transition:.15s;
}
.site-nav a:hover { background:var(--green-soft); color:var(--green-deep); }
.site-nav a[aria-current="page"] { background:var(--green); color:#fff; }

/* --- Buttons --- */
.btn {
  display:inline-block; font-family:var(--sans); font-size:15px; font-weight:700;
  padding:12px 22px; border-radius:999px; border:1px solid transparent;
  cursor:pointer; text-decoration:none; transition:.15s; text-align:center;
}
.btn-primary { background:var(--green); color:#fff; }
.btn-primary:hover { background:var(--green-deep); }
.btn-gold { background:var(--gold); color:#5A3D10; }
.btn-gold:hover { background:var(--gold-deep); color:#fff; }
.btn-ghost { background:var(--card); color:var(--green-deep); border-color:var(--line); }
.btn-ghost:hover { border-color:var(--green); }

/* --- Sections --- */
section { padding:56px 0; }
.eyebrow {
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-deep); margin:0 0 10px;
}
h1 {
  font-family:var(--serif); font-size:clamp(30px,5vw,46px); font-weight:600;
  line-height:1.08; letter-spacing:-.01em; color:var(--green-deep); margin:0 0 16px;
}
h2 {
  font-family:var(--serif); font-size:clamp(24px,3.5vw,32px); font-weight:600;
  color:var(--green-deep); margin:0 0 14px; line-height:1.15;
}
h3 { font-family:var(--serif); font-size:20px; color:var(--green-deep); margin:0 0 8px; }
.lede { font-family:var(--serif); font-size:19px; color:var(--ink-soft); max-width:60ch; }

/* --- Hero --- */
.hero { background:linear-gradient(180deg,var(--green-soft),var(--paper)); }
.hero .wrap { padding-top:64px; padding-bottom:56px; }

/* --- Audience chooser --- */
.chooser { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px; }
.choose-card {
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px; box-shadow:var(--shadow); text-decoration:none; color:inherit;
  display:flex; flex-direction:column; gap:8px; transition:.15s;
}
.choose-card:hover { transform:translateY(-3px); border-color:var(--green); }
.choose-card .badge {
  align-self:flex-start; font-size:12px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; background:var(--gold-soft); color:var(--gold-deep);
  padding:4px 10px; border-radius:999px;
}
.choose-card.soon { opacity:.9; }
.choose-card .arrow { margin-top:6px; color:var(--green); font-weight:700; }

/* --- Cards / grid --- */
.grid { display:grid; gap:20px; }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.card {
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; box-shadow:var(--shadow);
}
.tint { background:var(--green-soft); }

/* --- Testimonials --- */
.quote { border-left:3px solid var(--gold); padding:2px 0 2px 18px; margin:0 0 26px; }
.quote p { font-size:17px; margin:0 0 8px; }
.quote .who { color:var(--ink-soft); font-style:italic; font-size:15px; }

/* --- FAQ --- */
details.faq {
  background:var(--card); border:1px solid var(--line); border-radius:12px;
  padding:4px 18px; margin:0 0 12px; box-shadow:var(--shadow);
}
details.faq summary {
  cursor:pointer; font-weight:700; color:var(--green-deep); padding:14px 0;
  list-style:none;
}
details.faq summary::-webkit-details-marker { display:none; }
details.faq summary::after { content:"+"; float:right; color:var(--gold-deep); font-size:20px; }
details.faq[open] summary::after { content:"–"; }
details.faq p { margin:0 0 16px; color:var(--ink-soft); }

/* --- Forms --- */
.field { margin:0 0 16px; }
.field label { display:block; font-weight:700; font-size:14px; margin:0 0 6px; }
.field input, .field textarea, .field select {
  width:100%; font-family:var(--sans); font-size:16px; color:var(--ink);
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:11px 13px;
}
.field input:focus, .field textarea:focus {
  outline:none; border-color:var(--green);
}
.field .hint { font-size:13px; color:var(--ink-soft); margin:4px 0 0; }
.days { display:flex; gap:8px; flex-wrap:wrap; }
.days label {
  display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:14px;
  background:var(--card); border:1px solid var(--line); border-radius:999px;
  padding:8px 14px; cursor:pointer; margin:0;
}
.days input { width:auto; }

/* --- Availability widget --- */
.avail { display:flex; gap:10px; flex-wrap:wrap; margin:14px 0; }
.avail .day {
  border:1px solid var(--line); border-radius:12px; padding:10px 14px;
  background:var(--card); text-align:center; min-width:96px;
}
.avail .day .d { font-weight:700; font-size:13px; color:var(--green-deep); }
.avail .day .n { font-size:22px; font-family:var(--serif); margin:2px 0; }
.avail .day.open { background:var(--green-soft); }
.avail .day.full { opacity:.6; }
.avail .day.open .n { color:var(--green); }

.notice { border-radius:12px; padding:12px 16px; margin:14px 0; font-size:15px; }
.notice-ok { background:var(--green-soft); color:var(--green-deep); }
.notice-info { background:var(--gold-soft); color:#6B4A16; }

/* --- Footer --- */
.site-footer {
  background:var(--green-deep); color:#D9DED9; margin-top:40px;
  padding:40px 0; font-size:14px;
}
.site-footer a { color:#fff; }
.site-footer .cols { display:flex; gap:40px; flex-wrap:wrap; justify-content:space-between; }
.site-footer h4 { color:#fff; font-family:var(--serif); margin:0 0 10px; font-size:16px; }
.site-footer ul { list-style:none; padding:0; margin:0; }
.site-footer li { margin:0 0 6px; }
.site-footer .fine { margin-top:24px; color:#9FB0A2; font-size:13px; }

/* --- Legal pages --- */
.legal { padding:48px 0; }
.legal h1 { font-size:32px; }
.legal h2 { font-size:22px; margin-top:32px; }
.legal .draft-flag {
  background:var(--gold-soft); border:1px solid #E7CE9E; color:#6B4A16;
  border-radius:12px; padding:12px 16px; margin:0 0 24px; font-size:14px;
}
.legal table { width:100%; border-collapse:collapse; margin:16px 0; font-size:14px; }
.legal th, .legal td { border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
.legal code { background:var(--green-soft); padding:1px 5px; border-radius:5px; }

/* --- Responsive --- */
@media (max-width:720px) {
  .chooser, .grid-3, .grid-2 { grid-template-columns:1fr; }
  .site-nav { width:100%; margin-left:0; }
  section { padding:40px 0; }
}
