/* Ruff Ryders Global — compatibility layer between the compiled Tailwind CSS and WordPress core blocks. */
:root {
	--font-inter: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-display-src: "Jost", "Inter", system-ui, sans-serif;
	--font-mono-src: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--font-wordmark-src: "Archivo", "Inter", system-ui, sans-serif;
}

html { color-scheme: dark; scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; }
.wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; width: 100%; padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* Core blocks must not add their own spacing. */
/* Preflight already zeroes margins and utility classes (mt-*, mb-*) set them, so never reset margins on these blocks.
   The one core default to undo is the 1em bottom margin of figures, unless a utility class sets its own. */
.wp-block-image:not([class*=" mb-"]):not([class*=" m-"]):not([class*=" my-"]) { margin-bottom: 0; }
.wp-block-image > img, .wp-block-image > a > img { display: block; width: 100%; height: 100%; object-fit: inherit; max-width: none; }
.wp-block-image > a { display: block; height: 100%; width: 100%; }
.wp-block-image.w-auto > a { width: auto; }
.wp-block-image.w-auto > img, .wp-block-image.w-auto > a > img { width: auto; }
.wp-block-image.object-contain > img { object-fit: contain; }
.wp-block-image.object-cover > img { object-fit: cover; }
.wp-block-image.absolute, .wp-block-image.h-full { height: 100%; }
.wp-block-video video { width: 100%; height: 100%; object-fit: inherit; }
.wp-block-video:not([class*=" mb-"]):not([class*=" m-"]):not([class*=" my-"]) { margin-bottom: 0; }
.wp-block-list { padding-left: 0; list-style: none; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: normal; }

/* Featured image used as a hero background. */
.rr-hero-img { margin: 0; }
.rr-hero-img img { width: 100%; height: 100%; object-fit: cover; opacity: .5; }
/* WP flow layout resets child margins at equal specificity; restore Tailwind's zero-specificity space-y. */
.wp-block-post-content.space-y-6 > :not(:last-child) { margin-block-end: calc(var(--spacing, .25rem) * 6); }

/* Card links: first heading/label stretches over the whole card (a block-level <a> cannot wrap blocks). */
.rr-card { position: relative; }
.rr-stretched::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.rr-stretched { color: inherit; text-decoration: none; }
.rr-stretched-title a { color: inherit; text-decoration: none; }
.rr-stretched-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.rr-card:hover .rr-stretched-title a { color: var(--accent-text); }

/* Header: state hooks driven by assets/js/site.js. */
.site-header { position: sticky; top: 0; z-index: 50; isolation: isolate; }
.site-header > .wp-block-group.relative { margin-inline: auto; }
.site-header .wp-block-site-title, .site-header .wordmark a { color: inherit; text-decoration: none; }
.menu-overlay .wp-block-navigation { width: 100%; }
.menu-primary { counter-reset: rrmenu; }
.menu-primary .wp-block-navigation__container { display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
.menu-primary > .wp-block-navigation__container > .wp-block-navigation-item,
.menu-primary > .wp-block-navigation__container > .wp-block-navigation-submenu { counter-increment: rrmenu; flex-direction: column; align-items: stretch; border-bottom: 1px solid var(--line); }
.menu-primary > .wp-block-navigation__container > :first-child { border-top: 1px solid var(--line); }
.menu-primary > .wp-block-navigation__container > .wp-block-navigation-item > a::before,
.menu-primary > .wp-block-navigation__container > .wp-block-navigation-submenu > a::before {
	content: counter(rrmenu, decimal-leading-zero); font-family: var(--font-mono-src); font-size: 0.7rem; letter-spacing: 0.16em; color: var(--ink-muted);
	width: 1.5rem; flex-shrink: 0; margin-right: 1.25rem; position: relative; top: -0.15em;
}
.menu-primary a { display: flex; align-items: baseline; padding: 0.75rem 0; color: var(--ink); font-family: var(--font-display-src); font-size: clamp(1.75rem, 4.5vw, 3.25rem); font-weight: 300; text-transform: uppercase; letter-spacing: -0.015em; text-decoration: none; transition: color 0.3s; }
.menu-primary a:hover, .menu-primary .current-menu-item > a { color: var(--accent-text); }
.menu-primary .wp-block-navigation__submenu-container {
	position: static !important; display: flex !important; flex-direction: row; flex-wrap: wrap; gap: 0.25rem 1.75rem; width: auto !important; padding: 0 0 1rem 2.75rem !important;
	background: transparent !important; border: 0 !important; opacity: 1 !important; visibility: visible !important; height: auto !important; overflow: visible !important; min-width: 0 !important;
}
.menu-primary .wp-block-navigation__submenu-container a { font-family: var(--font-mono-src); font-size: 0.7rem; letter-spacing: 0.16em; font-weight: 400; padding: 0.35rem 0; color: var(--ink-soft); }
.menu-primary .wp-block-navigation__submenu-container a:hover { color: var(--accent-text); }
.menu-overlay .menu-primary .wp-block-navigation-item .wp-block-navigation-item__content { color: var(--ink); }
.menu-overlay .menu-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--ink-soft); background: transparent; }
.menu-overlay .menu-primary .wp-block-navigation-item .wp-block-navigation-item__content:hover,
.menu-overlay .menu-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--accent-text); }
.menu-primary .wp-block-navigation__submenu-icon { display: none; }
.menu-overlay .wp-block-navigation-item { opacity: 0; transform: translateY(28px); transition: opacity .5s var(--ease-out), transform .7s var(--ease-expo); }
.menu-overlay[data-open="true"] .wp-block-navigation-item { opacity: 1; transform: none; }
.menu-overlay { z-index: -1; }
.menu-overlay[data-open="true"] { z-index: -1; }

/* Page-level reveal / draw classes are armed by JS; keep content visible without it and inside the editor. */
html.rr-no-js .reveal { opacity: 1; transform: none; }
.editor-styles-wrapper .reveal { opacity: 1 !important; transform: none !important; }

/* Lightbox */
.rr-lightbox { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgb(0 0 0 / .88); backdrop-filter: blur(6px); }
.rr-lightbox__inner { width: 100%; max-width: 64rem; }
.rr-lightbox__frame { aspect-ratio: 16 / 9; width: 100%; background: #000; }
.rr-lightbox__frame iframe, .rr-lightbox__frame video { width: 100%; height: 100%; border: 0; }
.rr-lightbox__close { position: absolute; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; border: 1px solid var(--line); color: var(--ink); background: transparent; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.rr-lightbox__close:hover { color: var(--accent-text); border-color: var(--accent-text); }

/* Era tabs + corporate ecosystem panels (JS toggles these on the front end only) */
.rr-era-hidden, .rr-eco-hidden { display: none !important; }
.rr-pdf { cursor: pointer; }

/* Contact Form 7 */
.wpcf7 form { display: block; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="url"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; border: 1px solid var(--line); background: var(--surface); color: var(--ink); padding: .75rem 1rem; font-size: .875rem; border-radius: 0;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--accent-text); }
.wpcf7 label { display: block; font-family: var(--font-mono-src); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 1.25rem; }
.wpcf7 label input, .wpcf7 label select, .wpcf7 label textarea { margin-top: .5rem; text-transform: none; letter-spacing: normal; font-family: var(--font-inter); }
.wpcf7 input[type="submit"] { cursor: pointer; border: 1px solid var(--rr-gold); background: var(--rr-gold); color: var(--rr-black); padding: .9rem 2rem; font-family: var(--font-mono-src); font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; transition: background-color .3s; }
.wpcf7 input[type="submit"]:hover { background: var(--rr-gold-bright); }
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: .75rem; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-list-item label { display: inline-flex; align-items: center; gap: .6rem; border: 1px solid var(--line); padding: .7rem 1rem; margin: 0; cursor: pointer; }
.wpcf7 .wpcf7-list-item input { width: auto; margin: 0; }
.wpcf7-response-output { border: 1px solid var(--line) !important; color: var(--ink-soft); font-size: .8rem; margin: 1rem 0 0 !important; padding: .75rem 1rem !important; }
.wpcf7-not-valid-tip { color: var(--map-red); font-size: .75rem; margin-top: .35rem; }
.rr-newsletter { padding-bottom: .5rem; } /* the original's empty status line (mt-2) */
.rr-newsletter .wpcf7-spinner { display: none; }
.rr-newsletter .wpcf7-response-output { margin: .5rem 0 0 !important; padding: 0 !important; border: 0 !important; font-size: .75rem; }
.rr-newsletter .wpcf7 label { margin-bottom: 0; }
.rr-newsletter .wpcf7-form p { margin: 0; }
.rr-newsletter .rr-newsletter-row { display: flex; margin-top: .75rem; }
.rr-newsletter .rr-newsletter-row .wpcf7-form-control-wrap { flex: 1; min-width: 0; }
.rr-newsletter input[type="email"] { padding: .625rem .75rem; }
.rr-newsletter input[type="submit"] { padding: 0 1rem; font-size: .75rem; font-weight: 600; letter-spacing: .1em; }
