/* A layered, editorial WebRevival experience. Native scrolling throughout. */
html { scroll-padding-top: 110px; }
.site-header {
  position: sticky; top: 0; z-index: 20;
  width: 100%; min-height: 88px; padding-inline: max(40px, calc((100% - 1240px) / 2));
  background: #f6f5f1f5; border-bottom-color: transparent;
  transition: box-shadow .25s, background .25s;
  backdrop-filter: blur(12px);
}
.site-header.is-scrolled { box-shadow: 0 1px 0 #222b2815, 0 8px 24px #222b2808; }
.site-header::after {
  content: ''; position: absolute; bottom: 0; left: 0; height: 2px; width: 100%;
  background: var(--green); transform: scaleX(var(--reading-progress, 0)); transform-origin: left;
  pointer-events: none;
}
.revival-opening { position: relative; isolation: isolate; background: #e8eee5; }
.hero { position: relative; min-height: min(660px, 72svh); padding-top: 75px; padding-bottom: 100px; }
.hero::before {
  content: ''; position: absolute; z-index: -1; width: min(48vw, 570px); aspect-ratio: 1;
  right: 4%; top: 4%; border: 1px solid #9fb5a455; border-radius: 34% 66% 58% 42%;
  transform: rotate(-22deg); pointer-events: none;
}
.hero h1 { font-size: clamp(62px, 7.2vw, 100px); letter-spacing: -.065em; }
.hero h1 > span { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; letter-spacing: -.055em; }
.hero .eyebrow { color: #3c6150; }
.hero-copy { padding-top: 20px; }
.hero .intro { font-size: 27px; }
.button { border-radius: 100px; padding-inline: 26px; transition: background .2s, box-shadow .2s; }
.button:hover { box-shadow: 0 5px 16px #163c2520; }
.transformation { position: relative; z-index: 2; padding-top: 48px; padding-bottom: 60px; }
.transformation::before {
  content: ''; position: absolute; z-index: -1; top: 0; bottom: 0;
  left: calc((100% - 100vw) / 2); width: 100vw;
  background: var(--paper); border-radius: 64px 64px 0 0;
  box-shadow: 0 -18px 35px #253e2c07;
}
.comparison-shell { border-radius: 20px; }
.revival-route { margin-bottom: 38px; }
.revival-summary { border-top: 0; padding-top: 45px; padding-bottom: 100px; }
.industry-section { position: relative; border-radius: 56px 56px 0 0; background: #e9ede5; padding-bottom: 110px; }
.section-heading h2, .process > h2, .trust-section h2 { font-size: clamp(36px, 4.2vw, 56px); }
.industry-card { border-radius: 20px; box-shadow: 0 5px 18px #223b2b04; }
.case-visual { border-bottom: 0; }
.industry-card:hover { box-shadow: 0 18px 36px -22px #223b2b65; }
.preview-invitation.section.wrap {
  position: relative; z-index: 2; margin-top: -30px; margin-bottom: 90px;
  background: #174f3e; color: #f6f5f1; border-radius: 16px 72px 16px 16px;
  padding: 65px; gap: 60px; grid-template-columns: 1fr 1fr;
}
.preview-invitation h2 { font-size: clamp(46px, 5.8vw, 76px); }
.preview-invitation h2::after { content: '↗'; display: block; color: #a4d5be; font-size: 45px; margin-top: 25px; }
.preview-invitation > div > p:not(.large-copy):not(.eyebrow) { color: #d5e2d8; }
.preview-invitation .eyebrow { color: #b6d8c4; }
.preview-invitation .button { background: #dbe9d8; color: #174333; border-color: #dbe9d8; }
.preview-invitation .button:hover { background: #edf4e9; }
.preview-invitation :focus-visible { outline-color: #b6d8c4; }
.process { padding-bottom: 105px; }
.steps { gap: 48px; }
.steps article { padding-top: 28px; }
.steps article > span { background: #e6ede1; border: 0; width: 46px; height: 46px; }
.offer-section { border-radius: 56px 56px 0 0; padding-bottom: 125px; }
.offer { border-radius: 19px; }
.custom-section { position: relative; margin-top: -40px; border-radius: 56px 56px 0 0; padding-top: 95px; padding-bottom: 130px; }
.trust-section { position: relative; margin-top: -38px; border-radius: 56px 56px 0 0; background: #e5ece2; }
.trust-section .eyebrow { color: #3c6150; }
.trust-grid article > span { background: #d7e3d2; border-radius: 50%; }
.faq { padding-top: 90px; padding-bottom: 100px; }
.contact-section { border-radius: 64px 64px 0 0; background: #dce7d7; padding-top: 90px; padding-bottom: 90px; }
.contact-layout form { border-radius: 22px; }
.contact-layout h2 { font-size: clamp(44px, 4.8vw, 64px); }
.skip { position: fixed; z-index: 30; }
/* Entry effects never gate content visibility or intercept input. */
.entering { animation: section-arrive .65s cubic-bezier(.2,.65,.2,1) both; }
.entering:focus-within { animation: none; }
@keyframes section-arrive { from { opacity: .35; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 1000px) and (min-height: 700px) and (prefers-reduced-motion: no-preference) {
  .revival-opening .hero { position: sticky; top: 88px; }
}
@media (max-width: 1100px) {
  .site-header { padding-inline: 28px; }
  .hero { gap: 36px; }
  .hero h1 { font-size: clamp(58px, 7.5vw, 88px); }
  .preview-invitation.section.wrap { padding: 45px; gap: 35px; }
}
@media (max-width: 800px) {
  html { scroll-padding-top: 100px; }
  .site-header { min-height: 78px; padding-inline: 20px; }
  .js nav { top: 72px; left: 20px; right: 20px; border-radius: 15px; }
  .hero { min-height: 0; padding-top: 45px; padding-bottom: 65px; gap: 22px; }
  .hero h1 { font-size: clamp(51px, 11vw, 78px); }
  .hero-copy { padding-top: 0; }
  .hero .intro { font-size: 22px; }
  .hero::before { width: 68vw; top: 14%; right: 0; }
  .transformation { padding-top: 32px; padding-bottom: 40px; }
  .transformation::before { border-radius: 32px 32px 0 0; }
  .comparison-shell { border-radius: 14px; }
  .revival-route { margin-bottom: 25px; }
  .revival-summary { padding-top: 30px; padding-bottom: 60px; }
  .industry-section, .offer-section, .custom-section, .trust-section, .contact-section { border-radius: 32px 32px 0 0; }
  .industry-section { padding-bottom: 85px; }
  .section-heading h2, .process > h2, .trust-section h2 { font-size: 36px; }
  .preview-invitation.section.wrap { padding: 34px 26px; grid-template-columns: 1fr; gap: 30px; border-radius: 12px 48px 12px 12px; margin-bottom: 60px; }
  .preview-invitation h2 { font-size: 49px; }
  .preview-invitation h2::after { display: none; }
  .process { padding-bottom: 65px; }
  .steps { gap: 28px; }
  .steps article { grid-template-columns: 46px 1fr; }
  .offer-section { padding-bottom: 95px; }
  .custom-section { padding-top: 65px; padding-bottom: 95px; }
  .trust-section { margin-top: -30px; }
  .faq { padding-top: 60px; padding-bottom: 60px; }
  .contact-section { padding-top: 60px; padding-bottom: 60px; }
  .contact-layout h2 { font-size: 43px; }
}
@media (max-width: 420px) {
  .site-header { padding-inline: 16px; }
  .hero h1 { font-size: clamp(45px, 12vw, 51px); }
  .preview-invitation.section.wrap { padding: 30px 22px; }
  .preview-invitation .button { padding-inline: 18px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .entering { animation: none; }
  .revival-opening .hero { position: relative; top: auto; }
  .site-header, .button { transition: none; }
}
@media print {
  .site-header, .revival-opening .hero { position: static; }
  .entering { animation: none; }
  .transformation::before { display: none; }
}

.revival-opening { overflow: clip; }
