:root {
  --ink: #27352f;
  --muted: #6f7d76;
  --sage: #8ca491;
  --sage-dark: #647e6b;
  --sage-soft: #eaf0eb;
  --cream: #fbf7ef;
  --peach: #f1b496;
  --peach-soft: #fce7da;
  --white: #ffffff;
  --line: #dfe7e1;
  --shadow: 0 18px 50px rgba(48, 68, 58, .10);
  --radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: #fff; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
.section-shell { width: min(1180px, calc(100% - 36px)); margin-inline: auto; }
.topbar { position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 72px; padding: 0 28px; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(223,231,225,.8); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.35rem; letter-spacing: -.03em; }
.brand-mark { color: var(--sage-dark); width: 34px; height: 34px; display: inline-grid; place-items: center; }
.brand-mark svg { width: 34px; height: 34px; }
.navlinks { display: flex; gap: 30px; font-size: .95rem; color: #526159; }
.navlinks a:hover { color: var(--sage-dark); }
.topbar > .btn { justify-self: end; }
.btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid transparent; padding: 12px 18px; font-weight: 750; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--sage-dark); color: white; box-shadow: 0 8px 24px rgba(100,126,107,.22); }
.btn-primary:hover { background: #58715f; }
.btn-outline { border-color: var(--sage); color: var(--sage-dark); background: white; }
.btn-small { padding: 9px 14px; font-size: .9rem; }
.btn-full { width: 100%; margin-top: 4px; }
.hero { min-height: 620px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 64px; padding-block: 86px 70px; }
.eyebrow { font-size: .76rem; letter-spacing: .15em; font-weight: 850; color: var(--sage-dark); text-transform: uppercase; }
h1, h2, h3, h4 { margin-top: 0; line-height: 1.08; letter-spacing: -.035em; }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 6vw, 5.4rem); font-weight: 700; margin: 14px 0 22px; }
h1 span { color: var(--peach); font-style: italic; }
h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 4vw, 3.6rem); margin-bottom: 14px; }
h3 { font-size: 1.15rem; }
.lead { max-width: 680px; font-size: 1.2rem; color: #5b6962; margin-bottom: 28px; }
.hero-actions { display: flex; align-items: center; gap: 20px; margin-bottom: 34px; }
.trust { color: var(--sage-dark); font-weight: 700; font-size: .95rem; }
.mini-proof { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.mini-proof div { padding: 13px 14px; border-left: 2px solid var(--peach-soft); }
.mini-proof strong, .mini-proof span { display: block; }
.mini-proof span { color: var(--muted); font-size: .82rem; margin-top: 3px; }
.hero-visual { display: grid; place-items: center; }
.stall-card { width: min(460px, 100%); min-height: 430px; position: relative; background: linear-gradient(145deg, #f8fbf8, #eef4ef); border: 1px solid #dbe6dd; border-radius: 32px; box-shadow: var(--shadow); padding: 44px 34px 34px; overflow: hidden; }
.stall-card:before, .stall-card:after { content:""; position:absolute; border-radius:50%; background: var(--peach-soft); opacity:.7; }
.stall-card:before { width: 180px; height: 180px; right:-75px; top:-70px; }
.stall-card:after { width: 130px; height:130px; left:-60px; bottom:-45px; }
.awning { position: relative; z-index:2; height: 90px; display:flex; background:#fff; border-radius:18px 18px 8px 8px; box-shadow:0 10px 30px rgba(55,76,65,.08); overflow:hidden; }
.awning span { flex:1; background:var(--sage-soft); border-right:1px solid white; }
.awning span:nth-child(even){ background:var(--peach-soft); }
.stall-sign { position:relative; z-index:2; width:80%; margin:20px auto 10px; text-align:center; letter-spacing:.13em; font-size:.75rem; font-weight:850; color:var(--sage-dark); }
.stall-table { position:relative; z-index:2; width:82%; height:90px; margin:18px auto; border-top:12px solid #c9b49e; background:#efe4d7; border-radius:4px 4px 12px 12px; display:flex; align-items:flex-start; justify-content:space-around; padding-top:12px; }
.product { display:block; width:42px; height:42px; background:var(--sage); border-radius:8px 8px 14px 14px; box-shadow:inset 0 -10px rgba(255,255,255,.18); }
.product.p2{ background:var(--peach); height:52px; }.product.p3{ width:54px; background:#b2c3b4; }.product.p4{ background:#d0b9a3; height:47px; }
.hero-badge { position:absolute; z-index:4; background:#fff; border:1px solid #e5ece6; box-shadow:0 12px 30px rgba(45,63,54,.11); border-radius:13px; padding:10px 14px; min-width:112px; }
.hero-badge small,.hero-badge strong{display:block}.hero-badge small{font-size:.65rem;color:var(--muted);font-weight:850;letter-spacing:.08em}.hero-badge strong{font-family:Georgia,serif;font-size:1.3rem;margin-top:2px}.badge-profit{top:122px;left:4px}.badge-even{top:220px;right:0}.badge-inv{bottom:36px;left:38px}
.how { padding-block: 70px 90px; }
.center { text-align: center; margin-inline: auto; }
.section-heading { max-width: 760px; margin-bottom: 36px; }
.section-heading p { color: var(--muted); }
.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.steps-grid article, .tools-grid article { border: 1px solid var(--line); background: #fff; border-radius: 18px; padding: 26px; box-shadow: 0 8px 24px rgba(54,72,63,.04); }
.steps-grid article > span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--sage-soft); color:var(--sage-dark); font-weight:850; margin-bottom:16px; }
.steps-grid p, .tools-grid p { color: var(--muted); margin-bottom: 0; }
.calculator-section { background: var(--cream); padding: 86px 0 96px; border-top:1px solid #f0e7da; border-bottom:1px solid #f0e7da; }
.calculator-shell > .section-heading { margin-bottom: 28px; }
.app-grid { display:grid; grid-template-columns: .86fr 1.14fr; gap: 20px; align-items:start; }
.panel { background:#fff; border:1px solid #e4e9e5; border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; }
.panel-title-row, .subheading-row { display:flex; justify-content:space-between; gap:14px; align-items:center; }
.panel-title-row h3, .subheading-row h4 { margin:0; }
.pill { border-radius:999px; padding:6px 10px; background:var(--sage-soft); color:var(--sage-dark); font-weight:800; font-size:.75rem; white-space:nowrap; }
.pill-soft { background:#f7efe8; color:#9a6c55; }
.form-panel { display:grid; gap:14px; position:sticky; top:92px; }
label { display:grid; gap:7px; font-size:.82rem; color:#56645d; font-weight:750; }
input[type="text"],input[type="number"],input[type="email"] { width:100%; border:1px solid #dbe3dd; background:#fbfcfb; border-radius:10px; padding:12px 13px; color:var(--ink); outline:none; transition:border .15s, box-shadow .15s; }
input:focus { border-color:var(--sage); box-shadow:0 0 0 3px rgba(140,164,145,.14); }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fineprint { color:#849088; font-size:.76rem; margin:8px 0 0; }
.metrics-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.metric { border:1px solid #e3e8e4; border-radius:16px; padding:18px; background:#fbfcfb; }
.metric small,.metric strong,.metric span{display:block}.metric small{font-size:.66rem;letter-spacing:.08em;font-weight:850;color:#718079}.metric strong{font-family:Georgia,serif;font-size:1.65rem;margin:5px 0 2px}.metric span{font-size:.78rem;color:var(--muted)}
.metric-accent { background:var(--sage-soft); border-color:#d4e0d6; }
.scenario-block,.inventory-block { margin-top:22px; }
.subheading-row span{color:var(--muted);font-size:.78rem}.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.scenario-grid article{border:1px solid #e3e8e4;border-radius:14px;padding:15px;background:#fff}.scenario-grid article.featured{background:#f7faf7;border-color:#cfdccf}.scenario-grid strong,.scenario-grid small{display:block}.scenario-grid strong{font-family:Georgia,serif;font-size:1.45rem;margin:8px 0 2px}.scenario-grid small{color:var(--muted)}.scenario-tag{display:inline-block;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:850}.scenario-tag.slow{background:#f2eee9;color:#816b5f}.scenario-tag.avg{background:var(--sage-soft);color:var(--sage-dark)}.scenario-tag.strong{background:var(--peach-soft);color:#9e6549}
.mix-row{display:grid;grid-template-columns:150px 1fr 38px;gap:10px;align-items:center;margin-top:12px;font-size:.8rem;color:#607068}.bar{height:8px;border-radius:999px;background:#edf2ee;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--sage),#b8c8b9);border-radius:999px}.mix-row strong{text-align:right;color:var(--ink)}
.prep-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-top:20px}.text-button{border:0;background:none;color:var(--sage-dark);font-weight:800;font-size:.78rem}.checklist{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:18px}.checklist label,.consent{display:flex;align-items:center;gap:9px;font-weight:650}.checklist input,.consent input{accent-color:var(--sage-dark);width:16px;height:16px}.cash-total{margin-top:18px;background:var(--sage-soft);border-radius:14px;padding:15px}.cash-total small,.cash-total strong{display:block}.cash-total small{font-size:.66rem;font-weight:850;color:var(--sage-dark);letter-spacing:.08em}.cash-total strong{font-family:Georgia,serif;font-size:2rem}.cash-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.cash-grid div{border:1px solid #e4e9e5;border-radius:10px;padding:10px}.cash-grid span,.cash-grid strong{display:block}.cash-grid span{color:var(--muted);font-size:.75rem}.cash-grid strong{margin-top:2px}
.email-kit { margin-top:20px; display:grid; grid-template-columns:1fr 1.05fr; gap:28px; align-items:center; background:linear-gradient(140deg,#fff,#f4f8f4); }.email-kit h3{font-family:Georgia,serif;font-size:1.8rem;margin:7px 0}.email-kit p{color:var(--muted);margin-bottom:0}.email-form{display:grid;gap:10px}.email-row{display:grid;grid-template-columns:1fr auto;gap:8px}.consent{font-size:.77rem;color:#6d7b74}.status{font-size:.82rem;font-weight:750;min-height:20px}.status.success{color:#4f7659}.status.error{color:#a45045}
.tools-section{padding-block:88px}.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tool-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--peach-soft);color:#99654c;font-weight:900;margin-bottom:18px}.tools-grid article>span{display:inline-block;margin-top:16px;color:var(--sage-dark);font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.about{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding:70px 0 88px}.about p{font-size:1.05rem;color:var(--muted)}
footer{border-top:1px solid var(--line);padding:28px;display:flex;flex-wrap:wrap;gap:18px 34px;align-items:center;justify-content:center;text-align:center;color:#66756e}footer .brand{font-size:1rem}footer p{margin:0}
@media (max-width: 900px){.topbar{grid-template-columns:1fr auto}.navlinks{display:none}.hero{grid-template-columns:1fr;gap:34px;padding-top:60px}.hero-visual{order:-1}.stall-card{max-width:520px}.app-grid,.email-kit,.about{grid-template-columns:1fr}.form-panel{position:relative;top:auto}.prep-grid{grid-template-columns:1fr}.steps-grid,.tools-grid{grid-template-columns:1fr}.mini-proof{grid-template-columns:1fr 1fr 1fr}}
@media (max-width: 620px){.section-shell{width:min(100% - 24px,1180px)}.topbar{padding:0 14px;min-height:64px}.topbar>.btn{display:none}.hero{min-height:auto;padding-block:44px}.hero-actions{align-items:flex-start;flex-direction:column}.mini-proof{grid-template-columns:1fr}.two-col,.metrics-grid,.scenario-grid,.checklist,.cash-grid,.email-row{grid-template-columns:1fr}.panel{padding:18px}.mix-row{grid-template-columns:118px 1fr 32px}.email-kit{gap:18px}.stall-card{min-height:360px;padding-inline:22px}.badge-even{right:8px}.badge-profit{left:8px}.hero-badge{min-width:100px;padding:8px 10px}.about{gap:12px}}


/* FAQ */
.faq-list { max-width: 900px; margin: 2rem auto 4rem; display: grid; gap: 1rem; }
.faq-list details { padding: 1.25rem 1.5rem; }
.faq-list summary { cursor: pointer; font-size: 1.05rem; list-style-position: outside; }
.faq-list details p { margin: 1rem 0 0; line-height: 1.7; color: var(--muted, #5f6d65); }
.faq-list details[open] summary { color: #315f4b; }


/* Trust / legal pages */
.legal-main {
  padding-top: 4.5rem;
  padding-bottom: 5rem;
}

.legal-hero {
  max-width: 860px;
  margin: 0 auto 1.5rem;
}

.legal-hero h1 {
  margin: .4rem 0 0;
  font-size: clamp(2.3rem, 5vw, 4.4rem);
  line-height: 1;
}

.legal-card {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(1.4rem, 4vw, 2.6rem);
}

.legal-card h2 {
  margin-top: 2rem;
  margin-bottom: .55rem;
  font-size: 1.35rem;
}

.legal-card p,
.legal-card li {
  line-height: 1.75;
}

.legal-card ul {
  padding-left: 1.4rem;
}

.legal-updated {
  color: var(--muted, #5f6d65);
  margin-top: 0;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem 1.4rem;
  margin: .9rem 0;
}

.footer-links a {
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}

.footer-links a:hover {
  text-decoration: underline;
}

.contact-box {
  padding: 1rem 1.25rem;
  margin: 1.2rem 0 2rem;
  background: #eef5ef;
  border-radius: 14px;
}

@media (max-width: 760px) {
  .legal-main {
    padding-top: 2.5rem;
  }
}


/* Craft Fair Inventory Calculator traffic page */
.traffic-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 2rem;
  align-items: center;
  padding-top: 4.5rem;
  padding-bottom: 3rem;
}

.traffic-copy h1 {
  margin: .45rem 0 1rem;
  max-width: 850px;
  font-size: clamp(2.7rem, 6vw, 5.6rem);
  line-height: .98;
}

.hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.25rem;
  margin-top: 1.25rem;
  font-weight: 700;
  color: #315f4b;
}

.traffic-note {
  padding: 1.6rem;
}

.inventory-layout {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  gap: 1.5rem;
  align-items: start;
}

.inventory-form {
  display: grid;
  gap: 1rem;
  padding: 1.5rem;
}

.inventory-form label {
  display: grid;
  gap: .45rem;
  font-weight: 700;
}

.inventory-form input {
  width: 100%;
  box-sizing: border-box;
  padding: .85rem .95rem;
  border: 1px solid #d6ddd8;
  border-radius: 10px;
  font: inherit;
  background: white;
}

.inventory-results {
  display: grid;
  gap: 1rem;
}

.result-feature {
  padding: 1.7rem;
  text-align: center;
}

.big-result {
  font-size: clamp(2.5rem, 7vw, 4.8rem);
  font-weight: 800;
  line-height: 1;
  color: #315f4b;
  margin: .65rem 0;
}

.inventory-result-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.inventory-result-grid .panel {
  padding: 1.2rem;
  display: grid;
  gap: .35rem;
}

.inventory-result-grid strong {
  font-size: 1.7rem;
}

.result-label {
  color: var(--muted, #5f6d65);
  font-size: .85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.inventory-guidance {
  padding: 1.3rem 1.5rem;
}

.info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.info-grid .panel {
  padding: 1.4rem;
}

.full-planner-cta .panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.7rem;
}

.tools-grid article a {
  font-weight: 800;
  color: #315f4b;
  text-decoration: none;
}

.tools-grid article a:hover {
  text-decoration: underline;
}

@media (max-width: 820px) {
  .traffic-hero,
  .inventory-layout {
    grid-template-columns: 1fr;
  }

  .info-grid {
    grid-template-columns: 1fr;
  }

  .full-planner-cta .panel {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 560px) {
  .inventory-result-grid {
    grid-template-columns: 1fr;
  }

  .traffic-hero {
    padding-top: 2.5rem;
  }
}


/* Craft Fair Profit Calculator */
.scenario-panel {
  padding: 1.35rem 1.5rem;
}

.scenario-panel h3 {
  margin-top: 0;
}

.scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}

.scenario-grid > div {
  padding: 1rem;
  border: 1px solid #dde5df;
  border-radius: 12px;
  background: #fafbf9;
  display: grid;
  gap: .3rem;
}

.scenario-grid span {
  font-weight: 800;
}

.scenario-grid strong {
  font-size: 1.55rem;
  color: #315f4b;
}

.scenario-grid small {
  color: var(--muted, #5f6d65);
}

.related-tools .panel a {
  color: #315f4b;
  text-decoration: none;
  font-weight: 800;
}

.related-tools .panel a:hover {
  text-decoration: underline;
}

@media (max-width: 700px) {
  .scenario-grid {
    grid-template-columns: 1fr;
  }
}


/* Break-even calculator additions */
.cta-stack {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

@media (max-width: 560px) {
  .cta-stack {
    width: 100%;
  }

  .cta-stack .btn {
    width: 100%;
    text-align: center;
  }
}


/* Craft Fair Packing Checklist */
.packing-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  padding: 1.2rem 1.35rem;
  margin-bottom: 1.25rem;
}

.packing-toolbar > div:first-child {
  flex: 1;
  min-width: 180px;
}

.packing-progress-track {
  width: 100%;
  height: 10px;
  margin-top: .55rem;
  overflow: hidden;
  border-radius: 999px;
  background: #e7ece8;
}

.packing-progress-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #315f4b;
  transition: width .2s ease;
}

.packing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.packing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.packing-group {
  padding: 1.35rem;
}

.packing-group-heading {
  display: flex;
  gap: .85rem;
  align-items: center;
  padding-bottom: .85rem;
  border-bottom: 1px solid #e5e9e6;
  margin-bottom: .6rem;
}

.packing-group-heading h3 {
  margin: .1rem 0 0;
}

.packing-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #edf4ef;
  color: #315f4b;
  font-weight: 900;
}

.packing-item {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  padding: .68rem .15rem;
  line-height: 1.35;
  cursor: pointer;
}

.packing-item input {
  width: 19px;
  height: 19px;
  margin-top: .05rem;
  accent-color: #315f4b;
  flex: 0 0 auto;
}

.packing-item:has(input:checked) {
  color: #728078;
  text-decoration: line-through;
}

.packing-custom {
  margin-top: 1rem;
  padding: 1.4rem;
}

.packing-custom-form {
  display: flex;
  gap: .7rem;
  margin: 1rem 0;
}

.packing-custom-form input {
  flex: 1;
  min-width: 0;
  padding: .85rem .95rem;
  border: 1px solid #d6ddd8;
  border-radius: 10px;
  font: inherit;
}

.custom-packing-list {
  display: grid;
  gap: .45rem;
}

.custom-packing-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  border-top: 1px solid #edf0ee;
}

.custom-packing-row .packing-item {
  flex: 1;
}

.packing-remove {
  border: 0;
  background: transparent;
  color: #8a4f47;
  text-decoration: underline;
  cursor: pointer;
  font: inherit;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 760px) {
  .packing-grid {
    grid-template-columns: 1fr;
  }

  .packing-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .packing-actions {
    width: 100%;
  }

  .packing-actions .btn {
    flex: 1;
  }

  .packing-custom-form {
    flex-direction: column;
  }
}

@media print {
  .site-header,
  .traffic-hero,
  .inventory-explainer,
  .related-tools,
  #packing-faq,
  footer,
  .packing-actions,
  .packing-custom {
    display: none !important;
  }

  body {
    background: white !important;
  }

  #packing-checklist {
    padding: 0 !important;
    max-width: none !important;
  }

  .packing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }

  .panel {
    box-shadow: none !important;
    break-inside: avoid;
  }

  .packing-item {
    padding: .35rem 0;
  }
}
