/* =========================================================================
   Homepage only. Loaded after styles.css on index.html and nowhere else.
   Every rule is scoped to .home or a .home-* class, so the shared header,
   footer and every other page are untouched.
   ========================================================================= */

.home {
  --home-ink-faint: #6B6352;   /* a touch darker than --ink-faint, for readable small text */
  --home-ease: cubic-bezier(.22, .61, .36, 1);
}

/* zero-specificity reset so the component rules below always win */
:where(.home) :where(h1, h2, h3, p, ol, figure) { margin: 0; }
:where(.home) :where(ol) { padding: 0; list-style: none; }

.home-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
.home-nowrap { white-space: nowrap; }

.home :focus-visible { outline: 2px solid var(--oxblood); outline-offset: 3px; }

/* ---- Hero --------------------------------------------------------------- */

.home-hero {
  position: relative; overflow: hidden;
  padding: clamp(3.5rem, 8vw, 6.5rem) 0 clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid var(--rule);
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(255, 252, 244, .65), transparent 70%),
    linear-gradient(to bottom, var(--paper), var(--paper-deep));
}
/* printer's double rule, top and bottom */
.home-hero::before, .home-hero::after {
  content: ""; position: absolute; left: 1.5rem; right: 1.5rem; height: 3px;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.home-hero::before { top: 1rem; }
.home-hero::after  { bottom: 1rem; }

.home-hero__inner { display: flex; flex-direction: column; align-items: center; text-align: center; }

.home-eyebrow {
  display: inline-flex; align-items: center; gap: 1rem;
  font-family: var(--font-body); font-size: .72rem; font-weight: 500;
  letter-spacing: .32em; text-transform: uppercase; color: var(--oxblood);
}
.home-eyebrow__rule { width: clamp(1.5rem, 6vw, 3.5rem); height: 1px; background: var(--oxblood); opacity: .6; }

.home-hero__title { margin-top: clamp(.5rem, 2vw, 1.25rem); line-height: 0; }
.home-hero__logo {
  width: min(100%, 720px); height: auto; margin-inline: auto;
  mix-blend-mode: multiply;   /* lets the logo's white ground take on the paper tone */
}

.home-hero__tagline {
  margin-top: clamp(.4rem, 1.5vw, .9rem);
  font-family: var(--font-display); font-style: italic; font-weight: 500;
  font-size: clamp(1.35rem, 1rem + 1.3vw, 2rem); line-height: 1.2; color: var(--ink);
  text-wrap: balance;
}

.home-ornament { display: flex; align-items: center; gap: .9rem; margin: clamp(1.5rem, 3vw, 2.25rem) 0; }
.home-ornament span { width: clamp(3rem, 9vw, 6rem); height: 1px; background: var(--rule); }
.home-ornament i { width: 7px; height: 7px; background: var(--oxblood); transform: rotate(45deg); }

.home-hero__lede {
  max-width: 46ch; color: var(--ink-soft);
  font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem); line-height: 1.6; text-wrap: pretty;
}

.home-hero__terms {
  margin-top: 1.4rem;
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1rem;
  font-family: var(--font-mono); font-size: .68rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-soft);
}
.home-dot { color: var(--oxblood); }

.home-cta-row {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem 1rem;
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
}

/* ---- Buttons ------------------------------------------------------------ */

.home .home-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
  min-height: 3rem; padding: .8rem 1.8rem;
  font-family: var(--font-body); font-size: .74rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase;
  border: 1px solid transparent; border-bottom-width: 1px;
  transition: background-color .25s var(--home-ease), color .25s var(--home-ease), border-color .25s var(--home-ease);
}
.home-btn__arrow { display: inline-block; letter-spacing: 0; transition: transform .3s var(--home-ease); }
.home .home-btn:hover .home-btn__arrow,
.home .home-btn:focus-visible .home-btn__arrow { transform: translateX(5px); }

.home .home-btn--primary { background: var(--oxblood); color: var(--paper); border-color: var(--oxblood); box-shadow: 0 10px 22px -14px rgba(90, 22, 32, .8); }
.home .home-btn--primary:hover { background: var(--oxblood-deep); color: var(--paper); border-color: var(--oxblood-deep); }
.home .home-btn--ghost { color: var(--ink); border-color: var(--ink); }
.home .home-btn--ghost:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.home .home-btn--light { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.home .home-btn--light:hover { background: #fff; color: var(--ink); border-color: #fff; }
.home .home-btn--ghost-light { color: var(--paper); border-color: rgba(242, 234, 216, .55); }
.home .home-btn--ghost-light:hover { background: rgba(242, 234, 216, .1); color: var(--paper); border-color: var(--paper); }

/* ---- Sections ----------------------------------------------------------- */

.home-section { padding: clamp(4rem, 8vw, 6.5rem) 0; }

.home-head { max-width: 46rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }

.home-label {
  display: flex; align-items: center; gap: .9rem;
  font-family: var(--font-body); font-size: .7rem; font-weight: 500;
  letter-spacing: .3em; text-transform: uppercase; color: var(--oxblood);
}
.home-label__num { font-family: var(--font-display); font-size: 1.1rem; letter-spacing: .08em; font-weight: 600; }
.home-label__rule { width: 2.5rem; height: 1px; background: currentColor; opacity: .55; }

.home-head h2, .home-invite h2 {
  margin-top: 1rem; font-family: var(--font-display); font-weight: 500;
  font-size: clamp(2.1rem, 1.4rem + 3vw, 3.6rem); line-height: 1.05; text-wrap: balance;
}
.home-head h2 em, .home-invite h2 em { font-style: italic; color: var(--oxblood); }

.home-head__intro {
  margin-top: 1.25rem; max-width: 40rem; color: var(--ink-soft);
  font-size: 1.15em; line-height: 1.55; text-wrap: pretty;
}

/* Pillars */
.home-pillars { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: clamp(2rem, 4vw, 3.5rem); }
.home-pillar { position: relative; padding-top: 1.5rem; border-top: 1px solid var(--ink); }
.home-pillar::before { content: ""; position: absolute; top: -1px; left: 0; width: 3.5rem; height: 3px; background: var(--oxblood); }
.home-pillar__num { display: block; font-family: var(--font-display); font-style: italic; font-size: 1.5rem; line-height: 1; color: var(--oxblood); margin-bottom: 1.1rem; }
.home-pillar h3 { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.4rem, 1.15rem + .8vw, 1.8rem); line-height: 1.15; text-wrap: balance; }
.home-pillar p { margin-top: .9rem; color: var(--ink-soft); text-wrap: pretty; }

/* Invitation */
.home-invite {
  position: relative; overflow: hidden; text-align: center;
  background: var(--ink); color: var(--paper);
  padding: clamp(4.5rem, 9vw, 8rem) 0;
}
.home-invite::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 80% at 50% 0%, rgba(122, 31, 43, .4), transparent 70%),
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(242, 234, 216, .035) 79px 80px);
}
.home-invite__inner { position: relative; display: flex; flex-direction: column; align-items: center; }
.home-label--on-dark { color: #D9A3AB; justify-content: center; }
.home-invite h2 { color: var(--paper); font-size: clamp(2.4rem, 1.4rem + 4.6vw, 4.8rem); }
.home-invite h2 em { color: #E4B8BE; }
.home-invite__body { max-width: 40rem; margin-top: 1.6rem; color: rgba(242, 234, 216, .84); font-size: 1.1em; text-wrap: pretty; }
.home-invite__terms {
  margin-top: 2.25rem; font-family: var(--font-mono); font-size: .66rem;
  letter-spacing: .18em; text-transform: uppercase; color: rgba(242, 234, 216, .62);
}

/* ---- Responsive --------------------------------------------------------- */

@media (max-width: 960px) {
  .home-pillars { grid-template-columns: 1fr; row-gap: 3rem; }
}

@media (max-width: 600px) {
  .home-hero::before, .home-hero::after { left: 1rem; right: 1rem; }
  .home-hero::before { top: .7rem; }
  .home-hero::after  { bottom: .7rem; }
  .home-eyebrow { letter-spacing: .2em; font-size: .64rem; gap: .6rem; }
  .home-eyebrow__rule { display: none; }
  .home-hero__terms { flex-direction: column; gap: .35rem; }
  .home-dot { display: none; }
  .home-cta-row .home-btn { width: 100%; }
  .home-invite__terms { letter-spacing: .12em; line-height: 1.8; }
}

@media print {
  .home-hero__logo { mix-blend-mode: normal; }
  .home-invite { background: none; color: var(--ink); }
  .home-invite h2, .home-invite__body, .home-invite__terms { color: var(--ink); }
}
