/* =========================================================
   Nosso Céu · Home nova (conceito Noite Azul) · v1.0.0 · 19/10/2026
   Carregado só na página da home nova (functions.php: nc_is_new_home).
   Tudo fica dentro de .nc-home: o resto do site não muda.
   ========================================================= */

.nc-home {
	--nc-navy: #13244A;
	--nc-night: #0B1733;
	--nc-cream: #F6F2EA;
	--nc-paper: #FBF8F3;
	--nc-gold: #C9A45C;
	--nc-gold-ink: #8E6A26;
	--nc-ink: #1A1A22;
	--nc-muted: #4A4E5C;
	--nc-soft: #C9CEDC;
	--nc-line: #E7E0D3;
	--nc-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--nc-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--nc-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--nc-gutter: max(20px, 4vw);
	font-family: var(--nc-body);
	color: var(--nc-ink);
	background: var(--nc-paper);
}

/* O tema clássico embrulha o conteúdo de cada grupo num container extra: ele não pode quebrar grids e flex */
.nc-home .wp-block-group__inner-container {
	display: contents;
}

/* O tema limita cada bloco a 640px e soma margens entre blocos: aqui dentro, quem manda é este CSS */
.nc-home > *,
.nc-home :is(.is-layout-flow, .is-layout-constrained) > * {
	max-width: none !important;
	margin-block: 0 !important;
	margin-inline: 0 !important;
}

.nc-home :where(h1, h2, h3, p, figure, ul, details) {
	margin: 0;
}

.nc-home ::selection {
	background: rgba(201, 164, 92, 0.35);
}

.nc-home .nc-section {
	position: relative;
	padding: clamp(64px, 7vw, 96px) var(--nc-gutter);
	margin: 0 !important;
	max-width: none !important;
}

.nc-home .nc-inner {
	position: relative;
	max-width: 1200px !important;
	margin-inline: auto !important;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.nc-home .nc-h2 {
	font-family: var(--nc-display);
	font-weight: 600;
	font-size: clamp(36px, 4vw, 56px);
	line-height: 1.05;
	letter-spacing: -0.005em;
	color: var(--nc-navy);
	text-wrap: balance;
}

.nc-home .nc-sub {
	max-width: 620px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--nc-muted);
}

/* Botões */

.nc-home .wp-block-buttons.nc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.nc-home .wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border-radius: 999px;
	font: 700 16px/1.2 var(--nc-body);
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, background-color 0.2s ease-out;
}

.nc-home .wp-block-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 26px -12px rgba(11, 23, 51, 0.55);
}

.nc-home .wp-block-button .wp-block-button__link:focus-visible {
	outline: 2px solid var(--nc-gold);
	outline-offset: 3px;
}

.nc-home .nc-btn-light .wp-block-button__link {
	background: var(--nc-cream);
	color: var(--nc-navy);
}

.nc-home .nc-btn-ghost .wp-block-button__link {
	background: transparent;
	color: var(--nc-cream);
	border: 1.5px solid rgba(246, 242, 234, 0.6);
}

.nc-home .nc-btn-navy .wp-block-button__link {
	background: var(--nc-navy);
	color: var(--nc-cream);
}

/* O tema (blocks.css) pinta o texto do botão de branco ao passar o mouse, tocar ou focar.
   Aqui cada botão mantém as próprias cores nesses estados (no celular o toque deixava texto branco no botão creme). */
.nc-home .nc-btn-light .wp-block-button__link:is(:hover, :focus, :active, :visited) {
	background: var(--nc-cream);
	color: var(--nc-navy);
}

.nc-home .nc-btn-ghost .wp-block-button__link:is(:hover, :focus, :active, :visited) {
	background: rgba(246, 242, 234, 0.08);
	color: var(--nc-cream);
}

.nc-home .nc-btn-navy .wp-block-button__link:is(:hover, :focus, :active, :visited) {
	background: var(--nc-navy);
	color: var(--nc-cream);
}

/* Destaque (hero) */

.nc-home .nc-hero {
	--nc-dome: clamp(200px, min(19vw, 28vh), 300px);
	--nc-dome-top: 68px;
	background: var(--nc-night);
	color: var(--nc-cream);
	overflow: hidden;
	min-height: 720px;
	padding-top: calc(var(--nc-dome-top) + var(--nc-dome) * 1.054 + 28px);
	padding-bottom: clamp(56px, 6vw, 84px);
}

.nc-home .nc-hero-bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* Desktop: a cena inteira, com a parede azul do casal atrás do texto */
.nc-home .nc-hero-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 100% 50%;
}

.nc-home .nc-hero-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 23, 51, 0.72) 0%, rgba(11, 23, 51, 0.5) 32%, rgba(11, 23, 51, 0.12) 50%, rgba(11, 23, 51, 0) 62%);
}

/* Colar das Estrelas sendo gravado com o céu real de São Paulo (19/10/2026 21:30), pendurado na parede, acima do título */
.nc-home .nc-skymap {
	position: absolute;
	z-index: 1;
	left: var(--nc-gutter);
	top: var(--nc-dome-top);
	width: var(--nc-dome);
	height: auto;
	aspect-ratio: 1120 / 1180;
	overflow: visible;
	pointer-events: none;
	filter: drop-shadow(0 18px 30px rgba(0, 0, 0, 0.45));
}

.nc-home .nc-skymap .chain .ring { fill: none; stroke: #E6C887; stroke-width: 4.5; }
.nc-home .nc-skymap .chain .edge-link { fill: none; stroke: #B8914A; stroke-width: 6; stroke-linecap: round; }
.nc-home .nc-skymap .bail ellipse,
.nc-home .nc-skymap .bail path { fill: none; stroke: #C9A45C; stroke-width: 16; stroke-linecap: round; }
.nc-home .nc-skymap .disc { fill: url(#nc-gold); }
.nc-home .nc-skymap .glow { fill: url(#nc-glow); }
.nc-home .nc-skymap .bevel { fill: none; stroke: #FFF3D2; stroke-opacity: 0.55; stroke-width: 4; }
.nc-home .nc-skymap .edge { fill: none; stroke: #8E6A26; stroke-width: 6; }
/* Gravação como no colar real: metal sobre metal, linhas finas e claras com um sulco levemente mais escuro */
.nc-home .nc-skymap .frost { fill: #000000; opacity: 0.35; }
.nc-home .nc-skymap .mw path { fill: #FFF4D6; fill-opacity: 0.1; }
.nc-home .nc-skymap .grid path { fill: none; stroke: #FFF1CC; stroke-opacity: 0.6; stroke-width: 2.4; stroke-dasharray: 1; stroke-dashoffset: 1; }
.nc-home .nc-skymap :is(.s1, .s2, .s3, .cv) path { fill: none; stroke: #FFF3D6; stroke-linecap: round; }
.nc-home .nc-skymap :is(.cl, .clg) path {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}
.nc-home .nc-skymap .cl path { stroke: #FFF3D6; stroke-width: 3.6; }
.nc-home .nc-skymap .clg path { stroke: #6E5020; stroke-opacity: 0.5; stroke-width: 5.5; }

/* Legenda: de quando é o céu gravado */
.nc-home .nc-sky-cap {
	position: absolute;
	z-index: 1;
	left: calc(var(--nc-gutter) + var(--nc-dome) + 18px);
	top: calc(var(--nc-dome-top) + var(--nc-dome) * 0.8);
	width: 250px;
	margin: 0 !important;
	font: 500 13px/1.45 var(--nc-body);
	color: var(--nc-soft);
	text-shadow: 0 1px 10px rgba(11, 23, 51, 0.9);
	animation: ncFade 1.2s ease-out 3s both;
}

.nc-home .nc-sky-cap strong {
	display: block;
	font: 600 19px/1.2 var(--nc-display);
	color: var(--nc-cream);
}

.nc-home .nc-sky-loc {
	display: inline-block;
	margin: 2px 0 0 -6px;
	padding: 8px 6px;
	border: 0;
	background: none;
	font: 600 13px/1.3 var(--nc-body);
	letter-spacing: normal;
	text-transform: none;
	box-shadow: none;
	color: var(--nc-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.nc-home .nc-sky-loc:is(:hover, :focus, :active) {
	background: none;
	color: var(--nc-cream);
}

.nc-home .nc-sky-loc[hidden] {
	display: none;
}

.nc-home .nc-sky-loc:disabled {
	color: var(--nc-soft);
	text-decoration: none;
	cursor: default;
}

.nc-home .nc-sky-loc:focus-visible {
	outline: 2px solid var(--nc-gold);
	outline-offset: 2px;
}

.nc-home .nc-hero .nc-h1,
.nc-home .nc-hero .nc-lede {
	text-shadow: 0 2px 22px rgba(11, 23, 51, 0.85);
}

.nc-home .nc-hero-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #0B1733 0%, #0B1733 36%, rgba(11, 23, 51, 0.7) 46%, rgba(11, 23, 51, 0.1) 70%, rgba(11, 23, 51, 0) 100%);
}

.nc-home .nc-sky {
	position: absolute;
	left: max(8px, 3vw);
	top: 16px;
	width: min(560px, 44vw);
	height: auto;
	overflow: hidden;
}

.nc-home .nc-hero .nc-inner {
	gap: 24px;
	margin-left: 0 !important;
}

.nc-home .nc-hero .nc-inner > *,
.nc-home .nc-hero .nc-inner > .wp-block-group__inner-container > * {
	max-width: 480px !important;
}

.nc-home .nc-h1 {
	font-family: var(--nc-display);
	font-weight: 600;
	font-size: clamp(44px, 4.5vw, 64px);
	line-height: 1.02;
	letter-spacing: -0.01em;
	color: var(--nc-cream);
	text-wrap: balance;
}

/* Palavra-chave do H1 em selo pequeno acima da frase (o Google lê o H1 inteiro) */
.nc-home .nc-h1 .nc-h1-kw {
	display: block;
	margin-bottom: 14px;
	font-family: var(--nc-body);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nc-gold);
	text-shadow: none;
}

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

.nc-home .nc-lede {
	font-size: 19px;
	line-height: 1.6;
	color: #D9DCE6;
}

.nc-home .nc-proof {
	font-size: 15px;
	line-height: 1.5;
	color: var(--nc-soft);
}

.nc-home .nc-proof strong {
	color: var(--nc-cream);
}

.nc-home .nc-proof .nc-nw {
	white-space: nowrap;
}

.nc-home .nc-proof .nc-nw + .nc-nw::before {
	content: "·";
	margin: 0 8px 0 4px;
	color: var(--nc-soft);
}

.nc-home .nc-stars {
	margin-right: 4px;
	color: var(--nc-gold);
	letter-spacing: 2px;
}

/* Reações reais: vídeos só carregam quando a pessoa toca */

.nc-home .nc-react-sec {
	background: var(--nc-night);
}

.nc-home .nc-react-sec .nc-h2 {
	color: var(--nc-cream);
}

.nc-home .nc-react-sec .nc-sub {
	color: var(--nc-soft);
}

.nc-home .nc-reacts {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 16px;
}

.nc-home .nc-react {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.nc-home .nc-react-play {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 9 / 16;
	border-radius: 16px;
	background: #000;
	box-shadow: 0 0 0 1px rgba(201, 164, 92, 0.25);
}

.nc-home .nc-react-play img,
.nc-home .nc-react-play video {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.nc-home .nc-react-play video {
	object-fit: contain;
	background: #000;
}

.nc-home .nc-react-play img {
	transition: transform 0.8s var(--nc-ease), opacity 0.3s ease-out;
}

.nc-home .nc-react-play:hover img {
	transform: scale(1.04);
}

.nc-home .nc-react-icon {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 56px;
	height: 56px;
	translate: -50% -50%;
	border-radius: 50%;
	background: rgba(246, 242, 234, 0.92);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
	transition: scale 0.2s ease-out;
}

.nc-home .nc-react-icon::after {
	content: "";
	position: absolute;
	left: 22px;
	top: 17px;
	border-style: solid;
	border-width: 11px 0 11px 17px;
	border-color: transparent transparent transparent var(--nc-night);
}

.nc-home .nc-react-play:hover .nc-react-icon,
.nc-home .nc-react-play:focus-visible .nc-react-icon {
	scale: 1.08;
}

.nc-home .nc-react-play:focus-visible {
	outline: 2px solid var(--nc-gold);
	outline-offset: 3px;
}

.nc-home .nc-react figcaption {
	margin: 0 !important;
	font-family: var(--nc-display);
	font-weight: 600;
	font-size: 20px;
	line-height: 1.15;
	color: var(--nc-cream);
	text-align: left;
}

.nc-home .nc-react figcaption span {
	display: block;
	margin-top: 2px;
	font: 500 13px/1.3 var(--nc-body);
	color: var(--nc-soft);
}

@media (max-width: 1100px) {
	.nc-home .nc-reacts {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin-inline: calc(-1 * var(--nc-gutter)) !important;
		padding: 0 var(--nc-gutter) 8px;
		scroll-padding-inline: var(--nc-gutter);
		scrollbar-width: none;
	}
	.nc-home .nc-reacts::-webkit-scrollbar {
		display: none;
	}
	.nc-home .nc-react {
		flex: 0 0 clamp(150px, 40vw, 220px);
		scroll-snap-align: start;
	}
}

/* Como funciona */

.nc-home .nc-steps-sec {
	background: var(--nc-cream);
}

.nc-home .nc-steps-sec .nc-h2,
.nc-home .nc-steps-sec .nc-sub {
	text-align: center;
	margin-inline: auto !important;
}

.nc-home .nc-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
	max-width: 1080px !important;
	margin-inline: auto !important;
}

@media (max-width: 760px) {
	.nc-home .nc-steps {
		grid-template-columns: 1fr;
	}
}

.nc-home .nc-step {
	background: var(--nc-paper);
	border: 1px solid var(--nc-line);
	border-radius: 18px;
	padding: 30px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nc-home .nc-step p.nc-step-n {
	font-family: var(--nc-display);
	font-size: 44px;
	line-height: 1;
	color: var(--nc-gold-ink);
}

.nc-home .nc-step h3 {
	font: 700 20px/1.3 var(--nc-body);
	color: var(--nc-navy);
}

.nc-home .nc-step p {
	font-size: 16px;
	line-height: 1.6;
	color: var(--nc-muted);
}

/* Modelos */

.nc-home .nc-models-sec {
	background: var(--nc-paper);
}

.nc-home .nc-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 24px;
}

.nc-home .nc-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: translate 0.4s var(--nc-ease);
}

.nc-home .nc-card:hover {
	translate: 0 -6px;
}

.nc-home .nc-card .wp-block-image {
	overflow: hidden;
	border-radius: 14px;
	background: #EFE9DF;
}

.nc-home .nc-card .wp-block-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 0.7s var(--nc-ease);
}

.nc-home .nc-card:hover .wp-block-image img {
	transform: scale(1.05);
}

.nc-home .nc-card h3 {
	font-family: var(--nc-display);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.1;
}

.nc-home .nc-card h3 a {
	color: var(--nc-navy);
	text-decoration: none;
}

.nc-home .nc-card h3 a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 1px;
}

.nc-home .nc-card p {
	font-size: 15px;
	line-height: 1.55;
	color: var(--nc-muted);
}

.nc-home .nc-card .nc-price {
	font-size: 14px;
	font-weight: 600;
	color: var(--nc-navy);
}

.nc-home .nc-joia {
	display: flex;
	flex-wrap: wrap;
	border-radius: 22px;
	overflow: hidden;
	background: var(--nc-navy);
	color: var(--nc-cream);
	margin-top: 24px !important;
}

.nc-home .nc-joia .wp-block-image {
	flex: 1 1 340px;
	min-height: 360px;
}

.nc-home .nc-joia .wp-block-image img {
	width: 100%;
	height: 100%;
	max-height: 560px;
	object-fit: cover;
	display: block;
}

.nc-home .nc-joia-body {
	flex: 1 1 420px;
	padding: clamp(32px, 5vw, 64px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 18px;
}

.nc-home .nc-joia-body .nc-h2 {
	color: var(--nc-cream);
}

.nc-home .nc-joia-body p {
	font-size: 17px;
	line-height: 1.6;
	color: var(--nc-soft);
}

/* Histórias */

.nc-home .nc-stories-sec {
	background: var(--nc-cream);
}

/* Presente e qualidade */

.nc-home .nc-gift {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: clamp(32px, 5vw, 56px);
	align-items: center;
}

.nc-home .nc-gift-photos {
	flex: 1 1 360px;
	max-width: 560px !important;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.nc-home .nc-gift-photos .wp-block-image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 14px;
}

.nc-home .nc-gift-copy {
	flex: 1 1 420px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.nc-home .nc-gift-copy > p,
.nc-home .nc-gift-copy > .wp-block-group__inner-container > p {
	font-size: 17px;
	line-height: 1.6;
	color: var(--nc-muted);
}

.nc-home .nc-quality {
	list-style: none;
	padding: 22px 0 0 !important;
	border-top: 1px solid #DCD2C0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nc-home .nc-quality li {
	position: relative;
	padding-left: 28px;
	font-size: 16px;
	line-height: 1.5;
	color: #2A2D38;
}

.nc-home .nc-quality li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 4px;
	width: 14px;
	height: 14px;
	background: var(--nc-gold);
	clip-path: polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%);
}

/* Perguntas */

.nc-home .nc-faq-sec .nc-inner {
	max-width: 820px !important;
}

.nc-home .nc-faq-sec .nc-h2 {
	text-align: center;
}

.nc-home .wp-block-details {
	border-bottom: 1px solid #E2D9C8;
	padding: 20px 0;
}

.nc-home .wp-block-details:first-of-type {
	border-top: 1px solid #E2D9C8;
}

.nc-home .wp-block-details summary {
	cursor: pointer;
	font-size: 18px;
	font-weight: 600;
	color: var(--nc-navy);
}

.nc-home .wp-block-details summary:focus-visible {
	outline: 2px solid var(--nc-gold);
	outline-offset: 4px;
}

.nc-home .wp-block-details p {
	margin-top: 12px !important;
	font-size: 16px;
	line-height: 1.6;
	color: var(--nc-muted);
}

/* Chamada final */

.nc-home .nc-final {
	background: var(--nc-night);
	color: var(--nc-cream);
	overflow: hidden;
	text-align: center;
	padding-top: clamp(96px, 12vw, 160px);
	padding-bottom: clamp(96px, 12vw, 160px);
}

.nc-home .nc-final .nc-inner {
	align-items: center;
	max-width: 760px !important;
}

.nc-home .nc-final-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 60%;
}

.nc-home .nc-final-scrim {
	position: absolute;
	inset: 0;
	background: rgba(11, 23, 51, 0.45);
}

.nc-home .nc-final .nc-h2 {
	color: var(--nc-cream);
	font-size: clamp(40px, 5vw, 68px);
}

.nc-home .nc-final .wp-block-buttons {
	justify-content: center;
}

.nc-home .nc-final p {
	font-size: 14px;
	color: #D9DCE6;
}

/* Faixa de provas */

.nc-home .nc-section.nc-strip {
	background: var(--nc-navy);
	color: var(--nc-soft);
	padding-top: 22px;
	padding-bottom: 22px;
}

.nc-home .nc-strip-row {
	flex-direction: row !important;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 32px !important;
}

.nc-home .nc-strip-row p {
	font-size: 15px;
	line-height: 1.4;
	color: var(--nc-soft);
}

.nc-home .nc-strip-row strong {
	color: var(--nc-cream);
	font-weight: 700;
}

/* Para cada momento */

.nc-home .nc-occ-sec {
	background: var(--nc-cream);
}

.nc-home .nc-occ {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.nc-home .nc-occ-item {
	position: relative;
	overflow: hidden;
	border-radius: 18px;
	background: #E8E0D2;
}

.nc-home .nc-occ-item a {
	display: block;
}

.nc-home .nc-occ-item img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 0.8s var(--nc-ease);
}

.nc-home .nc-occ-item:hover img {
	transform: scale(1.05);
}

.nc-home .nc-occ-item figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 !important;
	padding: 60px 22px 20px;
	background: linear-gradient(180deg, rgba(11, 23, 51, 0) 0%, rgba(11, 23, 51, 0.82) 100%);
	font-family: var(--nc-display);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.1;
	color: var(--nc-cream);
	text-align: left;
	pointer-events: none;
}

/* Movimento: entrada do destaque */

/* Foto e título entram só com movimento, sem esmaecer: assim aparecem já na primeira pintura (LCP) */
@keyframes ncZoomIn { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes ncRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes ncLift { from { transform: translateY(14px); } to { transform: none; } }
@keyframes ncFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ncDraw { from { stroke-dashoffset: 400; } to { stroke-dashoffset: 0; } }
@keyframes ncPop { from { opacity: 0; transform: scale(0.2); } to { opacity: 1; transform: scale(1); } }
@keyframes ncTwinkle { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }
@keyframes ncReveal { from { opacity: 0.25; transform: translateY(28px); } to { opacity: 1; transform: none; } }

@keyframes ncDrift { from { transform: scale(1) translate3d(0, 0, 0); } to { transform: scale(1.06) translate3d(-1.2%, -1%, 0); } }
.nc-home .nc-hero-photo { animation: ncZoomIn 2s var(--nc-ease) 0.1s both, ncDrift 24s ease-in-out 2.1s infinite alternate; }
.nc-home .nc-sky .line { stroke-dasharray: 400; animation: ncDraw 1.4s cubic-bezier(0.65, 0, 0.35, 1) both; }
.nc-home .nc-sky .star { transform-box: fill-box; transform-origin: center; animation: ncPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.nc-home .nc-sky .tw { animation: ncTwinkle 3.4s ease-in-out infinite; }
.nc-home .nc-hero .nc-h1 { animation: ncLift 0.9s var(--nc-ease) both; }
.nc-home .nc-hero .nc-lede { animation: ncRise 0.8s var(--nc-ease) 0.2s both; }
.nc-home .nc-hero .nc-actions { animation: ncRise 0.8s var(--nc-ease) 0.35s both; }
.nc-home .nc-hero .nc-proof { animation: ncFade 1s ease-out 0.5s both; }

/* Movimento: o céu se desenha (estrelas acendem, constelações se ligam) e gira devagar */
@keyframes ncDrawLine { to { stroke-dashoffset: 0; } }
@keyframes ncSpin { to { transform: rotate(360deg); } }
/* Movimento: o pingente aparece, o laser grava a grade, as estrelas e as constelações; depois um brilho passa no metal */
@keyframes ncShine { 0% { transform: translateX(0); } 22%, 100% { transform: translateX(1800px); } }
.nc-home .nc-skymap { animation: ncFade 1s ease-out 0.2s both; }
.nc-home .nc-skymap .grid path { animation: ncDrawLine 1.4s cubic-bezier(0.65, 0, 0.35, 1) 0.7s forwards; }
.nc-home .nc-skymap .frost { animation: ncFade 1.4s ease-out 0.9s both; }
.nc-home .nc-skymap .mw { animation: ncFade 1.4s ease-out 1.1s both; }
.nc-home .nc-skymap .s1 { animation: ncFade 0.9s ease-out 1.2s both; }
.nc-home .nc-skymap .s2 { animation: ncFade 1.2s ease-out 1.5s both; }
.nc-home .nc-skymap .s3 { animation: ncFade 1.6s ease-out 1.8s both; }
.nc-home .nc-skymap .cv { animation: ncFade 1.2s ease-out 3.2s both; }
.nc-home .nc-skymap .shine { animation: ncShine 9s ease-in-out 5.6s infinite; }
.nc-home .nc-skymap .tw { animation: ncTwinkle 3.4s ease-in-out infinite; }
.nc-home .nc-skymap :is(.cl, .clg) path { animation: ncDrawLine 1.6s cubic-bezier(0.65, 0, 0.35, 1) forwards; }

/* Movimento: seções sobem ao rolar (navegadores com scroll-driven animations) */

@supports (animation-timeline: view()) {
	.nc-home .nc-reveal,
	.nc-home .nc-step,
	.nc-home .nc-card,
	.nc-home .nc-occ-item {
		animation: ncReveal linear both;
		animation-timeline: view();
		animation-range: entry 0% cover 30%;
	}
	.nc-home .nc-step:nth-child(2),
	.nc-home .nc-card:nth-child(2) { animation-range: entry 5% cover 36%; }
	.nc-home .nc-step:nth-child(3),
	.nc-home .nc-card:nth-child(3) { animation-range: entry 10% cover 42%; }
	.nc-home .nc-card:nth-child(4) { animation-range: entry 15% cover 48%; }
	.nc-home .nc-occ-item:nth-child(3n+2) { animation-range: entry 5% cover 36%; }
	.nc-home .nc-occ-item:nth-child(3n) { animation-range: entry 10% cover 42%; }
}

/* Tablet / notebook pequeno: texto mais estreito e foto mais larga, para o título não cobrir o quadro */
@media (min-width: 641px) and (max-width: 1300px) {
	.nc-home .nc-hero .nc-inner > *,
	.nc-home .nc-hero .nc-inner > .wp-block-group__inner-container > * {
		max-width: min(530px, 40vw) !important;
	}
	.nc-home .nc-h1 {
		font-size: clamp(36px, 4.6vw, 56px);
	}
	.nc-home .nc-hero {
		--nc-dome: 200px;
	}
	.nc-home .nc-hero-photo {
		inset: 0 0 0 auto;
		width: 62%;
		object-position: 28% 45%;
		-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 16%);
		mask-image: linear-gradient(90deg, transparent 0%, #000 16%);
	}
	.nc-home .nc-hero-bg::after {
		display: none;
	}
}

@media (max-width: 640px) {
	/* Celular: a foto com o quadro vem primeiro; o céu entra pequeno, como selo */
	.nc-home .nc-hero {
		--nc-photo: min(340px, 90vw);
		--nc-dome: 150px;
		min-height: 0;
		padding-top: calc(var(--nc-photo) + 24px);
		padding-bottom: 56px;
	}
	.nc-home .nc-hero-photo {
		inset: 0 0 auto 0;
		width: 100%;
		height: var(--nc-photo);
		object-position: 50% 40%;
		-webkit-mask-image: linear-gradient(180deg, #000 74%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 74%, transparent 100%);
	}
	.nc-home .nc-hero-bg::after {
		display: none;
	}
	.nc-home .nc-skymap {
		left: auto;
		right: 12px;
		top: calc(var(--nc-photo) - 136px);
	}
	.nc-home .nc-skymap .chain { display: none; }
	.nc-home .nc-skymap .cl path { stroke-width: 6; }
	.nc-home .nc-skymap .clg path { stroke-width: 8; }
	.nc-home .nc-skymap .cv path { stroke-width: 14; }
	.nc-home .nc-skymap .grid path { stroke-width: 4; }
	.nc-home .nc-skymap .edge { stroke-width: 10; }
	.nc-home .nc-sky-cap {
		left: var(--nc-gutter);
		top: calc(var(--nc-photo) - 74px);
		width: calc(100% - var(--nc-dome) - 2 * var(--nc-gutter) - 8px);
		font-size: 12px;
	}
	.nc-home .nc-sky-loc {
		font-size: 12px;
	}
	.nc-home .nc-sky-cap strong {
		font-size: 16px;
	}
	.nc-home .nc-hero .nc-h1 { order: 1; }
	.nc-home .nc-hero .nc-actions { order: 2; }
	.nc-home .nc-hero .nc-proof { order: 3; }
	.nc-home .nc-hero .nc-lede { order: 4; }
	.nc-home .nc-hero-scrim {
		background: linear-gradient(180deg, #0B1733 0%, #0B1733 calc(100% - 340px), rgba(11, 23, 51, 0) calc(100% - 200px));
	}
	.nc-home .nc-lede {
		font-size: 17px;
	}
	.nc-home .wp-block-buttons.nc-actions > .wp-block-button {
		flex: 1 1 100%;
	}
	.nc-home .wp-block-buttons.nc-actions .wp-block-button__link {
		width: 100%;
	}
	.nc-home .nc-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}
	.nc-home .nc-card h3 {
		font-size: 22px;
	}
	.nc-home .nc-card p:not(.nc-price) {
		display: none;
	}
	.nc-home .nc-occ {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.nc-home .nc-occ-item figcaption {
		font-size: 20px;
		padding: 40px 14px 12px;
	}
	.nc-home .nc-strip-row {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.nc-home .nc-strip-row p {
		font-size: 13px;
	}
}

/* Quem pede menos movimento no sistema (ex.: "Efeitos de animação" desligado no Windows)
   continua vendo esmaecimentos suaves e as constelações sendo desenhadas, sem deslocamentos nem zoom. */
@keyframes ncFadeSoft { from { opacity: 0.25; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
	.nc-home .nc-hero-photo { animation: none; }
	.nc-home .nc-hero .nc-h1 { animation: none; }
	.nc-home .nc-hero .nc-lede,
	.nc-home .nc-hero .nc-actions { animation-name: ncFade; }
	.nc-home .nc-sky .star { animation-name: ncFade; }
	.nc-home .nc-skymap { animation: ncFade 1.4s ease-out both; }
	.nc-home .nc-skymap .shine { animation: none; }
	.nc-home .nc-reveal,
	.nc-home .nc-step,
	.nc-home .nc-card,
	.nc-home .nc-occ-item { animation-name: ncFadeSoft; }
	.nc-home .nc-card:hover { translate: none; }
	.nc-home .nc-card:hover .wp-block-image img,
	.nc-home .nc-occ-item:hover img,
	.nc-home .wp-block-button .wp-block-button__link:hover { transform: none; }
}

/* ---------------------------------------------------------
   Páginas por ocasião (.nc-lp): mesmo sistema da home.
   Destaque em duas colunas (texto e uma foto real em retrato); no celular a foto vem primeiro,
   mais baixa, para o título e o botão aparecerem logo.
   --------------------------------------------------------- */

.nc-home .nc-lp-hero {
	background: var(--nc-night);
	color: var(--nc-cream);
	padding-top: clamp(40px, 6vw, 88px);
	padding-bottom: clamp(48px, 6vw, 96px);
}

.nc-home .nc-lp-hero-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	align-items: center;
	gap: clamp(28px, 5vw, 72px);
}

.nc-home .nc-lp-hero-text {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.nc-home .nc-lp-hero .nc-h1 .nc-h1-kw {
	margin-bottom: 12px;
}

.nc-home .nc-lp-photo {
	margin: 0;
}

.nc-home .nc-lp-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 20px;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.65);
}

.nc-home .nc-lp-hero .nc-h1 { animation: ncLift 0.9s var(--nc-ease) both; }
.nc-home .nc-lp-hero .nc-lede { animation: ncRise 0.8s var(--nc-ease) 0.15s both; }
.nc-home .nc-lp-hero .nc-actions { animation: ncRise 0.8s var(--nc-ease) 0.3s both; }

@media (max-width: 860px) {
	.nc-home .nc-lp-hero-row {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.nc-home .nc-lp-photo {
		order: -1;
	}
	.nc-home .nc-lp-photo img {
		aspect-ratio: 4 / 3;
		object-position: 50% 35%;
	}
	.nc-home .nc-lp-hero .wp-block-buttons.nc-actions > .wp-block-button {
		flex: 1 1 100%;
	}
	.nc-home .nc-lp-hero .wp-block-buttons.nc-actions .wp-block-button__link {
		width: 100%;
	}
}

/* Passos sem número: só título e texto */
.nc-home.nc-lp .nc-step h3 {
	font-family: var(--nc-display);
	font-weight: 600;
	font-size: 26px;
	line-height: 1.15;
}

/* Vídeos: poucos por página, alinhados à esquerda com largura fixa */
.nc-home.nc-lp .nc-reacts {
	grid-template-columns: repeat(auto-fill, minmax(180px, 230px));
}

/* Avaliações reais */
.nc-home .nc-lp-quotes-sec {
	background: var(--nc-paper);
}

.nc-home .nc-lp-quotes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}

.nc-home .nc-lp-quote {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 28px;
	background: #fff;
	border: 1px solid var(--nc-line);
	border-radius: 18px;
}

.nc-home .nc-lp-quote p {
	font-size: 17px;
	line-height: 1.6;
	color: var(--nc-ink);
}

.nc-home .nc-lp-quote .nc-stars {
	color: var(--nc-gold);
	letter-spacing: 0.12em;
}

.nc-home .nc-lp-quote cite {
	margin-top: auto;
	font: 600 14px/1.3 var(--nc-body);
	font-style: normal;
	color: var(--nc-muted);
}

/* Ideias de frase */
.nc-home .nc-lp-frases-sec {
	background: var(--nc-cream);
}

.nc-home .nc-lp-frases {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.nc-home .nc-lp-frases li {
	margin: 0 !important;
	padding: 22px 24px;
	background: var(--nc-paper);
	border: 1px solid var(--nc-line);
	border-radius: 16px;
	font-family: var(--nc-display);
	font-size: 23px;
	font-style: italic;
	line-height: 1.25;
	color: var(--nc-navy);
}

/* Links de texto nas páginas por ocasião */
.nc-home.nc-lp :is(.nc-sub, .wp-block-details p, .nc-lp-more) a {
	color: var(--nc-navy);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--nc-gold);
	text-underline-offset: 0.2em;
}

.nc-home.nc-lp .nc-final .nc-lp-more a {
	color: var(--nc-cream);
}

/* Celular: como na home, os botões sobem logo depois do título */
@media (max-width: 860px) {
	.nc-home .nc-lp-hero .nc-h1 { order: 1; }
	.nc-home .nc-lp-hero .nc-actions { order: 2; }
	.nc-home .nc-lp-hero .nc-proof { order: 3; }
	.nc-home .nc-lp-hero .nc-lede { order: 4; font-size: 17px; }
	.nc-home .nc-lp-hero .nc-h1 { font-size: clamp(34px, 9vw, 44px); }
	.nc-home .nc-lp-photo img { aspect-ratio: 16 / 10; }
}
