/* NOVA 3D Jewelry Design — editorial Phase 2 system. */
.nova-3d-page {
  --nova-3d-section-heading-size: clamp(2.7rem, 3.35vw, 3.7rem);
  background: #fff;
}
.nova-3d-page h1,
.nova-3d-page h2,
.nova-3d-page h3 { text-wrap: pretty; }
.nova-3d-page figure { margin: 0; }

.nova-3d-hero { background: var(--nova-color-ivory); }
.nova-3d-hero__grid {
  width: 100%;
  min-height: clamp(500px, 42vw, 590px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.nova-3d-hero__copy {
  width: 100%;
  max-width: 720px;
  padding: clamp(58px, 6.2vw, 90px) clamp(44px, 7.5vw, 112px);
  align-self: center;
}
.nova-3d-hero__copy h1 {
  max-width: 13ch;
  margin: 0 0 28px;
  font-size: clamp(3.35rem, 4.4vw, 4.3rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.nova-3d-hero__copy > p:not(.nova-eyebrow) {
  max-width: 510px;
  margin: 0 0 30px;
  color: var(--nova-color-text-secondary);
  font-size: clamp(1rem, 1.15vw, 1.1rem);
  line-height: 1.72;
}
.nova-3d-hero__visual { min-height: 100%; overflow: hidden; background: transparent; }
.nova-3d-hero__visual img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; }

.nova-3d-brief,
.nova-3d-development,
.nova-3d-handoff-section { padding-block: clamp(70px, 6.4vw, 92px); }

.nova-3d-brief { background: #fff; }
.nova-3d-brief__grid {
  align-items: center;
  display: grid;
  gap: clamp(62px, 7vw, 104px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.nova-3d-brief__visual { aspect-ratio: 3 / 2; overflow: hidden; background: #eeeae7; }
.nova-3d-brief__visual img { width: 100%; height: 100%; display: block; object-fit: cover; }
.nova-3d-brief__copy { max-width: 610px; }
.nova-3d-brief__copy h2,
.nova-3d-development__copy h2,
.nova-3d-decisions__heading h2,
.nova-3d-handoff-section__copy h2 {
  font-size: var(--nova-3d-section-heading-size);
  line-height: 1.02;
  letter-spacing: -0.03em;
}
.nova-3d-brief__copy h2,
.nova-3d-development__copy h2,
.nova-3d-handoff-section__copy h2 { margin: 0 0 24px; }
.nova-3d-brief__copy h2 { max-width: 19ch; }
.nova-3d-brief__copy > p:not(.nova-eyebrow),
.nova-3d-development__copy > p:not(.nova-eyebrow),
.nova-3d-handoff-section__copy > p:not(.nova-eyebrow) {
  margin: 0;
  color: var(--nova-color-text-secondary);
  font-size: 0.98rem;
  line-height: 1.76;
}
.nova-3d-input-list { margin: 30px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nova-3d-input-list li { min-height: 112px; padding: 18px 20px; background: #f7f5f5; display: flex; flex-direction: column; gap: 7px; }
.nova-3d-input-list strong { color: #3d3840; font-size: 0.89rem; font-weight: 650; line-height: 1.4; }
.nova-3d-input-list span { color: #777078; font-size: 0.78rem; line-height: 1.58; }

.nova-3d-development { background: #fff; }
.nova-3d-development__grid { align-items: center; display: grid; gap: clamp(62px, 8vw, 118px); grid-template-columns: minmax(350px, 0.86fr) minmax(0, 1.14fr); }
.nova-3d-development__copy { max-width: 470px; }
.nova-3d-development__copy h2 { max-width: none; }
.nova-3d-development__visual { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #e9e5e3; }
.nova-3d-development__visual img,
.nova-3d-development__visual video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 52%; }
.nova-3d-development__visual figcaption,
.nova-3d-wax-detail figcaption {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 8px 10px;
  background: rgba(250, 248, 245, 0.9);
  color: #5c5660;
  font-size: 0.56rem;
  font-weight: 650;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.nova-3d-review-points { margin: 30px 0 0; display: grid; gap: 24px 30px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nova-3d-review-points div { padding: 0; border: 0; display: block; }
.nova-3d-review-points dt { margin: 0 0 7px; color: #3d3840; font-family: var(--nova-font-heading); font-size: 1.24rem; font-weight: 500; line-height: 1.25; }
.nova-3d-review-points dd { margin: 0; color: #777078; font-size: 0.82rem; line-height: 1.62; }

.nova-3d-decisions { padding-block: clamp(72px, 6.5vw, 92px); background: #f4f1ef; }
.nova-3d-decisions__heading { margin-bottom: clamp(38px, 4vw, 50px); align-items: end; display: grid; gap: 60px; grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr); }
.nova-3d-decisions__heading h2 { max-width: 16ch; margin: 0; }
.nova-3d-decisions__heading > p { max-width: 530px; margin: 0 0 5px; color: var(--nova-color-text-secondary); font-size: 0.96rem; line-height: 1.76; }
.nova-3d-decisions__grid { display: grid; gap: clamp(34px, 3.8vw, 46px) clamp(38px, 4vw, 64px); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nova-3d-decisions__grid article { min-height: 0; padding: 0; align-items: start; display: grid; column-gap: 18px; grid-template-columns: 46px minmax(0, 1fr); }
.nova-3d-decisions__grid span { width: 44px; height: 44px; margin: 0; border: 1px solid #aaa1ab; border-radius: 50%; color: var(--nova-color-accent); font-size: 0.62rem; font-weight: 650; letter-spacing: 0.12em; align-items: center; display: flex; grid-row: 1 / span 2; justify-content: center; }
.nova-3d-decisions__grid h3 { margin: 2px 0 7px; color: #353137; font-size: clamp(1.45rem, 1.85vw, 1.8rem); line-height: 1.12; letter-spacing: -0.022em; }
.nova-3d-decisions__grid p { max-width: 470px; margin: 0; color: #777078; font-size: 0.9rem; line-height: 1.7; grid-column: 2; }

.nova-3d-handoff-section { background: #fff; }
.nova-3d-handoff-section__grid { align-items: center; display: grid; gap: clamp(62px, 7vw, 104px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nova-3d-handoff-section__copy { max-width: 540px; }
.nova-3d-handoff-section__copy h2 { max-width: 15ch; }
.nova-3d-handoff-section__media { align-items: stretch; display: grid; gap: 14px; grid-template-columns: minmax(0, 1.75fr) minmax(150px, 0.75fr); }
.nova-3d-wax-video,
.nova-3d-wax-detail { position: relative; height: clamp(360px, 28vw, 410px); overflow: hidden; background: #e7e2df; }
.nova-3d-wax-video video,
.nova-3d-wax-detail img { width: 100%; height: 100%; display: block; object-fit: cover; }
.nova-3d-wax-video video { object-position: 50% 50%; }
.nova-3d-wax-detail img { object-position: 54% 50%; }
.nova-3d-handoff { margin: 26px 0 22px; padding: 0; list-style: none; display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nova-3d-handoff li { min-height: 0; padding: 0; background: transparent; color: #4b464d; display: block; font-size: 0.8rem; font-weight: 620; line-height: 1.48; }
.nova-3d-handoff li span { margin: 0 0 7px; color: var(--nova-color-accent); display: block; font-size: 0.61rem; letter-spacing: 0.12em; }
.nova-3d-sample-note { margin: 0 0 24px; padding: 0; border: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 10px; }
.nova-3d-sample-note strong { color: #39343b; font-family: var(--nova-font-heading); font-size: 1.48rem; font-weight: 500; line-height: 1.2; }
.nova-3d-sample-note span { color: #777078; font-size: 0.8rem; line-height: 1.5; }

.nova-3d-page .nova-sv3-video-toggle { position: absolute; right: 16px; bottom: 16px; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.82); border-radius: 50%; background: rgba(34, 31, 35, 0.28); color: #fff; cursor: pointer; transition: background-color 180ms ease, transform 140ms cubic-bezier(0.23, 1, 0.32, 1); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.nova-3d-page .nova-sv3-video-toggle:active { transform: scale(0.96); }
.nova-3d-page .nova-sv3-icon-pause,
.nova-3d-page .nova-sv3-icon-play { position: absolute; inset: 0; align-items: center; justify-content: center; }
.nova-3d-page .nova-sv3-icon-pause { gap: 5px; display: flex; }
.nova-3d-page .nova-sv3-icon-pause i { width: 2px; height: 15px; background: currentColor; display: block; }
.nova-3d-page .nova-sv3-icon-play { display: none; }
.nova-3d-page .nova-sv3-icon-play::before { width: 0; height: 0; margin-left: 3px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid currentColor; content: ""; }
.nova-3d-page .nova-sv3-video-toggle[data-state="paused"] .nova-sv3-icon-pause { display: none; }
.nova-3d-page .nova-sv3-video-toggle[data-state="paused"] .nova-sv3-icon-play { display: flex; }

.nova-3d-cta { padding: clamp(72px, 8vw, 112px) var(--nova-gutter); background: #fff; }
.nova-3d-cta__panel { max-width: var(--nova-container); min-height: 470px; overflow: hidden; border: 1px solid #e1dce2; background: #fff; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr); }
.nova-3d-cta__lead,
.nova-3d-cta__detail { align-self: center; padding: clamp(58px, 6vw, 82px); }
.nova-3d-cta__lead { position: relative; isolation: isolate; align-self: stretch; overflow: hidden; background: #625b6a; color: #fbf8f4; }
.nova-3d-cta__lead::before { position: absolute; z-index: -1; right: -18%; bottom: -26%; width: 84%; height: 94%; background: url("../images/phase2/services/service-cad-shadow-v2.png") center / contain no-repeat; filter: grayscale(1) brightness(2.6); opacity: 0.065; content: ""; pointer-events: none; }
.nova-3d-cta__lead .nova-eyebrow,
.nova-3d-cta__lead h2,
.nova-3d-cta__lead p { color: inherit; }
.nova-3d-cta__lead .nova-eyebrow { opacity: 0.72; }
.nova-3d-cta h2 { max-width: 13ch; margin: 0 0 24px; font-size: clamp(3.2rem, 4.35vw, 4.55rem); line-height: 0.97; letter-spacing: -0.035em; }
.nova-3d-cta__lead > p:not(.nova-eyebrow) { max-width: 510px; margin: 0 0 32px; color: rgba(251, 248, 244, 0.78); font-size: 0.92rem; line-height: 1.76; }
.nova-3d-cta__detail-title { max-width: 13ch; margin: 0 0 30px; color: var(--nova-color-text); font-family: var(--nova-font-heading); font-size: clamp(2.25rem, 2.9vw, 3rem); line-height: 1.08; letter-spacing: -0.025em; }
.nova-3d-cta__detail ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 22px; }
.nova-3d-cta__detail li { position: relative; padding-left: 24px; color: #575159; font-size: 1.05rem; font-weight: 500; line-height: 1.5; }
.nova-3d-cta__detail li::before { position: absolute; top: 0.63em; left: 0; width: 10px; height: 2px; background: var(--nova-color-accent); content: ""; }
.nova-3d-cta .nova-button { border-color: #fbf8f4; background: #fbf8f4; color: #3d3840; transition: background-color 180ms ease, color 180ms ease, transform 140ms cubic-bezier(0.23, 1, 0.32, 1); }
.nova-3d-cta .nova-button:active { transform: scale(0.97); }

@media (hover: hover) and (pointer: fine) {
  .nova-3d-page .nova-sv3-video-toggle:hover { background: rgba(34, 31, 35, 0.56); }
  .nova-3d-cta .nova-button:hover { background: transparent; color: #fbf8f4; }
}

@media (max-width: 980px) {
  .nova-3d-hero__grid,
  .nova-3d-brief__grid,
  .nova-3d-development__grid,
  .nova-3d-decisions__heading,
  .nova-3d-handoff-section__grid { min-height: 0; gap: 36px; grid-template-columns: 1fr; }
  .nova-3d-hero__copy { max-width: none; padding: 50px var(--nova-gutter) 44px; }
  .nova-3d-hero__copy h1 { max-width: 13ch; margin-bottom: 22px; font-size: clamp(2.8rem, 11.4vw, 3.4rem); }
  .nova-3d-hero__visual { aspect-ratio: 3 / 2; }
  .nova-3d-brief,
  .nova-3d-development,
  .nova-3d-decisions,
  .nova-3d-handoff-section { padding-block: 62px; }
  .nova-3d-brief__visual { order: 2; }
  .nova-3d-brief__copy { max-width: none; order: 1; }
  .nova-3d-brief__copy h2,
  .nova-3d-development__copy h2,
  .nova-3d-decisions__heading h2,
  .nova-3d-handoff-section__copy h2 { max-width: none; font-size: clamp(2.5rem, 10.8vw, 3.1rem); }
  .nova-3d-development__copy,
  .nova-3d-handoff-section__copy { max-width: none; }
  .nova-3d-development__visual { margin-top: 4px; }
  .nova-3d-decisions__heading { margin-bottom: 38px; }
  .nova-3d-decisions__heading > p { max-width: none; }
  .nova-3d-decisions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nova-3d-handoff-section__media { order: 2; }
  .nova-3d-wax-video,
  .nova-3d-wax-detail { height: auto; }
  .nova-3d-wax-video { aspect-ratio: 4 / 3; }
  .nova-3d-wax-detail { aspect-ratio: 3 / 4; }
  .nova-3d-page .nova-sv3-video-toggle { right: 12px; bottom: 12px; width: 44px; height: 44px; }
}

@media (max-width: 900px) {
  .nova-3d-cta__panel { min-height: 0; gap: 0; grid-template-columns: 1fr; }
  .nova-3d-cta { padding: 0 0 72px; }
  .nova-3d-cta__lead::before { right: -34%; bottom: -20%; width: 118%; opacity: 0.055; }
  .nova-3d-cta__lead,
  .nova-3d-cta__detail { padding: 52px var(--nova-gutter); }
  .nova-3d-cta__detail { padding-block: 44px 48px; }
  .nova-3d-cta h2 { max-width: none; font-size: clamp(2.45rem, 10.4vw, 3.1rem); }
  .nova-3d-cta__detail-title { max-width: none; font-size: 2.2rem; }
}

@media (max-width: 620px) {
  .nova-3d-brief,
  .nova-3d-development,
  .nova-3d-decisions,
  .nova-3d-handoff-section { padding-block: 48px; }
  .nova-3d-brief__grid,
  .nova-3d-development__grid,
  .nova-3d-decisions__heading,
  .nova-3d-handoff-section__grid { gap: 28px; }
  .nova-3d-input-list,
  .nova-3d-decisions__grid { grid-template-columns: 1fr; }
  .nova-3d-decisions__grid { gap: 28px; }
  .nova-3d-input-list li { min-height: 0; }
  .nova-3d-review-points { gap: 20px; grid-template-columns: 1fr; }
  .nova-3d-decisions__grid article { min-height: 0; }
  .nova-3d-handoff-section__media { gap: 12px; grid-template-columns: minmax(0, 1fr) 108px; }
  .nova-3d-handoff { gap: 10px; grid-template-columns: 1fr; }
  .nova-3d-handoff li { align-items: baseline; display: grid; gap: 10px; grid-template-columns: 28px minmax(0, 1fr); }
  .nova-3d-handoff li span { margin: 0; }
  .nova-3d-development__visual figcaption,
  .nova-3d-wax-detail figcaption { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .nova-3d-page .nova-sv3-video-toggle,
  .nova-3d-cta .nova-button { transition: none; }
}
