/* Jane Doyle Nutrition — static rebuild of the Wix site */

:root {
  --green: #7cb663;
  --green-light: #a4cf8f;
  --green-band: #7ab35f;
  --text: #000;
  --nav-text: #444;
  --nav-active: #ede9e1;
  --button: #6e776e;
  --font-body: "Jost", "Futura", "Trebuchet MS", sans-serif;
  --font-script: "Dancing Script", cursive;
  --font-nav: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --header-h: 196px;
  --content-w: 980px;
}

* { box-sizing: border-box; }

html { scroll-padding-top: var(--header-h); }

body {
  margin: 0;
  background: #fff;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.9;
  padding-top: var(--header-h);
}

img { max-width: 100%; display: block; }
a { color: inherit; }

/* ---------- Header (fixed, like the Wix site) ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--header-h);
  z-index: 100;
  background: linear-gradient(to bottom, var(--green-light), var(--green));
  text-align: center;
}
.site-title {
  margin: 0;
  padding-top: 8px;
  font-family: var(--font-script);
  font-weight: 700;
  font-size: 90px;
  line-height: 1.3;
  color: #fff;
}
.site-title a { text-decoration: none; }
.header-rule {
  width: 940px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  border: 0;
  border-top: 1px solid rgba(47, 46, 46, 0.8);
}
.site-nav ul {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2px;
}
.site-nav a {
  display: block;
  padding: 0 12px;
  line-height: 30px;
  font-family: var(--font-nav);
  font-weight: 300;
  font-size: 15px;
  color: var(--nav-text);
  text-decoration: none;
  transition: background-color 0.2s;
}
.site-nav a:hover,
.site-nav a[aria-current="page"] { background: var(--nav-active); }

/* ---------- Footer ---------- */
.site-footer {
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 18px;
  line-height: 1.6;
}
.site-footer p {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 290px;
}
.site-footer a { text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.icon { width: 18px; height: 18px; flex: none; }

.green-band { height: 12px; background: var(--green-band); }

.container {
  width: var(--content-w);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 16px;
}

/* ---------- Home ---------- */
.hero {
  height: 607px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  background:
    url("../images/hero.jpg") center / cover no-repeat,
    linear-gradient(135deg, #cfe3c2, #8fbf78);
}
.hero-box {
  background: #fff;
  width: 486px;
  max-width: 100%;
  padding: 14px 22px 10px;
  text-align: center;
}
.hero-box h1 {
  margin: 0;
  font-weight: 400;
  font-size: 42px;
  line-height: 1.4;
}
.hero-box p {
  margin: 6px 0 0;
  font-size: 26px;
  line-height: 1.8;
}

.meet {
  padding: 60px 0 70px;
}
.meet .portrait {
  width: 150px;
  height: 158px;
  object-fit: cover;
  margin: 0 auto 20px;
}
.meet h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}
.meet .subtitle {
  margin: 4px 0 40px;
  font-size: 16px;
  text-align: center;
}
.meet .subtitle small { font-size: 11px; }
.meet .body { max-width: 896px; margin: 0 auto; }

/* Testimonial slideshow */
.testimonials {
  position: relative;
  min-height: 393px;
  padding: 26px 90px 30px;
  text-align: center;
  overflow: hidden;
}
.testimonials h2 {
  margin: 0 0 14px;
  font-size: 18px;
  font-weight: 400;
}
.slide { display: none; max-width: 826px; margin: 0 auto; }
.slide.active { display: block; animation: fade 0.6s; }
.slide blockquote {
  margin: 0;
  font-family: "Comic Sans MS", "Comic Sans", cursive;
  font-size: 13px;
  line-height: 1.9;
}
.slide blockquote p { margin: 0 0 1em; }
.slide cite {
  display: block;
  margin-top: 10px;
  font-family: var(--font-script);
  font-style: normal;
  font-size: 18px;
}
.slide-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 60px;
  border: 0;
  background: none;
  cursor: pointer;
  color: #555;
}
.slide-btn svg { width: 20px; height: 40px; }
.slide-btn.prev { left: 20px; }
.slide-btn.next { right: 20px; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- About ---------- */
.about {
  padding: 40px 16px 60px;
  width: auto;
  max-width: 682px;
  margin: 0 auto;
}
.about .portrait {
  width: 150px;
  height: 158px;
  object-fit: cover;
  margin: 0 auto 30px;
}
.about h1 {
  margin: 0 0 30px;
  font-size: 30px;
  font-weight: 400;
  text-align: center;
}
.about p { font-size: 15px; line-height: 2; }

/* ---------- What is Nutritional Therapy ---------- */
.nt-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 40px;
  padding: 0 50px 30px 50px;
  max-width: 1280px;
  margin: 0 auto;
}
.nt-image {
  aspect-ratio: 350 / 345;
  background:
    url("../images/therapy.jpg") center / cover no-repeat,
    linear-gradient(135deg, #e6efe0, #a8c99a);
}
.nt-text { text-align: center; }
.nt-text h1 { font-size: 20px; font-weight: 400; margin: 0 0 24px; }
.nt-text p { margin: 0 auto; max-width: 380px; font-size: 13px; line-height: 1.9; }
.nt-list { padding: 40px 0 70px; }
.nt-list h2 { font-size: 17px; font-weight: 400; margin: 0 0 20px; }
.nt-list ul { margin: 0; padding-left: 20px; font-size: 12px; line-height: 1.9; }

/* ---------- Consultations ---------- */
.consult-bg {
  background: var(--green);
  padding: 0 16px;
}
.consult-card {
  background: #fff;
  width: 980px;
  max-width: 100%;
  margin: 0 auto;
  padding: 36px 50px 40px;
  font-size: 15px;
}
.consult-card h1 {
  margin: 0;
  font-size: 44px;
  font-weight: 400;
  line-height: 1.3;
}
.consult-card .where { margin: 0 0 14px; font-style: italic; }
.consult-card h2 { margin: 0; font-size: 24px; font-weight: 500; }
.consult-card h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 400;
  text-decoration: underline;
}
.consult-card ul { margin: 0; padding-left: 36px; }
.consult-card p { margin: 0; }
.consult-card .fees-title { margin-top: 30px; font-weight: 700; font-style: italic; text-decoration: underline; }
.consult-card .concessions { margin-top: 30px; }
.consult-card hr { border: 0; border-top: 1px solid #404040; margin: 24px 0 0; }

/* ---------- Contact ---------- */
.contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  padding: 30px 0 30px;
}
.contact h1 { margin: 0 0 16px; font-size: 40px; font-weight: 400; }
.contact-line {
  display: flex;
  align-items: center;
  gap: 24px;
  margin: 0 0 28px;
  font-size: 18px;
}
.contact-line a { text-decoration: none; }
.contact form { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.contact label { display: flex; flex-direction: column; font-size: 12px; line-height: 1.6; }
.contact .full { grid-column: 1 / -1; }
.contact input,
.contact textarea {
  font: inherit;
  font-size: 14px;
  border: 1px solid #000;
  border-radius: 0;
  padding: 6px 8px;
  height: 37px;
  margin-bottom: 10px;
}
.contact textarea { height: 86px; resize: vertical; }
.contact button {
  grid-column: 2;
  justify-self: end;
  width: 142px;
  height: 36px;
  border: 1px solid var(--button);
  background: var(--button);
  color: #fff;
  font: inherit;
  cursor: pointer;
  margin-top: 10px;
}
.contact button:hover { background: #fff; color: var(--button); }
.form-status { grid-column: 1 / -1; margin: 0; font-size: 14px; }
.contact-rule { border: 0; border-top: 1px solid #404040; width: 1120px; max-width: 100%; margin: 0 auto 120px; }

/* ---------- Mobile ---------- */
@media (max-width: 760px) {
  /* Header scrolls away on phones so it doesn't eat a fifth of the screen */
  body { padding-top: 0; font-size: 16px; line-height: 1.7; }
  html { scroll-padding-top: 0; }
  .site-header { position: static; height: auto; padding-bottom: 8px; }
  .site-title { font-size: clamp(36px, 11vw, 48px); padding-top: 14px; }
  .site-nav ul { margin-top: 6px; gap: 0 2px; }
  .site-nav a { font-size: 15px; padding: 0 10px; line-height: 44px; }

  .hero {
    height: auto;
    min-height: 420px;
    padding: 40px 16px;
    background-image: url("../images/hero-mobile.jpg"), linear-gradient(135deg, #cfe3c2, #8fbf78);
  }
  .hero-box h1 { font-size: 28px; }
  .hero-box p { font-size: 19px; line-height: 1.6; }

  .meet { padding: 40px 16px 50px; }
  .meet .subtitle { margin-bottom: 24px; }

  .testimonials { padding: 26px 16px 70px; min-height: 0; }
  .slide blockquote { font-size: 15px; line-height: 1.7; }
  .slide-btn { top: auto; bottom: 10px; transform: none; width: 48px; height: 48px; }
  .slide-btn svg { width: 14px; height: 28px; }
  .slide-btn.prev { left: calc(50% - 56px); }
  .slide-btn.next { right: calc(50% - 56px); }

  .about p { font-size: 16px; line-height: 1.8; }

  .nt-intro, .contact { grid-template-columns: 1fr; gap: 24px; padding: 0 16px 30px; }
  .nt-intro { padding-top: 0; }
  .nt-image { margin: 0 -16px; aspect-ratio: 4 / 3; }
  .nt-text h1 { font-size: 22px; margin-bottom: 12px; }
  .nt-text p { font-size: 16px; }
  .nt-list { padding: 30px 16px 40px; }
  .nt-list h2 { font-size: 19px; }
  .nt-list ul { font-size: 16px; line-height: 1.7; }
  .nt-list li { margin-bottom: 6px; }

  .consult-bg { padding: 0; }
  .consult-card { padding: 24px 16px 30px; font-size: 16px; line-height: 1.7; }
  .consult-card h1 { font-size: 30px; margin-bottom: 6px; }
  .consult-card h2 { font-size: 21px; margin-top: 10px; }
  .consult-card h3 { font-size: 16px; margin-top: 14px; }
  .consult-card ul { padding-left: 22px; }
  .consult-card li { margin-bottom: 6px; }

  .contact { padding-top: 24px; }
  .contact h1 { font-size: 34px; }
  .contact-line { margin-bottom: 8px; gap: 16px; }
  .contact-line a { padding: 10px 0; }
  .contact form { grid-template-columns: 1fr; }
  .contact label { font-size: 14px; }
  .contact input, .contact textarea { font-size: 16px; height: 46px; }
  .contact textarea { height: 140px; }
  .contact button { grid-column: 1; width: 100%; height: 48px; font-size: 16px; }
  .contact-rule { margin-bottom: 40px; }

  .site-footer { font-size: 16px; }
  .site-footer p { min-width: 0; }
  .site-footer a { padding: 10px 0; }
}
