/* ── HOME: HERO ─────────────────────────────────────────────────── */
.hero {
  display: grid;
  grid-template-columns: 55fr 45fr;
  height: 840px;
}
.hero__image {
  position: relative;
  overflow: hidden;
}
.hero__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero__text {
  background: var(--cream);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 56px 48px 56px 56px;
  max-width: 560px;
}
.hero__title { font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 600; margin-bottom: 10px; }
.hero__body  { font-size: .98rem; color: var(--bark); line-height: 1.75; max-width: 380px; margin-bottom: 32px; }
.hero__ctas  { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; flex-wrap: wrap; }

.hero__link {
  font-family: var(--font-ui);
  font-size: .85rem;
  font-weight: 500;
  color: var(--sage);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: gap .2s;
}
.hero__link:hover { gap: 10px; }

.hero__trust {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-ui);
  font-size: .76rem;
  color: var(--bark);
  flex-wrap: wrap;
}
.hero__trust-dot { color: var(--sage); opacity: .4; }

/* ── HOME: TRUST BAR ────────────────────────────────────────────── */
.trust-bar { background: var(--sage); padding: 16px var(--px); }
.trust-bar__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 22px;
  font-family: var(--font-ui);
  font-size: .8rem;
  font-weight: 500;
  color: var(--cream);
  letter-spacing: .04em;
  border-right: 1px solid rgba(245,240,232,.2);
}
.trust-item:last-child { border-right: none; }
@media (max-width: 768px) { .trust-item { border-right: none; } }

/* ── HOME: SERVICES PREVIEW ─────────────────────────────────────── */
.services-preview { padding: 88px var(--px); }
.services-preview__title  { text-align: center; font-size: clamp(1.8rem,3vw,2.6rem); margin-bottom: 10px; }
.services-preview__sub    { font-style: italic; text-align: center; color: var(--bark); margin-bottom: 52px; }
.services-preview__grid   {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px,1fr));
  gap: 20px;
  justify-items: center;
  max-width: 900px;
  margin: 0 auto;
}

/* ── SHARED: SERVICE CARD ───────────────────────────────────────── */
.service-card {
  position: relative;
  cursor: pointer;
  width: 100%;
  max-width: 360px;
}
.service-card__icon  { font-size: 2rem; margin-bottom: 14px; }
.service-card__title { font-size: 1.05rem; margin-bottom: 8px; }
.service-card__desc  { font-size: .88rem; color: var(--bark); line-height: 1.6; margin-bottom: 16px; }
.service-card__learn {
  font-family: var(--font-ui);
  font-size: .78rem;
  font-weight: 600;
  color: var(--terra);
  display: flex;
  align-items: center;
  gap: 5px;
}

/* ── HOME: STORY TEASER ─────────────────────────────────────────── */
.story-teaser { display: grid; grid-template-columns: 1fr 1fr; min-height: 480px; }
.story-teaser__image { position: relative; overflow: hidden; }
.story-teaser__image img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  opacity: .82;
}
.story-teaser__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(74,92,63,.3), rgba(74,92,63,.05));
}
.story-teaser__text {
  background: var(--cream);
  padding: 72px 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.story-teaser__title { font-size: clamp(1.7rem,2.8vw,2.4rem); margin-bottom: 20px; line-height: 1.2; }
.story-teaser__body  { font-size: .97rem; color: var(--bark); line-height: 1.78; margin-bottom: 14px; }

/* ── HOME: HOW IT WORKS ─────────────────────────────────────────── */
.how-it-works { padding: 88px var(--px); }
.how-it-works__title { text-align: center; font-size: clamp(1.8rem,3vw,2.5rem); margin-bottom: 52px; }
.steps { display: grid; grid-template-columns: repeat(3,1fr); max-width: var(--max-w); margin: 0 auto; list-style: none; }
.step { text-align: center; padding: 36px 28px; position: relative; }
.step__connector {
  position: absolute;
  top: 58px; right: -12px;
  width: 24px; height: 2px;
  background: repeating-linear-gradient(to right, var(--sage) 0, var(--sage) 4px, transparent 4px, transparent 10px);
  opacity: .35;
}
.step__icon  { font-size: 1.9rem; margin-bottom: 14px; }
.step__title { font-size: 1.1rem; margin-bottom: 10px; }
.step__desc  { font-size: .9rem; color: var(--bark); line-height: 1.65; }

/* ── HOME: ECO BAND ─────────────────────────────────────────────── */
.eco-band { padding: 72px var(--px); position: relative; overflow: hidden; }
.eco-band__title { color: var(--cream); font-size: clamp(1.7rem,2.8vw,2.3rem); margin-bottom: 18px; text-align: center; }
.eco-band__body  { font-size: .97rem; color: rgba(245,240,232,.72); line-height: 1.72; margin-bottom: 36px; text-align: center; max-width: 800px; margin-left: auto; margin-right: auto; }
.eco-icons { display: flex; justify-content: center; align-items: center; gap: 48px; flex-wrap: wrap; }
.eco-icon-item {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  font-family: var(--font-ui); font-size: .82rem; font-weight: 500;
  letter-spacing: .06em; color: rgba(245,240,232,.78);
}
.eco-icon-circle {
  width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid rgba(245,240,232,.22);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
}

/* ── HOME: CTA BANNER ───────────────────────────────────────────── */
.cta-banner { padding: 72px var(--px); }
.cta-banner__inner { max-width: 800px; margin: 0 auto; text-align: center; }
.cta-banner__title { color: var(--cream); font-size: clamp(1.5rem,2.5vw,2.1rem); margin-bottom: 10px; }
.cta-banner__sub   { font-style: italic; color: rgba(245,240,232,.8); margin-bottom: 24px; font-size: .97rem; }

/* ── SERVICES PAGE ──────────────────────────────────────────────── */
.services-list { max-width: var(--max-w-md); margin: 0 auto; padding: 64px var(--px); }
.services-main-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px,1fr));
  gap: 24px;
  margin-bottom: 32px;
}
.service-full-card {
  position: relative;
  cursor: pointer;
}
.service-full-card__sub   { font-family: var(--font-display); font-style: italic; color: var(--terra); font-size: .9rem; margin-bottom: 12px; }
.service-full-card__desc  { font-size: .9rem; color: var(--bark); line-height: 1.65; margin-bottom: 20px; }
.service-full-card__meta  {
  display: flex; gap: 20px;
  font-family: var(--font-ui); font-size: .76rem; color: var(--bark);
  padding-top: 16px; border-top: 1px solid rgba(107,127,94,.1);
  margin-bottom: 16px;
}

.quote-box { text-align: center; padding: 48px; }
.quote-box__primary { font-size: 1.02rem; font-weight: 600; color: var(--olive); margin-bottom: 6px; }
.quote-box__sub     { font-size: .93rem; color: var(--bark); margin-bottom: 20px; }

/* ── SERVICE DETAIL ─────────────────────────────────────────────── */
.service-detail-header {
  background: linear-gradient(160deg, var(--olive), #3a4a30);
  min-height: clamp(160px, 20vw, 240px);
  display: flex;
  align-items: flex-start;
  padding: clamp(24px, 3.5vw, 44px) var(--px) 0;
  position: relative;
  overflow: hidden;
}
.service-detail-header h1 { color: var(--cream); font-size: clamp(1.8rem,3vw,2.4rem); font-weight: 500; margin-bottom: 10px; }
.service-detail-header p  { font-style: italic; color: rgba(245,240,232,.65); font-size: .95rem; margin-bottom: 20px; }
.service-detail-header__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.service-detail-header__back {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-ui); font-size: .82rem;
  color: rgba(245,240,232,.6);
  transition: color .2s;
}
.service-detail-header__back:hover { color: var(--cream); }

.service-detail-body {
  max-width: var(--max-w-md); margin: 0 auto;
  padding: 64px var(--px);
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
}
.service-detail-desc { font-size: 1rem; color: var(--bark); line-height: 1.78; margin-bottom: 36px; }
.service-detail-includes h2 { font-size: 1.2rem; margin-bottom: 20px; }

.include-list { display: flex; flex-direction: column; gap: 12px; }
.include-item {
  display: flex; gap: 12px; align-items: flex-start;
  font-size: .93rem; color: var(--bark); line-height: 1.5;
}
.include-item svg { flex-shrink: 0; margin-top: 2px; }

.service-sidebar { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 16px; }
.service-sidebar__card { padding: 24px; }
.service-sidebar__card h3 {
  font-size: 1rem; margin-bottom: 18px;
  padding-bottom: 12px; border-bottom: 1px solid rgba(107,127,94,.12);
}
.meta-label { font-family: var(--font-ui); font-size: .67rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--terra); margin-bottom: 4px; }
.meta-val   { font-size: .88rem; color: var(--bark); line-height: 1.5; margin-bottom: 16px; }
.promise-label { font-family: var(--font-ui); font-size: .67rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); margin-bottom: 14px; }

@media (max-width: 768px) { .service-detail-body { grid-template-columns: 1fr; } }

/* ── STORY PAGE ─────────────────────────────────────────────────── */
.pull-quote { padding: 64px var(--px); border-bottom: 1px solid rgba(107,127,94,.12); text-align: center; }
.pull-quote__text {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.2vw, 1.85rem);
  font-style: italic;
  color: var(--olive);
  line-height: 1.55;
  max-width: 780px;
  margin: 0 auto;
}
.quote-mark { font-size: 3.5rem; line-height: 0; vertical-align: -1rem; color: var(--terra); opacity: .4; font-style: normal; }

.story-body { padding: 72px var(--px); }
.story-chapter { max-width: var(--max-w-md); margin: 0 auto 44px; }
.story-chapter--split {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  align-items: start;
}
.story-chapter__image { border-radius: var(--radius-lg); overflow: hidden; height: 320px; }
.story-chapter__image img { width: 100%; height: 100%; object-fit: cover; }
.story-chapter__head { font-size: 1.25rem; margin-bottom: 18px; padding-left: 18px; border-left: 4px solid var(--terra); line-height: 1.3; }
.story-chapter__p    { font-size: .98rem; color: var(--bark); line-height: 1.8; margin-bottom: 14px; }

.values-box { padding: 24px; max-width: var(--max-w-md); margin: 0 auto; }
.values-box h3 { font-size: 1rem; margin-bottom: 18px; padding-bottom: 12px; border-bottom: 1px solid rgba(107,127,94,.12); }
.values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.value-item { display: flex; gap: 12px; }
.value-emoji { font-size: 1.15rem; flex-shrink: 0; }
.value-title { font-family: var(--font-ui); font-size: .82rem; font-weight: 600; color: var(--olive); margin-bottom: 2px; }
.value-desc  { font-style: italic; font-size: .82rem; color: var(--bark); }

.story-close { padding: 72px var(--px); text-align: center; }
.story-close h2 { font-size: clamp(1.5rem,2.5vw,2.1rem); margin-bottom: 12px; }
.story-close p  { font-style: italic; color: var(--bark); margin-bottom: 24px; }

@media (max-width: 768px) {
  .story-chapter--split { grid-template-columns: 1fr; }
  .values-grid { grid-template-columns: 1fr; }
  .story-teaser { grid-template-columns: 1fr; }
  .story-teaser__text { padding: 48px var(--px); }
}

/* ── FAQ PAGE ───────────────────────────────────────────────────── */
.faq-body { max-width: var(--max-w-sm); margin: 0 auto; padding: 64px var(--px); }
.faq-item { border-bottom: 1px solid rgba(107,127,94,.15); }
.faq-q {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 20px 0;
  font-family: var(--font-display); font-size: 1.02rem;
  color: var(--olive);
  text-align: left; gap: 16px;
  transition: color .2s;
}
.faq-q:hover, .faq-q.open { color: var(--terra); }
.faq-toggle { font-size: 1.3rem; color: var(--terra); flex-shrink: 0; font-family: var(--font-ui); }
.faq-a { display: none; font-size: .94rem; color: var(--bark); line-height: 1.75; padding-bottom: 20px; }
.faq-a.open { display: block; }
.faq-cta { text-align: center; padding: 40px; margin-top: 48px; }
.faq-cta p { font-size: 1rem; color: var(--bark); margin-bottom: 16px; }

/* ── AREAS PAGE ─────────────────────────────────────────────────── */
.areas-body { max-width: var(--max-w-md); margin: 0 auto; padding: 64px var(--px); }
.areas-map { height: 380px; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid rgba(107,127,94,.15); margin-bottom: 48px; }
.areas-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.areas-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.area-tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-ui); font-size: .82rem; color: var(--bark);
  background: var(--cream); border: 1px solid rgba(107,127,94,.16);
  border-radius: 4px; padding: 7px 16px;
}
.areas-note { background: rgba(107,127,94,.07); border-radius: 8px; padding: 22px; font-size: .93rem; color: var(--bark); }
.areas-note button { color: var(--terra); text-decoration: underline; font-family: inherit; font-size: inherit; }

/* ── BOOK PAGE ──────────────────────────────────────────────────── */
.book-body {
  max-width: var(--max-w-md); margin: 0 auto;
  padding: 64px var(--px);
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
}
.price-estimate { padding: 16px 20px; margin-bottom: 16px; }
.price-estimate__label  { font-family: var(--font-ui); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
.price-estimate__amount { font-family: var(--font-display); font-size: 1.5rem; color: var(--olive); font-weight: 600; }
.price-estimate__note   { font-family: var(--font-ui); font-size: .7rem; color: var(--bark); opacity: .7; }

.book-sidebar { display: flex; flex-direction: column; gap: 18px; }
.book-trust-label { font-family: var(--font-ui); font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); margin-bottom: 16px; }
.offer-label { font-family: var(--font-ui); font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--terra); margin-bottom: 10px; }

.book-success {
  min-height: 60vh; display: flex;
  align-items: center; justify-content: center;
  padding: 40px; text-align: center;
}
.book-success__inner { max-width: 500px; animation: fadeUp .5s ease; }
.book-success__icon  { font-size: 3rem; margin-bottom: 20px; }

@media (max-width: 768px) { .book-body { grid-template-columns: 1fr; } }

/* ── CONTACT PAGE ───────────────────────────────────────────────── */
.contact-body {
  max-width: var(--max-w-md); margin: 0 auto;
  padding: 64px var(--px);
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 56px;
}
.contact-info h2 { font-size: 1.5rem; margin-bottom: 16px; }
.contact-info p  { font-size: .95rem; color: var(--bark); line-height: 1.72; margin-bottom: 32px; }
.contact-item { display: flex; gap: 16px; margin-bottom: 24px; align-items: center; }
.contact-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--mist); border: 1px solid rgba(107,127,94,.2);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: 1.15rem;
}
.contact-item__body { display: flex; flex-direction: column; gap: 1px; }
.contact-item__label {
  font-family: var(--font-ui); font-size: .65rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--sage);
  line-height: 1.2;
}
.contact-item__value { font-size: .95rem; color: var(--dark); line-height: 1.4; }
.contact-item__link  { font-size: .95rem; color: var(--olive); display: block; line-height: 1.4; transition: color .2s; }
.contact-item__link:hover { color: var(--terra); }

.contact-form-card { border-radius: var(--radius-lg); padding: 36px; }
.contact-success   { text-align: center; padding: 40px 0; animation: fadeUp .4s ease; }
.contact-success__icon  { font-size: 2.5rem; margin-bottom: 16px; }

@media (max-width: 768px) { .contact-body { grid-template-columns: 1fr; } }

/* ── HOME RESPONSIVE ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .hero { grid-template-columns: 1fr; height: auto; }
  .hero__image { height: 300px; }
  .hero__text  { max-width: 100%; padding: 40px var(--px); }
  .steps { grid-template-columns: 1fr; }
  .step__connector { display: none; }
}
