:root {
  --cream: #f8f0e6;
  --sand: #ead9c9;
  --blush: #ead0ca;
  --espresso: #35221c;
  --mocha: #765343;
  --ink: #201a17;
  --paper: #fffaf4;
  --line: rgba(53, 34, 28, .16);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--espresso);
  font-family: Jost, Arial, sans-serif;
}
img { display: block; max-width: 100%; }
a { color: inherit; }

.site-header {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 40px;
  color: var(--espresso);
  background: var(--cream);
}
.site-header.over-hero {
  position: absolute;
  inset: 0 0 auto;
  color: var(--paper);
  background: transparent;
}
.brand {
  font-family: "Cormorant Garamond", serif;
  font-size: 28px;
  letter-spacing: .06em;
  text-decoration: none;
}
.site-header nav {
  display: flex;
  align-items: center;
  gap: 22px;
}
.site-header nav a,
.header-cta {
  font-size: 12px;
  letter-spacing: .2em;
  text-decoration: none;
  text-transform: uppercase;
}
.site-header nav a.active { border-bottom: 1px solid currentColor; }
.header-cta {
  border: 1px solid rgba(255, 250, 244, .5);
  padding: 10px 16px;
}

.hero {
  position: relative;
  display: grid;
  min-height: 92vh;
  overflow: hidden;
  place-items: end center;
}
.hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-shade {
  position: absolute;
  inset: 0;
  background: rgba(53, 34, 28, .45);
}
.hero-copy {
  position: relative;
  max-width: 860px;
  padding: 160px 24px 92px;
  color: var(--paper);
  text-align: center;
}
.eyebrow {
  color: var(--mocha);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .32em;
  text-transform: uppercase;
}
.hero .eyebrow { color: var(--paper); }

h1,
h2,
h3 {
  margin: 0;
  color: var(--ink);
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  line-height: 1.05;
}
.hero h1 {
  margin: 18px 0;
  color: var(--paper);
  font-size: clamp(48px, 7vw, 92px);
}
.hero p:not(.eyebrow),
.page-hero p {
  font-size: 18px;
  line-height: 1.75;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--espresso);
  background: var(--espresso);
  color: var(--paper);
  font-size: 12px;
  letter-spacing: .18em;
  padding: 14px 22px;
  text-decoration: none;
  text-transform: uppercase;
}
.button.ghost,
.button.light {
  border-color: rgba(255, 250, 244, .6);
  background: transparent;
  color: var(--paper);
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 30px;
}

main > section,
.intro,
.service-index,
.feature-grid,
.page-hero,
.cards,
.notes,
.service-panels,
.contact-options {
  max-width: 1180px;
  margin: 0 auto;
  padding: 72px 28px;
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 56px;
}
.split h2,
.page-hero h1 { font-size: clamp(42px, 5vw, 70px); }
.split p:last-child,
.notes p,
.package-card p,
.service-panels p,
.contact-options p {
  color: var(--mocha);
  line-height: 1.75;
}
.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  margin-bottom: 12px;
  padding-bottom: 20px;
}
.section-heading span {
  font-size: 12px;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.service-row {
  display: grid;
  grid-template-columns: 48px 1fr 260px;
  align-items: center;
  gap: 32px;
  border-bottom: 1px solid var(--line);
  padding: 28px 0;
  text-decoration: none;
}
.service-row span {
  color: var(--mocha);
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-style: italic;
}
.service-row strong {
  color: var(--ink);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 300;
}
.service-row img {
  width: 260px;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.feature-grid,
.service-panels,
.contact-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.feature-grid article,
.package-card,
.service-panels article,
.contact-options article,
.notes {
  border: 1px solid var(--line);
  background: rgba(255, 250, 244, .5);
  padding: 28px;
}
.feature-grid img,
.service-panels img,
.page-hero img {
  aspect-ratio: 4 / 3;
  margin-bottom: 22px;
  object-fit: cover;
}
.feature-grid h3,
.package-card h3,
.service-panels h2,
.contact-options h2,
.notes h2 {
  margin: 10px 0;
  font-size: 34px;
}
.feature-grid a,
.text-link {
  display: inline-block;
  border-bottom: 1px solid currentColor;
  margin-top: 16px;
  font-size: 12px;
  letter-spacing: .18em;
  text-decoration: none;
  text-transform: uppercase;
}
.page-hero {
  padding-top: 96px;
  text-align: center;
}
.page-hero.with-image {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: 48px;
  text-align: left;
}
.page-hero.with-image img { margin: 0; }
.cards {
  display: grid;
  gap: 24px;
}
.cards.three { grid-template-columns: repeat(3, 1fr); }
.cards.two { grid-template-columns: repeat(2, 1fr); }
.package-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.package-heading strong {
  color: var(--mocha);
  font-size: 18px;
  font-weight: 500;
  white-space: nowrap;
}
.pricing-table {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 980px;
  margin: 34px auto 0;
  border: 1px solid var(--line);
  background: rgba(255, 250, 244, .42);
}
.pricing-table div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 58px;
  gap: 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 14px 18px;
}
.pricing-table div:nth-child(3n) { border-right: 0; }
.pricing-table div:nth-last-child(-n+2) { border-bottom: 0; }
.pricing-table span { color: var(--espresso); }
.pricing-table strong {
  color: var(--mocha);
  font-weight: 500;
  white-space: nowrap;
}
.check-list {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.check-list li {
  position: relative;
  margin: 10px 0;
  padding-left: 22px;
  line-height: 1.45;
}
.check-list li::before {
  position: absolute;
  left: 0;
  color: var(--mocha);
  content: "+";
}
.fine-print {
  max-width: 860px;
  margin: 24px auto 0;
  color: var(--mocha);
  line-height: 1.7;
  text-align: center;
}
.cta-band {
  background: var(--espresso);
  color: var(--paper);
  padding: 88px 28px;
  text-align: center;
}
.cta-band .eyebrow,
.cta-band h2 { color: var(--paper); }
.cta-band h2 {
  margin: 14px 0 28px;
  font-size: clamp(42px, 5vw, 72px);
}
footer {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  background: var(--ink);
  color: rgba(255, 250, 244, .72);
  padding: 34px 40px;
}
footer strong {
  display: block;
  color: var(--paper);
  font-family: "Cormorant Garamond", serif;
  font-size: 28px;
}

@media (max-width: 860px) {
  .site-header {
    align-items: flex-start;
    padding: 22px 24px;
  }
  .site-header.over-hero { position: absolute; }
  .site-header nav { display: none; }
  .hero-copy { padding-top: 140px; }
  .split,
  .feature-grid,
  .service-panels,
  .contact-options,
  .page-hero.with-image,
  .cards.three,
  .cards.two { grid-template-columns: 1fr; }
  .page-hero {
    padding-top: 48px;
    text-align: left;
  }
  .service-row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 34px 0;
  }
  .service-row strong { font-size: 34px; }
  .service-row img { width: 100%; }
  .pricing-table {
    grid-template-columns: 1fr;
    margin-top: 24px;
  }
  .pricing-table div,
  .pricing-table div:nth-child(3n),
  .pricing-table div:nth-last-child(-n+2) {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .pricing-table div:last-child { border-bottom: 0; }
  main > section,
  .intro,
  .service-index,
  .feature-grid,
  .page-hero,
  .cards,
  .notes,
  .service-panels,
  .contact-options { padding: 54px 24px; }
  footer {
    flex-direction: column;
    padding: 32px 24px;
  }
}
.site-header:not(.over-hero) .header-cta{border-color:var(--espresso)}.image-copy{display:grid;grid-template-columns:1fr 1fr;max-width:1180px;margin:0 auto;padding:72px 28px;gap:56px;align-items:center}.image-copy img{width:100%;aspect-ratio:4/3;object-fit:cover}.image-copy h2,.form-section h2{font-size:clamp(40px,5vw,64px)}.image-copy p{line-height:1.75;color:var(--mocha)}.image-copy-reverse img{order:2}.portfolio-grid{max-width:1180px;margin:auto;padding:24px 28px 72px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.portfolio-grid img{width:100%;aspect-ratio:1/1;object-fit:cover}.form-section{max-width:860px;margin:auto;padding:72px 28px}.inquiry-form{margin-top:28px;padding:30px;border:1px solid var(--line);background:rgba(255,250,244,.5)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inquiry-form label{display:grid;gap:8px;margin:0 0 18px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.inquiry-form input,.inquiry-form textarea{width:100%;border:1px solid var(--line);background:var(--paper);padding:13px;color:var(--ink);font:inherit;text-transform:none;letter-spacing:normal}.inquiry-form textarea{min-height:150px}.honeypot{position:absolute;left:-9999px}.form-status{min-height:24px;color:var(--mocha)}@media(max-width:860px){.image-copy,.form-grid,.portfolio-grid{grid-template-columns:1fr}.image-copy-reverse img{order:0}.portfolio-grid{gap:12px}.site-header nav{display:none}}
.photo-ribbon{overflow:hidden;background:var(--ink);padding:18px 0}.photo-ribbon-track{display:flex;width:max-content;animation:photo-ribbon-scroll 44s linear infinite}.photo-ribbon figure{flex:0 0 280px;height:210px;margin:0 10px;overflow:hidden}.photo-ribbon img{width:100%;height:100%;object-fit:cover}@keyframes photo-ribbon-scroll{to{transform:translateX(-50%)}}.photo-ribbon:hover .photo-ribbon-track{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.photo-ribbon-track{animation:none;transform:none}}@media(max-width:860px){.photo-ribbon figure{flex-basis:210px;height:158px;margin:0 6px}}
.header-actions{display:flex;align-items:center;gap:14px}.social-placeholders{display:flex;gap:9px}.social-placeholders a{display:grid;place-items:center;width:30px;height:30px;color:inherit;border:1px solid currentColor;border-radius:50%;opacity:.9}.social-placeholders svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.site-header:not(.over-hero) .social-placeholders a{border-color:var(--espresso)}@media(max-width:860px){.header-actions{gap:8px}.social-placeholders{gap:6px}.social-placeholders a{width:27px;height:27px}.header-cta{padding:9px 10px;font-size:10px}}
/* Keep the homepage hero full-bleed even though it sits inside <main>. */
main > section.hero { max-width: none; margin: 0; padding: 0; }
/* Separate a pricing note card from the following dark call-to-action band. */
.notes + .cta-band { margin-top: 32px; }
.service-cta { margin-top: 32px; }
