/* Graver74 — new home, dark «laboratory» system. Loaded only by the closed preview (inc/preview.php). */

body.g74-v2 {
	--v2-bg: #0F1012;
	--v2-raised: #16181B;
	--v2-deep: #0A0B0C;
	--v2-surface: #1C1E22;
	--v2-line: #2B2E33;
	--v2-text: #ECEAE5;
	--v2-muted: #9C9FA5;
	--v2-warm: #D39A5B;
	--v2-warm-soft: rgba(211, 154, 91, 0.12);
	/* re-point the base theme tokens so shared parts (header, placeholders, FAQ) turn dark */
	--g74-paper: var(--v2-bg);
	--g74-ink: var(--v2-text);
	--g74-muted: var(--v2-muted);
	--g74-line: var(--v2-line);
	--wp--preset--color--base: var(--v2-bg);
	--wp--preset--color--contrast: var(--v2-text);
	background: var(--v2-bg);
	color: var(--v2-text);
	color-scheme: dark;
}
.g74-v2 :is(h1, h2, h3, h4) { color: var(--v2-text); }
.g74-v2 .entry-content a:not(.wp-block-button__link) { color: inherit; }

/* ---------- Header ---------- */
.g74-v2 .g74-header { background: rgba(15, 16, 18, 0.86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom-color: var(--v2-line); }
.g74-v2 .g74-header :is(.wp-block-site-title a, .g74-logo a, .wp-block-navigation-item__content) { color: var(--v2-text); }
.g74-v2 .g74-header__call { color: var(--v2-text); }
.g74-v2 .wp-block-navigation__responsive-container.is-menu-open { background: var(--v2-bg) !important; color: var(--v2-text) !important; }
.g74-v2 .g74-nav .is-menu-open .g74-nav__cta .wp-block-navigation-item__content { background: var(--v2-text); color: var(--v2-bg); }

/* ---------- Buttons ---------- */
.g74-v2 .wp-block-button:not(.is-style-outline):not(.is-style-text) .wp-block-button__link,
.g74-v2 .g74v2-form button { background: var(--v2-text); color: var(--v2-bg); border: 0; transition: background 0.2s ease; }
.g74-v2 .wp-block-button:not(.is-style-outline):not(.is-style-text) .wp-block-button__link:hover { background: #fff; }
.g74-v2 .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--v2-text); border: 1px solid rgba(236, 234, 229, 0.35); }
.g74-v2 .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--v2-warm); }
.g74-v2 .wp-block-button__link { white-space: normal; text-align: center; }

/* ---------- Sections ---------- */
.g74-section--v2-base { background: var(--v2-bg); }
.g74-section--v2-raised { background: var(--v2-raised); }
.g74-section--v2-deep { background: var(--v2-deep); }
.g74-section--v2-accent { background: radial-gradient(ellipse 70% 90% at 15% 0%, var(--v2-warm-soft), transparent 70%), var(--v2-deep); }
.g74-v2 .g74-label { color: var(--v2-warm); }
.g74-v2 .g74-lead { color: #B9BCC1; }
.g74-v2 .g74-num { color: var(--v2-warm); }

/* Placeholders on dark */
.g74-v2 .g74-ph { background: var(--v2-surface); position: relative; isolation: isolate; }
.g74-v2 .g74-ph .g74-ph__label { color: #6F7278; }
.g74-v2 .g74-ph::before { background: repeating-linear-gradient(0deg, transparent 0 39px, rgba(255,255,255,0.04) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(255,255,255,0.04) 39px 40px); }

/* ---------- Hero ---------- */
.g74v2-hero { padding-block: clamp(2rem, 5vw, 5rem) clamp(3rem, 7vw, 6.5rem); background: radial-gradient(ellipse 55% 70% at 85% 30%, rgba(211, 154, 91, 0.10), transparent 70%), var(--v2-bg); }
.g74v2-hero h1 { font-size: clamp(1.5rem, 1rem + 1.8vw, 2.5rem); line-height: 1.15; font-weight: 600; margin: 0 0 1rem; text-wrap: balance; }
.g74v2-brand { margin: 0 0 1.75rem; font-size: clamp(2.75rem, 1rem + 6.4vw, 6.75rem); line-height: 0.92; font-weight: 600; letter-spacing: -0.045em; text-transform: uppercase;
	background: linear-gradient(180deg, #F4EEE6 0%, #D8C3A7 55%, #A9784A 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.g74v2-hero .g74-lead { margin: 0 0 2.25rem; max-width: 34rem; }
.g74v2-hero .g74-hero__cta { gap: 1rem; }
.g74v2-hero__addr { margin: 1.5rem 0 0; font-size: 0.875rem; color: var(--v2-muted); }

/* ---------- Split ---------- */
.g74v2-split { gap: clamp(2rem, 5vw, 5rem) !important; align-items: center !important; }
.g74v2-split__text > *:first-child { margin-top: 0; }
.g74v2-note { color: var(--v2-muted); border-left: 2px solid var(--v2-warm); padding-left: 1rem; max-width: 36rem; }

/* ---------- Cards «Что будем гравировать?» ---------- */
.g74v2-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(0.75rem, 1.5vw, 1.25rem); }
.g74v2-cards > * { margin: 0 !important; }
.g74v2-card { background: var(--v2-raised); border: 1px solid var(--v2-line); display: flex; flex-direction: column; transition: border-color 0.2s ease, transform 0.2s ease; }
.g74v2-card:hover { border-color: rgba(211, 154, 91, 0.5); }
.g74v2-card > .g74-media { margin: 0; }
.g74v2-card h3 { margin: 1.1rem 1.25rem 0.4rem; font-size: 1.25rem; }
.g74v2-card__text { margin: 0 1.25rem 1.25rem; color: var(--v2-muted); font-size: 0.9375rem; }
.g74v2-card .g74-arrow { margin: auto 1.25rem 1.25rem; }
.g74v2-card--ask { justify-content: center; padding: 1.5rem 0.25rem; background: var(--v2-warm-soft); border-color: rgba(211, 154, 91, 0.45); }
.g74v2-card--ask .wp-block-buttons { margin: 0.5rem 1.25rem 0; }

/* ---------- Price, chips, lists ---------- */
.g74v2-price { display: inline-flex; flex-direction: column; border: 1px solid rgba(211, 154, 91, 0.5); padding: 1rem 1.25rem; margin-block: 1.5rem; }
.g74v2-price > p { margin: 0; }
.g74v2-price__label { font-size: 0.875rem; color: var(--v2-muted); }
.g74v2-price__value { font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); font-weight: 600; letter-spacing: -0.03em; line-height: 1.1; }
.g74v2-chips { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.g74v2-chips li { border: 1px solid var(--v2-line); padding: 0.45rem 0.9rem; font-size: 0.9375rem; border-radius: 999px; }
.g74-v2 .entry-content ul.wp-block-list:not(.g74v2-chips) { list-style: none; padding: 0; margin: 0 0 1.25rem; }
.g74-v2 .entry-content ul.wp-block-list:not(.g74v2-chips) > li { border-top: 1px solid var(--v2-line); padding: 0.65rem 0 0.65rem 1.25rem; position: relative; }
.g74-v2 .entry-content ul.wp-block-list:not(.g74v2-chips) > li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 6px; height: 6px; background: var(--v2-warm); }
.g74v2-lists { gap: 2rem !important; }
.g74v2-lists h3 { font-size: 1rem; color: var(--v2-muted) !important; font-weight: 600; margin: 0 0 0.5rem; }
.g74v2-pair { gap: clamp(2.5rem, 6vw, 6rem) !important; }

/* ---------- Cases ---------- */
.g74v2-cases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(0.75rem, 1.5vw, 1.25rem); }
.g74v2-cases > * { margin: 0 !important; }
.g74v2-case { background: var(--v2-raised); border: 1px solid var(--v2-line); }
.g74v2-case h3 { margin: 1.1rem 1.25rem 0.5rem; font-size: 1.125rem; }
.g74v2-case__facts { list-style: none; margin: 0 1.25rem 1.25rem; padding: 0; font-size: 0.875rem; }
.g74v2-case__facts li { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--v2-line); padding-block: 0.45rem; }
.g74v2-case__facts li span:first-child { color: var(--v2-muted); }

/* ---------- Lab ---------- */
.g74v2-lab__img { margin: 0 0 clamp(2rem, 4vw, 3rem); background: #000; }
.g74v2-lab__img img { display: block; width: 100%; height: auto; aspect-ratio: 1672 / 941; }
.g74v2-lab__quote { margin: 0; font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem); line-height: 1.2; letter-spacing: -0.02em; font-weight: 500; text-wrap: balance; }
.g74v2-lab__text { gap: clamp(2rem, 5vw, 5rem) !important; }

/* ---------- Steps ---------- */
.g74v2-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 2.5rem; }
.g74v2-steps > * { margin: 0 !important; }
.g74v2-step { border-top: 1px solid rgba(211, 154, 91, 0.5); padding-top: 1rem; }
.g74v2-step__text { margin: 0.5rem 0 0; font-size: 1.125rem; font-weight: 500; }

/* ---------- FAQ, contacts ---------- */
.g74-v2 .g74-faq { border-color: var(--v2-line); }
.g74v2-contacts { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.g74v2-contacts li { display: flex; flex-direction: column; gap: 0.25rem; border-top: 1px solid var(--v2-line); padding-top: 0.9rem; }
.g74v2-contacts__k { font-size: 0.8125rem; color: var(--v2-muted); letter-spacing: 0.06em; text-transform: uppercase; }
.g74v2-contacts a, .g74v2-contacts li > span:last-child { font-size: 1.125rem; }

/* ---------- Form «Показать изделие» ---------- */
.g74v2-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0 1.5rem; max-width: 60rem; }
.g74v2-form label { display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.875rem; color: var(--v2-muted); }
.g74v2-form__wide { grid-column: 1 / -1; }
.g74v2-form :is(input, select, textarea) { font: inherit; font-size: 16px; color: var(--v2-text); background: var(--v2-surface); border: 1px solid var(--v2-line); border-radius: 0; padding: 0.75rem 0.85rem; min-height: 48px; width: 100%; box-sizing: border-box; }
.g74v2-form :is(input, select, textarea):focus { outline: 2px solid var(--v2-warm); outline-offset: 1px; }
.g74v2-form input[type="file"] { padding: 0.6rem; }
.g74v2-form button { grid-column: 1; min-height: 48px; font: inherit; font-weight: 600; cursor: pointer; }
.g74v2-form button:disabled { opacity: 0.55; cursor: not-allowed; }
.g74v2-form__note { grid-column: 2 / -1; align-self: center; margin: 0; font-size: 0.8125rem; color: var(--v2-muted); }
.g74v2-final__alt { gap: 0.75rem 1.25rem; align-items: center; }

/* Reveal of cards/cases/steps: one source only — motion.js (data-m="card"). The former CSS view()-timeline
   animation on the same elements wrote a second transform and fought the reveal transition (removed in motion pass #2). */

/* ---------- Tablet ---------- */
@media (max-width: 1023px) {
	.g74v2-cards, .g74v2-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.g74v2-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.g74v2-contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.g74v2-split--rev { flex-direction: column; }
	.g74v2-hero .g74-media { max-height: 56vh; }
	.g74v2-lab__img { margin-inline: calc(-1 * var(--g74-gutter)); }
	.g74v2-form { grid-template-columns: 1fr; }
	.g74v2-form button, .g74v2-form__note { grid-column: 1; }
	.g74v2-hero .g74-hero__cta .wp-block-button { flex: 1 1 100%; }
	.g74v2-hero .g74-hero__cta .wp-block-button__link { width: 100%; }
}
@media (max-width: 599px) {
	.g74v2-cards { grid-template-columns: 1fr; gap: 0.5rem; }
	.g74v2-card:not(.g74v2-card--ask) { display: grid; grid-template-columns: 84px 1fr; grid-template-rows: auto auto; column-gap: 1rem; padding: 0.75rem; min-height: 84px; }
	.g74v2-card:not(.g74v2-card--ask) > .g74-media { grid-row: 1 / span 2; aspect-ratio: 1 / 1; padding: 0; }
	.g74v2-card:not(.g74v2-card--ask) > .g74-media .g74-ph__label { display: none; }
	.g74v2-card:not(.g74v2-card--ask) h3 { margin: 0.1rem 0 0.25rem; font-size: 1.0625rem; }
	.g74v2-card:not(.g74v2-card--ask) .g74v2-card__text { margin: 0; font-size: 0.875rem; }
	.g74v2-card:not(.g74v2-card--ask) .g74-arrow { grid-column: 2; margin: 0.25rem 0 0; }
	.g74v2-cases { grid-template-columns: 1fr; }
	.g74v2-steps { grid-template-columns: 1fr; }
	.g74v2-contacts { grid-template-columns: 1fr; }
}

/* ---------- Real photos (only rendered when the file exists) ---------- */
.g74v2-photo { margin: 0; overflow: hidden; background: var(--v2-surface); }
.g74v2-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.g74v2-photo--4-3 { aspect-ratio: 4 / 3; }
.g74v2-photo--3-4 { aspect-ratio: 3 / 4; max-height: 80vh; }
.g74v2-lab__text .g74v2-photo { margin-top: 1.75rem; }
.g74v2-pair .g74v2-photo { margin-top: 1.75rem; }

/* ---------- Text-only states (no photo yet) ---------- */
.g74v2-solo { max-width: 46rem; }
.g74v2-hero .g74v2-solo { max-width: 60rem; }
.g74v2-hero .g74v2-solo .g74v2-brand { font-size: clamp(3rem, 1rem + 8vw, 8.5rem); }
.g74v2-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g74v2-card { padding: 1.5rem 1.25rem 1.25rem; min-height: 13rem; }
.g74v2-card .g74-num { margin: 0 0 2.5rem; }
.g74v2-card h3 { margin: 0 0 0.5rem; }
.g74v2-card__text { margin: 0; }
.g74v2-card .g74-arrow { margin: auto 0 0; padding-top: 1rem; }
.g74v2-card--ask .wp-block-buttons { margin: 1rem 0 0; }
.g74v2-case h3 a { color: inherit; text-decoration: none; }
@media (max-width: 1023px) { .g74v2-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
	.g74v2-cards { grid-template-columns: 1fr; }
	.g74v2-card:not(.g74v2-card--ask) { display: flex; min-height: 0; padding: 1rem 1.1rem; }
	.g74v2-card .g74-num { margin-bottom: 0.75rem; }
}
.g74v2-pair .g74v2-photo { max-width: 26rem; }
.g74v2-split .g74v2-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 599px) { .g74v2-split .g74v2-steps { grid-template-columns: 1fr; } }
.g74v2-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.g74v2-form__consent { flex-direction: row !important; align-items: center; gap: 0.6rem !important; color: var(--v2-text) !important; }
.g74v2-form__consent input { width: 20px !important; min-height: 20px !important; height: 20px; padding: 0 !important; accent-color: var(--v2-warm); }
.g74v2-form__status { margin: 1.5rem 0 0; padding: 0.9rem 1.1rem; border: 1px solid var(--v2-line); max-width: 60rem; }
.g74v2-form__status--ok { border-color: rgba(120, 190, 130, 0.6); }
.g74v2-form__status--error, .g74v2-form__status--limit, .g74v2-form__status--off { border-color: rgba(220, 110, 90, 0.6); }
.g74v2-photo--16-9 { aspect-ratio: 16 / 9; }
.g74v2-case .g74v2-photo { margin: 0; }
.g74v2-cases { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1023px) { .g74v2-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .g74v2-cases { grid-template-columns: 1fr; } }
/* 8 directions + «Не нашли» = 9 cards → 3 columns on desktop */
@media (min-width: 1024px) { .g74v2-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.g74v2-split__media .g74v2-photo--3-4 { max-height: 78vh; }


/* =====================================================================
   Motion v2 — page direction (mobile first). Types: scene / title / label / text / media / card.
   Start states apply only under html.g74-motion (set by assets/js/motion.js), so nothing is hidden
   without JS or with prefers-reduced-motion.
   ===================================================================== */
:root { --e-out: cubic-bezier(.16, 1, .3, 1); --e-io: cubic-bezier(.65, 0, .35, 1); }
html { scroll-behavior: smooth; }

/* ---------- HERO: staged assembly on open ---------- */
/* v1.0.3: eyebrow reveal moves only opacity/transform — its geometry is final from the first paint (no re-wrapping, no page-height jump) */
@keyframes g74m-track { from { opacity: 0; transform: translate3d(-14px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes g74m-rise { from { opacity: 0; transform: translate3d(0, 34px, 0); } to { opacity: 1; transform: none; } }
@keyframes g74m-mask { from { clip-path: inset(0 0 100% 0); transform: translate3d(0, 40px, 0); } to { clip-path: inset(0 0 0 0); transform: none; } }
@keyframes g74m-shutter { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes g74m-settle { from { transform: scale(1.22); } to { transform: scale(1); } }
@keyframes g74m-scan { 0% { transform: translateY(-10%); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { transform: translateY(1000%); opacity: 0; } }
.g74-js .g74v2-hero .g74-label { animation: g74m-track 1.1s var(--e-out) .1s both; letter-spacing: .14em; }
.g74-js .g74v2-hero h1 { animation: g74m-rise 1s var(--e-out) .25s both; }
.g74-js .g74v2-hero .g74v2-brand { animation: g74m-mask 1.3s var(--e-out) .45s both; }
.g74-js .g74v2-hero .g74-lead { animation: g74m-rise 1s var(--e-out) .8s both; }
.g74-js .g74v2-hero .g74-hero__cta { animation: g74m-rise 1s var(--e-out) 1s both; }
.g74-js .g74v2-hero .g74v2-hero__addr { animation: g74m-rise 1s var(--e-out) 1.15s both; }

/* The approved lab photo opens as its own scene: shutter from the centre, settle from zoom, one laser scan line. */
.g74v2-hero__lab { position: relative; margin: 0; overflow: hidden; background: #000; }
.g74v2-hero__lab img { display: block; width: 100%; height: auto; aspect-ratio: 1672 / 941; }
.g74v2-hero__lab::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10%; pointer-events: none;
	background: linear-gradient(180deg, rgba(211,154,91,0) 0%, rgba(230,176,112,.55) 50%, rgba(211,154,91,0) 100%); opacity: 0; }
.g74-js .g74v2-hero__lab { animation: g74m-shutter 1.5s var(--e-io) 1.1s both; }
.g74-js .g74v2-hero__lab::after { animation: g74m-scan 1.8s ease-in-out 2.4s both; }
@media (max-width: 781px) {
	.g74v2-hero .g74v2-split__media { margin-inline: calc(-1 * var(--g74-gutter)); }
}

/* ---------- SCENES: each section «lights up» as it enters ---------- */
.g74-v2 .entry-content > section:not(.g74v2-hero) { position: relative; }
.g74-v2 .entry-content > section:not(.g74v2-hero) > * { position: relative; z-index: 1; }
.g74-v2 .entry-content > section:not(.g74v2-hero)::before { content: ""; position: absolute; z-index: 2; left: 0; right: 0; top: 0; height: 1px;
	background: linear-gradient(90deg, rgba(211,154,91,0), rgba(211,154,91,.85) 30%, rgba(211,154,91,.85) 70%, rgba(211,154,91,0)); transform: scaleX(1); }
.g74-v2 .entry-content > section:not(.g74v2-hero)::after { content: ""; position: absolute; z-index: 0; inset: 0; pointer-events: none;
	background: radial-gradient(ellipse 80% 55% at 50% 0%, rgba(211,154,91,.09), transparent 70%); opacity: 1; }
.g74-motion .entry-content > section:not(.g74v2-hero):not(.is-in)::before { transform: scaleX(0); }
.g74-motion .entry-content > section:not(.g74v2-hero):not(.is-in)::after { opacity: 0; }
.g74-motion .entry-content > section:not(.g74v2-hero)::before { transition: transform 1.4s var(--e-io); }
.g74-motion .entry-content > section:not(.g74v2-hero)::after { transition: opacity 1.6s ease .2s; }

/* ---------- Parallax base: the inner image is moved/scaled by motion.js every frame (see B. in motion.js) ---------- */
.g74-px { overflow: hidden; }
.g74-px img { will-change: transform; transform-origin: 50% 50%; backface-visibility: hidden; }

/* ---------- Motion types ---------- */
/* label: tracking tightens */
.g74-motion [data-m="label"]:not(.is-in) { opacity: 0; transform: translate3d(-14px, 0, 0); }
.g74-motion [data-m="label"] { transition: opacity .9s var(--e-out) var(--d, 0ms), transform 1.1s var(--e-out) var(--d, 0ms); }
/* title: rises out of a mask */
.g74-motion [data-m="title"]:not(.is-in) { clip-path: inset(0 0 100% 0); transform: translate3d(0, 44px, 0); }
.g74-motion [data-m="title"] { transition: clip-path 1.1s var(--e-out) calc(var(--d, 0ms) + 120ms), transform 1.1s var(--e-out) calc(var(--d, 0ms) + 120ms); }
/* text: rises in sequence */
.g74-motion [data-m="text"]:not(.is-in) { opacity: 0; transform: translate3d(0, 30px, 0); }
.g74-motion [data-m="text"] { transition: opacity .8s ease calc(var(--d, 0ms) + 220ms), transform .9s var(--e-out) calc(var(--d, 0ms) + 220ms); }
/* media: shutter opens, image settles from zoom */
.g74-motion [data-m="media"]:not(.is-in) { clip-path: inset(22% 10% 22% 10%); opacity: .35; }
.g74-motion [data-m="media"] { transition: clip-path 1.3s var(--e-io) var(--d, 0ms), opacity .9s ease var(--d, 0ms); }
/* card: lift + scale, one after another */
.g74-motion [data-m="card"]:not(.is-in) { opacity: 0; transform: translate3d(0, 56px, 0) scale(.94); }
.g74-motion [data-m="card"] { transition: opacity .7s ease var(--d, 0ms), transform 1s var(--e-out) var(--d, 0ms), border-color .25s ease, background-color .25s ease; }
.g74-motion .g74v2-case[data-m="card"]:not(.is-in) .g74v2-photo { clip-path: inset(0 0 100% 0); }
.g74-motion .g74v2-case[data-m="card"] .g74v2-photo { transition: clip-path 1.2s var(--e-io) calc(var(--d, 0ms) + 200ms); }

/* Active scene: label gets a warm rule */
.g74-v2 section .g74-head .g74-label::before { content: ""; display: inline-block; vertical-align: middle; height: 1px; width: 0; margin-right: 0; background: var(--v2-warm); transition: width .6s var(--e-out), margin .6s var(--e-out); }
.g74-v2 section.is-active .g74-head .g74-label::before { width: 28px; margin-right: 12px; }

/* Anchor destination: heading underline sweep / case border flash */
.g74-v2 section .g74-head h2 { position: relative; }
.g74-v2 section .g74-head h2::after { content: ""; position: absolute; left: 0; bottom: -.18em; height: 2px; width: 100%; background: var(--v2-warm); transform: scaleX(0); transform-origin: left; }
.g74-v2 section.is-target .g74-head h2::after { animation: g74m-underline 1.8s var(--e-out) both; }
@keyframes g74m-underline { 0% { transform: scaleX(0); } 45% { transform: scaleX(1); } 100% { transform: scaleX(1); opacity: 0; } }
@keyframes g74m-flash { 0% { box-shadow: 0 0 0 0 rgba(211,154,91,0); } 30% { box-shadow: 0 0 0 2px rgba(211,154,91,.9); } 100% { box-shadow: 0 0 0 2px rgba(211,154,91,0); } }
.g74v2-case.is-target, #personalization.is-target { animation: g74m-flash 1.8s ease both; }

/* ---------- Direction cards: whole card is a link; tactile states ---------- */
a.g74v2-card { text-decoration: none; color: inherit; position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent; cursor: pointer; }
.g74v2-card .g74-num { display: block; }
.g74v2-card__title { display: block; margin: 0 0 .5rem; font-size: 1.25rem; font-weight: 600; line-height: 1.25; color: var(--v2-text); }
.g74v2-card__text { display: block; }
.g74v2-card__go { margin-top: auto; padding-top: 1.25rem; display: inline-flex; align-items: center; gap: .45rem; font-size: .875rem; font-weight: 600; color: var(--v2-warm); }
.g74v2-card__go i { font-style: normal; transition: transform .3s var(--e-out); }
a.g74v2-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--v2-warm); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--e-out); }
a.g74v2-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 100%, rgba(211,154,91,.22), transparent 70%); opacity: 0; transition: opacity .25s ease; pointer-events: none; }
a.g74v2-card:active, a.g74v2-card.is-pressed { transform: scale(.965) !important; border-color: rgba(211,154,91,.8) !important; transition: transform .12s ease, border-color .12s ease !important; }
a.g74v2-card:active::before, a.g74v2-card.is-pressed::before { opacity: 1; transition: opacity .08s ease; }
a.g74v2-card:active::after, a.g74v2-card.is-pressed::after { transform: scaleX(1); transition: transform .2s ease; }
a.g74v2-card:active .g74v2-card__go i, a.g74v2-card.is-pressed .g74v2-card__go i { transform: translateY(5px); }
a.g74v2-card:focus-visible { outline: 2px solid var(--v2-warm); outline-offset: 3px; }
@media (hover: hover) {
	a.g74v2-card:hover { border-color: rgba(211,154,91,.55); background: #1b1d21; }
	a.g74v2-card.is-in:hover { transform: translateY(-4px); }
	a.g74v2-card:hover::after { transform: scaleX(1); }
	a.g74v2-card:hover .g74v2-card__go i { transform: translateY(3px); }
	.g74v2-case:hover { border-color: rgba(211,154,91,.4); }
}
.g74v2-card--ask .g74v2-card__btn { align-self: flex-start; margin-top: 1.25rem; min-height: 48px; display: inline-flex; align-items: center; padding: .8rem 1.25rem; background: var(--v2-text); color: var(--v2-bg); font-weight: 600; }
@media (max-width: 599px) {
	a.g74v2-card:not(.g74v2-card--ask) { min-height: 64px; }
	.g74v2-card__title { font-size: 1.0625rem; margin-bottom: .25rem; }
	.g74v2-card__go { padding-top: .75rem; }
}

/* ---------- FAQ: one card = question + answer ---------- */
.g74v2-faq .g74-head { margin-bottom: 1.5rem; }
.g74v2-faq-item { max-width: 52rem; margin: 0 0 .75rem; border: 1px solid var(--v2-line); background: var(--v2-surface); transition: border-color .25s ease, background-color .25s ease; }
.g74v2-faq-item[open] { border-color: rgba(211,154,91,.55); background: #1d1f23; }
.g74v2-faq-item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: 1rem 1.1rem 1rem 1.25rem; cursor: pointer; font-weight: 600; font-size: 1.0625rem; line-height: 1.35; color: var(--v2-text); -webkit-tap-highlight-color: transparent; }
.g74v2-faq-item summary::-webkit-details-marker { display: none; }
.g74v2-faq-item summary::marker { content: ""; }
.g74v2-faq-item summary i { flex: 0 0 28px; height: 28px; position: relative; border: 1px solid rgba(236,234,229,.25); border-radius: 50%; transition: transform .35s var(--e-out), border-color .25s ease, background-color .25s ease; }
.g74v2-faq-item summary i::before, .g74v2-faq-item summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; background: var(--v2-text); transition: transform .35s var(--e-out); }
.g74v2-faq-item summary i::after { transform: rotate(90deg); }
.g74v2-faq-item[open] summary i { transform: rotate(180deg); border-color: var(--v2-warm); background: rgba(211,154,91,.12); }
.g74v2-faq-item[open] summary i::after { transform: rotate(0deg); }
.g74v2-faq-item summary:focus-visible { outline: 2px solid var(--v2-warm); outline-offset: -2px; }
@media (hover: hover) { .g74v2-faq-item summary:hover { color: var(--v2-warm); } }
.g74v2-faq-item__a { overflow: hidden; }
.g74v2-faq-item__a p { margin: 0; padding: 0 1.25rem 1.25rem; color: #b9bcc1; line-height: 1.6; max-width: 44rem; }

/* ---------- Other states ---------- */
.g74v2-contacts a { transition: color .2s ease; }
@media (hover: hover) { .g74v2-contacts a:hover { color: var(--v2-warm); } }

/* Scene rail (desktop with pointer) */
.g74v2-scenes { display: none; }
@media (min-width: 1280px) and (hover: hover) {
	.g74v2-scenes { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 40; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
	.g74v2-scenes a { display: flex; align-items: center; gap: 10px; height: 16px; color: #5d6066; text-decoration: none; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
	.g74v2-scenes a::after { content: ""; width: 12px; height: 1px; background: currentColor; transition: width .35s var(--e-out); }
	.g74v2-scenes a span { opacity: 0; transform: translateX(6px); transition: opacity .25s ease, transform .25s ease; background: rgba(15,16,18,.9); padding: 2px 6px; }
	.g74v2-scenes a:hover span { opacity: 1; transform: none; color: var(--v2-text); }
	.g74v2-scenes a.is-active { color: var(--v2-warm); }
	.g74v2-scenes a.is-active::after { width: 28px; }
}
/* Reading progress (desktop, where scroll timelines exist) */
@keyframes g74m-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@supports (animation-timeline: scroll()) {
	@media (min-width: 782px) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
		body.g74-v2::before { content: ""; position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; background: var(--v2-warm); transform-origin: left; animation: g74m-progress linear both; animation-timeline: scroll(root); }
	}
}

/* ---------- Reduced motion: everything visible, nothing moves ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.g74-js .g74v2-hero *, .g74-js .g74v2-hero__lab, .g74-js .g74v2-hero__lab::after, .g74v2-case.is-target, #personalization.is-target, .g74-v2 section.is-target .g74-head h2::after { animation: none !important; }
	.g74-px img { transform: none !important; will-change: auto; }
	[data-m], [data-m] .g74v2-photo { opacity: 1 !important; transform: none !important; clip-path: none !important; letter-spacing: inherit; transition: none !important; }
	.g74-v2 .entry-content > section::before { transform: none !important; transition: none !important; }
	a.g74v2-card, a.g74v2-card::after, a.g74v2-card::before, .g74v2-faq-item, .g74v2-faq-item summary i { transition: none !important; }
	a.g74v2-card:active, a.g74v2-card.is-pressed { transform: none !important; }
}
.g74-motion [data-m="card"].is-done { transition: transform .3s cubic-bezier(.16, 1, .3, 1), border-color .25s ease, background-color .25s ease; }

/* Footer on the dark system: the base theme paints it with --g74-ink, which is re-pointed to a light tone here. */
.g74-v2 .g74-footer { background: var(--v2-deep); color: var(--v2-text); border-top: 1px solid var(--v2-line); }
.g74-v2 .g74-footer a { color: var(--v2-text); }
.g74-v2 .g74-footer__wordmark { color: var(--v2-text); }
.g74-v2 .g74-footer__contacts a { box-shadow: inset 0 -1px 0 rgba(236,234,229,.35); }
.g74-v2 .g74-footer__legal { color: var(--v2-muted); }

/* File field: styled picker button instead of the bare system one */
.g74v2-form input[type="file"]::file-selector-button { margin-right: .9rem; padding: .55rem .9rem; border: 1px solid rgba(236,234,229,.3); background: transparent; color: var(--v2-text); font: inherit; font-size: .875rem; cursor: pointer; }
.g74v2-form input[type="file"]::-webkit-file-upload-button { margin-right: .9rem; padding: .55rem .9rem; border: 1px solid rgba(236,234,229,.3); background: transparent; color: var(--v2-text); font: inherit; font-size: .875rem; }

/* Corner geometry: one restrained radius for interactive UI (photos stay square) */
:root { --g74-r: 8px; }
.g74-v2 .wp-block-button:not(.is-style-text) .wp-block-button__link,
.g74-v2 .g74-nav .is-menu-open .g74-nav__cta .wp-block-navigation-item__content,
a.g74v2-card, .g74v2-card--ask .g74v2-card__btn,
.g74v2-faq-item,
.g74v2-form :is(input:not([type="checkbox"]), select, textarea), .g74v2-form button { border-radius: var(--g74-r); }
.g74v2-form input[type="file"]::file-selector-button { border-radius: 6px; }
.g74v2-form input[type="file"]::-webkit-file-upload-button { border-radius: 6px; }
.g74v2-faq-item summary:focus-visible { border-radius: var(--g74-r); }
.g74v2-form input[type="checkbox"] { border-radius: 4px; }

/* Prices (values come from G74_PRICES): visible, but lighter than the card title; existing tokens only */
.g74v2-card__foot { margin-top: auto; padding-top: 1.25rem; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; }
.g74v2-card__foot .g74v2-card__go { margin-top: 0; padding-top: 0; }
.g74v2-card__price { font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--v2-text); white-space: nowrap; font-variant-numeric: tabular-nums; }
.g74v2-card__price--ask { display: block; margin-top: 1rem; font-size: .9375rem; font-weight: 400; color: var(--v2-muted); white-space: normal; }
.g74v2-card__price--ask b { font-weight: 600; color: var(--v2-text); white-space: nowrap; }
@media (max-width: 599px) { .g74v2-card__foot { padding-top: .75rem; } }

/* Hero address: link to Yandex Maps (same muted text, visible underline, larger tap area without shifting layout) */
.g74v2-hero__addr a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; text-decoration-color: rgba(211,154,91,.6); display: inline-block; padding: .6rem 0; margin: -.6rem 0; -webkit-tap-highlight-color: transparent; transition: color .2s ease; }
.g74v2-hero__addr a:active { color: var(--v2-warm); }
@media (hover: hover) { .g74v2-hero__addr a:hover { color: var(--v2-warm); } }
.g74v2-hero__addr a:focus-visible { outline: 2px solid var(--v2-warm); outline-offset: 3px; border-radius: 4px; }

/* Consent: readable text, link to the policy (keyboard-focusable, opens in a new tab so the form is kept) */
.g74v2-form__consent { align-items: flex-start !important; font-size: .9375rem; line-height: 1.45; }
.g74v2-form__consent input { flex: none; margin-top: .1rem; }
.g74v2-form__consent a { color: var(--v2-text); text-decoration: underline; text-underline-offset: .2em; text-decoration-color: rgba(211,154,91,.7); }
.g74v2-form__consent a:focus-visible { outline: 2px solid var(--v2-warm); outline-offset: 2px; border-radius: 3px; }
@media (hover: hover) { .g74v2-form__consent a:hover { color: var(--v2-warm); } }

/* Direction cards: number + line icon in one row (icon uses the warm accent) */
.g74v2-card__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 2.5rem; }
.g74v2-card .g74v2-card__head .g74-num { margin: 0; }
.g74v2-card__icon { flex: none; width: 28px; height: 28px; color: var(--v2-warm); opacity: .9; transition: transform .3s var(--e-out), opacity .3s ease; }
@media (hover: hover) { a.g74v2-card:hover .g74v2-card__icon { opacity: 1; transform: translateY(-2px); } }
@media (max-width: 599px) {
	.g74v2-card__head { margin-bottom: .75rem; }
	.g74v2-card__icon { width: 24px; height: 24px; }
}
/* Plates column: photo under the text, same rhythm as the personalization column */
#plates .wp-block-column:not(#personalization) .g74v2-photo { margin-top: 1.75rem; }

/* Cookie / Yandex Metrica notice: small, bottom-left, never covers much of the screen */
.g74-cookie { position: fixed; z-index: 70; right: 16px; bottom: 16px; max-width: 360px; display: flex; align-items: center; gap: .75rem 1rem;
	padding: .75rem .9rem .75rem 1rem; background: rgba(24, 25, 28, .96); border: 1px solid var(--v2-line); border-radius: var(--g74-r, 8px);
	box-shadow: 0 10px 30px rgba(0,0,0,.35); color: var(--v2-muted); font-size: .8125rem; line-height: 1.4; }
.g74-cookie[hidden] { display: none; }
.g74-cookie p { margin: 0; }
.g74-cookie a { color: var(--v2-text); text-decoration: underline; text-underline-offset: .2em; text-decoration-color: rgba(211,154,91,.7); }
.g74-cookie button { flex: none; min-height: 36px; padding: .45rem .9rem; border: 1px solid rgba(236,234,229,.35); border-radius: 6px; background: transparent; color: var(--v2-text); font: inherit; font-weight: 600; cursor: pointer; }
@media (hover: hover) { .g74-cookie button:hover { border-color: var(--v2-warm); color: var(--v2-warm); } .g74-cookie a:hover { color: var(--v2-warm); } }
.g74-cookie button:focus-visible, .g74-cookie a:focus-visible { outline: 2px solid var(--v2-warm); outline-offset: 2px; }
@media (max-width: 599px) {
	.g74-cookie { left: 10px; right: 10px; bottom: 10px; max-width: none; padding: .6rem .7rem .6rem .85rem; font-size: .75rem; }
}
@media (prefers-reduced-motion: no-preference) {
	.g74-cookie { animation: g74-cookie-in .5s var(--e-out, ease-out) .8s both; }
	@keyframes g74-cookie-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}

/* Wide screens: a portrait photo in the right-hand column sits on the grid's outer edge (not floating mid-page) */
@media (min-width: 782px) {
	.g74v2-split:not(.g74v2-split--rev) .g74v2-split__media .g74v2-photo--3-4 { margin-left: auto; }
}

/* =====================================================================
   Desktop scale (≥1024 px only): a wide-screen layout of its own, not a stretched phone page.
   360–430 px untouched; 768 px keeps its intermediate sizes; the main growth is at 1440–1920 px.
   ===================================================================== */
@media (min-width: 1024px) {
	.g74-v2 .g74-head h2 { font-size: clamp(3.25rem, 1.2rem + 3.3vw, 5.25rem); line-height: 1.02; letter-spacing: -0.03em; }
	.g74v2-hero h1 { font-size: clamp(2.5rem, 1.1rem + 1.9vw, 3.4rem); }
	/* The brand line is sized from its own column (not the viewport), so «ГРАВИРУЕМ» never breaks mid-word */
	.g74v2-hero .g74v2-split__text { container-type: inline-size; }
	.g74v2-brand { font-size: clamp(4.5rem, 17cqw, 9rem); overflow-wrap: normal; word-break: keep-all; hyphens: none; }
	.g74-v2 .g74-lead { font-size: clamp(1.3125rem, 1.027rem + 0.446vw, 1.5625rem); max-width: 40rem; }
	.g74v2-hero .g74-lead { max-width: 38rem; }
	.g74-v2 :is(.g74v2-split__text, .g74v2-solo) > p:not(.g74-lead):not(.g74v2-brand):not(.g74v2-lab__quote):not(.g74-label):not(.g74v2-hero__addr),
	.g74-v2 section .wp-block-list:not(.g74v2-chips) li, .g74-v2 .g74v2-faq-item__a p { font-size: clamp(1.0625rem, 0.92rem + 0.223vw, 1.1875rem); }
	.g74v2-card__title { font-size: clamp(1.25rem, 0.96rem + 0.446vw, 1.5rem); }
	.g74v2-card__text { font-size: clamp(0.9375rem, 0.81rem + 0.223vw, 1.0625rem); }
	.g74v2-price__value { font-size: clamp(2.75rem, 1.6rem + 1.8vw, 3.5rem); }
	.g74v2-lab__quote { font-size: clamp(2.5rem, 1.1rem + 2vw, 3.25rem); }
	.g74v2-split { gap: clamp(4rem, 1rem + 5vw, 8rem) !important; }
}
@media (min-width: 1360px) {
	.g74-v2 .g74-section { padding-block: clamp(8rem, 2rem + 7vw, 11.5rem); }
	.g74v2-card { padding: 2rem 1.75rem 1.6rem; min-height: 15.5rem; }
	.g74v2-card__head { margin-bottom: 3rem; }
	.g74v2-card__icon { width: 34px; height: 34px; }
	.g74v2-card__price { font-size: 1.125rem; }
	.g74v2-card__go { font-size: 0.9375rem; }
	.g74v2-chips li { font-size: 1rem; padding: 0.55rem 1.05rem; }
	.g74v2-case h3 { font-size: 1.25rem; }
	.g74v2-case__facts { font-size: 0.9375rem; }
	.g74v2-faq-item summary { font-size: 1.1875rem; }
	.g74v2-step__text { font-size: 1.25rem; }
	.g74v2-contacts a, .g74v2-contacts li > span:last-child { font-size: 1.25rem; }
	.g74v2-hero__addr { font-size: 0.9375rem; }
}
/* Wider grid on large monitors, so 1920 is not a 1440 layout with empty sides */
@media (min-width: 1600px) {
	body.g74-v2 { --wp--style--global--wide-size: 1440px; }
	.g74-final .g74-final__title { font-size: 7.5rem; }
	.g74v2-faq-item { max-width: 64rem; }
}
@media (min-width: 1840px) {
	body.g74-v2 { --wp--style--global--wide-size: 1560px; }
}

/* «Шильды / Персонализация»: on large desktops the photos follow the wider grid (was capped at 26rem ≈ 416 px).
   Same cropping (object-fit: cover) and parallax; 4:5 instead of 3:4 so a wider photo does not become too tall. */
@media (min-width: 1360px) {
	.g74v2-pair .g74v2-photo { max-width: 34rem; aspect-ratio: 4 / 5; }
}
@media (min-width: 1840px) {
	.g74v2-pair .g74v2-photo { max-width: 38rem; }
}

/* Cookie consent: two equal choices (accept / decline) in the same compact box; footer «Настройки cookie» looks like a link */
.g74-cookie__actions { flex: none; display: flex; gap: .5rem; }
.g74-cookie { max-width: 440px; }
.g74-cookie-settings { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; cursor: pointer; text-align: left; }
.g74-cookie-settings:focus-visible { outline: 2px solid var(--v2-warm); outline-offset: 2px; }
@media (max-width: 599px) {
	.g74-cookie { flex-wrap: wrap; }
	.g74-cookie__actions { width: 100%; }
	.g74-cookie__actions button { flex: 1; }
}

/* =====================================================================
   Desktop motion pass #2 (≥1024 px only; phones unchanged)
   ===================================================================== */
/* Gold section eyebrow («— КЛАВИАТУРЫ»): readable on wide screens, still secondary to the H2.
   1440 → ≈19.5 px, 1920 → 21 px. */
@media (min-width: 1024px) {
	.g74-v2 .g74-label { font-size: clamp(1.125rem, 0.55rem + 0.75vw, 1.3125rem); letter-spacing: 0.16em; margin-bottom: 1.5rem; }
	.g74-v2 section.is-active .g74-head .g74-label::before { width: 44px; margin-right: 16px; }
}
/* Real works: its own scene (eyebrow + heading), set apart from the scene above by extra air. */
.g74v2-works__title > .g74-label { margin-bottom: 1.25rem; }
.g74v2-works__title > h2 { margin: 0; }
@media (min-width: 1024px) {
	.g74-v2 #works.g74-section { padding-top: calc(var(--wp--preset--spacing--60) + 2.5rem); }
	.g74-v2 .g74v2-works__title > .g74-label { margin-bottom: 1.5rem; }
}
@media (min-width: 1360px) { .g74-v2 #works.g74-section { padding-top: calc(clamp(8rem, 2rem + 7vw, 11.5rem) + 3rem); } }
/* Continuous scroll layers are moved by motion.js through the independent `translate` property,
   so they never touch `transform` used by the one-time reveal, hover and press states. */
.g74-layer { will-change: translate; }
@media (prefers-reduced-motion: reduce) { .g74-layer { translate: none !important; will-change: auto; } }

/* v1.0.1 — every section photo belongs visibly to its own section */
/* Metal: result example (knife) inside the text column, between the lists and the price */
#metal .g74v2-split__text > .g74v2-photo { margin: 2.25rem 0 0.5rem; }
@media (min-width: 1024px) { #metal .g74v2-split__text > .g74v2-photo { margin-top: 3rem; } }
/* Phones: in «Награды» and «Украшения» the photo used to stand above the eyebrow, right after the previous section;
   now it follows its own text (as in the other commercial sections). */
@media (max-width: 781px) {
	:is(#awards, #jewelry) .g74v2-split--rev > .g74v2-split__media { order: 2; }
	:is(#awards, #jewelry) .g74v2-split--rev > .g74v2-split__text { order: 1; }
}
/* Metal on wide screens: the longer text column no longer pushes the equipment photo down — it starts level with the heading */
@media (min-width: 782px) { :is(#metal, #jewelry) .g74v2-split > .g74v2-split__media { align-self: flex-start !important; margin-top: 2.5rem; } }

/* v1.0.2 — «Обручальные кольца» */
.g74v2-photo--5-4 { aspect-ratio: 5 / 4; }
.g74v2-rings__h { margin: 2rem 0 0.75rem; font-size: 1.125rem; }
.g74v2-rings__print { margin-top: 2rem; }
.g74v2-rings__print h3 { margin: 0 0 0.75rem; font-size: 1.25rem; color: var(--v2-warm); }
.g74v2-rings__print .g74v2-note { color: var(--v2-text); margin: 0; }
.g74v2-rings__more { margin-top: clamp(2rem, 4vw, 3.5rem); }
.g74v2-rings__ways p { margin: 0; color: var(--v2-muted); }
.g74v2-rings__ways h3 { color: var(--v2-text) !important; font-size: 1.0625rem; }
.g74v2-rings__note { color: var(--v2-muted); max-width: 40rem; }
.g74v2-case__lead { margin: -0.25rem 1.25rem 0.75rem; font-size: 0.9375rem; color: var(--v2-muted); }
@media (min-width: 1360px) {
	.g74v2-rings__print h3 { font-size: 1.5rem; }
	.g74v2-rings__ways h3 { font-size: 1.1875rem; }
}

/* v1.0.3 — hero: one CTA + what the visitor gets */
.g74-v2 .g74v2-hero .g74v2-hero__cta-note { margin: 0.75rem 0 0; font-size: 0.9375rem !important; line-height: 1.45; color: rgba(236, 234, 229, 0.72); max-width: none; }
.g74-js .g74v2-hero .g74v2-hero__cta-note { animation: g74m-rise 1s var(--e-out) 1.08s both; }
@media (min-width: 1024px) { .g74-v2 .g74v2-hero .g74v2-hero__cta-note { font-size: 1rem !important; } }
@media (min-width: 1600px) { .g74-v2 .g74v2-hero .g74v2-hero__cta-note { font-size: 1.0625rem !important; } }

/* =====================================================================
   v1.1.0 — SEO stage 1: service pages (inc/service-pages.php) in the same system
   ===================================================================== */
.g74-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin: 0 0 1.25rem; font-size: .875rem; color: var(--v2-muted); }
.g74-crumbs a { color: var(--v2-text) !important; text-decoration: underline; text-underline-offset: .2em; text-decoration-color: rgba(211,154,91,.6); }
.g74-crumbs span[aria-hidden] { color: var(--v2-warm); }
.g74-svc-hero h1 { font-size: clamp(1.875rem, 1.1rem + 3vw, 3.5rem); line-height: 1.08; letter-spacing: -0.02em; margin-bottom: 1.25rem; }
.g74-svc-hero .g74-lead { margin: 0 0 1rem; }
.g74-svc-hero__more { color: var(--v2-muted); margin: 0 0 1rem; max-width: 38rem; }
.g74-svc-facts { list-style: none; margin: 1.25rem 0 1.75rem; padding: 0; display: grid; gap: .5rem; }
.g74-svc-facts li { position: relative; padding-left: 1.25rem; line-height: 1.45; }
.g74-svc-facts li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; background: var(--v2-warm); }
.g74-svc-facts strong { color: var(--v2-text); font-weight: 600; }
.g74-svc-facts a { color: inherit; text-decoration: underline; text-underline-offset: .2em; text-decoration-color: rgba(211,154,91,.6); }
@media (min-width: 1024px) { .g74-svc-facts li { font-size: 1.125rem; } }
.g74-svc .g74v2-solo, .g74-svc .g74v2-split__text { max-width: 46rem; }
.g74-svc .g74v2-split__text { max-width: none; }
.g74-svc p a, .g74-svc li a { text-decoration: underline; text-underline-offset: .2em; text-decoration-color: rgba(211,154,91,.7); }
.g74-svc .g74v2-photo + .g74v2-photo, .g74-svc .g74v2-solo .g74v2-photo { margin-top: 1.25rem; }
.g74-svc strong { font-weight: 600; color: var(--v2-text); }
.g74-svc-steps { margin: 0 0 1.25rem; padding-left: 1.5rem; }
.g74-svc-steps li { padding: .4rem 0 .4rem .25rem; }
.g74-svc-steps li::marker { color: var(--v2-warm); font-weight: 600; }
/* Illustrations (generated seal images): caption is always visible */
.g74-svc-ill { margin: 0; }
.g74-svc-ill figcaption { margin-top: .5rem; font-size: .8125rem; color: var(--v2-muted); }
.g74-svc-ill__img { background: var(--v2-surface); }
.g74-svc-ill__img img { display: block; width: 100%; height: auto; }
@media (max-width: 781px) { .g74-svc-hero .g74v2-split__media { margin-inline: 0; } }
/* «Наклейки или гравировка»: a table on wide screens, stacked rows on phones (no horizontal scroll) */
.g74-svc-table { max-width: 60rem; }
.g74-svc-table table { width: 100%; border-collapse: collapse; }
.g74-svc-table :is(th, td) { text-align: left; vertical-align: top; padding: .9rem 1rem; border-top: 1px solid var(--v2-line); }
.g74-svc-table thead th { color: var(--v2-warm); font-size: .875rem; letter-spacing: .06em; text-transform: uppercase; border-top: 0; }
.g74-svc-table tbody th { color: var(--v2-muted); font-weight: 600; width: 22%; }
@media (max-width: 599px) {
	.g74-svc-table thead { display: none; }
	.g74-svc-table :is(table, tbody, tr, th, td) { display: block; width: auto; }
	.g74-svc-table tr { border-top: 1px solid var(--v2-line); padding: .9rem 0; }
	.g74-svc-table :is(th, td) { border: 0; padding: .2rem 0; }
	.g74-svc-table tbody th { width: auto; color: var(--v2-text); margin-bottom: .35rem; }
	.g74-svc-table td::before { content: attr(data-label) ": "; color: var(--v2-warm); font-weight: 600; }
}
.g74-svc-case__text { margin: 0 1.25rem 1.25rem; line-height: 1.5; }
.g74v2-case > h3:first-child { margin-top: 1.25rem; }
.g74-svc--more .g74-svc-more { margin: 0; color: var(--v2-muted); }
.g74-svc--more.g74-section { padding-block: 2.5rem; }
.g74-svc-more a { color: var(--v2-text) !important; }
/* Home: links under the cases */
.g74v2-works__more { display: flex; flex-wrap: wrap; gap: .25rem 2rem; margin-top: 1.5rem; }
.g74v2-works__more .g74-arrow { margin: 0; }
/* Footer: «Услуги» */
.g74-footer__services { margin-bottom: 1rem; }
.g74-footer__services-title { margin: 0 0 .35rem; font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; color: #C9CBCF; opacity: 1; }

/* 19.10.2026 «Стеклянный блик» на плашках: тонкая градиентная рамка + внутренний блик сверху.
   Откат: удалить этот блок до конца файла. */
.g74v2-card:not(.g74v2-card--ask), .g74v2-case, .g74v2-faq-item {
	--g74-glass-fill: var(--v2-raised);
	border-color: transparent;
	background: linear-gradient(var(--g74-glass-fill), var(--g74-glass-fill)) padding-box,
		linear-gradient(155deg, rgba(255,255,255,.32) 0%, rgba(255,255,255,.09) 28%, rgba(255,255,255,.04) 62%, rgba(211,154,91,.32) 100%) border-box;
	box-shadow: inset 0 1px 1px rgba(255,255,255,.25);
}
.g74v2-faq-item { --g74-glass-fill: var(--v2-surface); }
.g74v2-card--ask, .g74v2-price { box-shadow: inset 0 1px 1px rgba(255,255,255,.25); }

/* v1.1.3: steps on the service pages (only .g74-svc sections; the home «А на этом сможете?» is not .g74-svc) — 2 columns on desktop */
@media (min-width: 1024px) { .g74-svc .g74v2-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* v1.1.3: 9 cards + «Не нашли свой предмет?» in a full row on desktop */
@media (min-width: 1024px) { .g74v2-cards > .g74v2-card--ask:nth-child(10) { grid-column: 1 / -1; } }
