/* =============================================================================
   RINO BUG — UI system 2.0 (tokens, components, motion)
   Shared by the RINO block theme and the Elementor kit. Motion is an
   enhancement layer: every element is readable without JavaScript, and
   prefers-reduced-motion removes transforms and animations in the same rules.
   ============================================================================= */

:root {
	/* F0 — colour (UI Kit v1.0, Logo Round 07) */
	--rino-navy: #0b1f33;
	--rino-navy-deep: #07172a;
	--rino-navy-soft: #13304d;
	--rino-orange: #ff5a1f;
	--rino-orange-hover: #ff7a47;
	--rino-amber: #ffb000;
	--rino-ice: #eef5f8;
	--rino-ice-2: #e2edf3;
	--rino-carbon: #111111;
	--rino-white: #ffffff;
	--rino-muted: #52606d;
	--rino-line: #c8d4dc;
	--rino-line-dark: rgba(255, 255, 255, .16);
	--rino-success: #1e6844;
	--rino-danger: #a12622;

	/* F0 — type */
	--rino-font-display: "Archivo", "Inter Tight", "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
	--rino-font-body: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
	--rino-h1: clamp(2.2rem, 1.3rem + 3.2vw, 3.7rem);
	--rino-h2: clamp(1.6rem, 1.15rem + 2vw, 2.7rem);
	--rino-h3: clamp(1.125rem, 1rem + .6vw, 1.5rem);
	--rino-lead: clamp(1.125rem, 1rem + .6vw, 1.35rem);

	/* F0 — space, radius, elevation */
	--rino-s-1: .5rem; --rino-s-2: .75rem; --rino-s-3: 1rem; --rino-s-4: 1.5rem; --rino-s-5: 2rem; --rino-s-6: 3rem; --rino-s-7: 4rem; --rino-s-8: 6rem;
	--rino-r-s: .5rem; --rino-r-m: .625rem; --rino-r-l: 1rem; --rino-r-pill: 999px;
	--rino-shadow-1: 0 1px 2px rgba(11, 31, 51, .06), 0 8px 24px rgba(11, 31, 51, .08);
	--rino-shadow-2: 0 2px 4px rgba(11, 31, 51, .08), 0 24px 56px rgba(11, 31, 51, .16);
	--rino-focus: 0 0 0 4px rgba(255, 90, 31, .32);
	--rino-content: 1180px;

	/* M0 — motion tokens (rag-motion-design / motion-design) */
	--rino-t-fast: 150ms;
	--rino-t-base: 250ms;
	--rino-t-slow: 420ms;
	--rino-t-hero: 700ms;
	--rino-ease-out: cubic-bezier(0, 0, .2, 1);
	--rino-ease-expo: cubic-bezier(.16, 1, .3, 1);
	--rino-ease-in-out: cubic-bezier(.4, 0, .2, 1);
	--rino-lift: -3px;
}

/* ---------- base ---------- */
.rino-ui-ready { scroll-behavior: smooth; }
.rino-eyebrow {
	display: inline-flex; align-items: center; gap: .6rem;
	color: var(--rino-orange); font-weight: 800; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
}
.rino-eyebrow::before { content: ""; width: 1.6rem; height: 3px; border-radius: 3px; background: currentColor; }
.has-navy-background-color .rino-eyebrow, .rino-on-dark .rino-eyebrow { color: var(--rino-amber); }

/* ---------- hero ---------- */
.rino-hero {
	position: relative; isolation: isolate; overflow: hidden;
	background-color: var(--rino-navy);
	background-image: radial-gradient(120% 80% at 85% 0%, var(--rino-navy-soft) 0%, var(--rino-navy) 48%, var(--rino-navy-deep) 100%);
	color: var(--rino-white);
}
.rino-hero > .wp-block-columns:last-of-type, .rino-hero > .alignwide:last-of-type:not(.wp-block-shortcode) { margin-bottom: clamp(2.5rem, 7vw, 5rem); }
.rino-hero--light { background-color: var(--rino-ice); background-image: linear-gradient(180deg, #fff 0%, var(--rino-ice) 100%); color: var(--rino-navy); }
.rino-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		linear-gradient(112deg, transparent 0 56%, rgba(255, 90, 31, .16) 56% 60%, transparent 60% 100%),
		linear-gradient(112deg, transparent 0 63%, rgba(255, 255, 255, .05) 63% 64.5%, transparent 64.5% 100%);
}
.rino-hero__road {
	position: absolute; inset: auto 0 0 0; z-index: -1; width: 100%; height: clamp(90px, 18vw, 220px); pointer-events: none; opacity: .9;
}
.rino-hero__road path { fill: none; stroke: var(--rino-orange); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 14 18; }
.rino-hero__road .rino-road-base { stroke: rgba(255, 255, 255, .18); stroke-dasharray: none; stroke-width: 10; }
.rino-hero h1, .rino-hero .rino-h1 { font-family: var(--rino-font-display); font-size: var(--rino-h1); line-height: .98; letter-spacing: -.02em; font-weight: 800; margin: 0 0 var(--rino-s-4); }
.rino-hero .rino-lead { font-size: var(--rino-lead); color: var(--rino-ice); max-width: 38ch; }
.rino-hero .is-style-rino-card, .rino-hero .rino-card { border-top: 6px solid var(--rino-orange); }
.rino-hero .is-style-rino-card .rino-bug-cta--secondary, .rino-hero .rino-card .rino-bug-cta--secondary, .rino-hero .has-white-background-color .rino-bug-cta--secondary { background: var(--rino-white); color: var(--rino-navy); border-color: var(--rino-navy); }
h1, h2, h3, .rino-h1, .rino-h2, .rino-h3 { text-wrap: balance; }

/* ---------- headings ---------- */
.rino-h2 { font-family: var(--rino-font-display); font-size: var(--rino-h2); line-height: 1.08; letter-spacing: -.015em; font-weight: 800; }
.rino-h3 { font-family: var(--rino-font-display); font-size: var(--rino-h3); line-height: 1.2; font-weight: 800; }

/* ---------- buttons ---------- */
.rino-btn, .rino-bug-cta {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 3rem; padding: .8rem 1.25rem; border: 2px solid transparent; border-radius: var(--rino-r-m);
	font-weight: 800; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: transform var(--rino-t-fast) var(--rino-ease-out), background-color var(--rino-t-fast) var(--rino-ease-out), border-color var(--rino-t-fast) var(--rino-ease-out), box-shadow var(--rino-t-fast) var(--rino-ease-out);
}
.rino-btn--primary, .rino-bug-cta--primary { background: var(--rino-orange); color: var(--rino-navy); box-shadow: 0 6px 18px rgba(255, 90, 31, .28); }
.rino-btn--secondary, .rino-bug-cta--secondary { background: var(--rino-white); color: var(--rino-navy); border-color: var(--rino-navy); }
.rino-on-dark .rino-btn--secondary, .has-navy-background-color .rino-bug-cta--secondary, .rino-hero .rino-bug-cta--secondary { background: transparent; color: var(--rino-white); border-color: rgba(255, 255, 255, .55); }
@media (hover: hover) {
	.rino-btn--primary:hover, .rino-bug-cta--primary:hover { background: var(--rino-orange-hover); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(255, 90, 31, .34); }
	.rino-btn--secondary:hover, .rino-bug-cta--secondary:hover { transform: translateY(-2px); background: var(--rino-navy); color: var(--rino-white); border-color: var(--rino-navy); }
	.rino-on-dark .rino-btn--secondary:hover, .rino-hero .rino-bug-cta--secondary:hover { background: var(--rino-white); color: var(--rino-navy); border-color: var(--rino-white); }
}
.rino-btn:active, .rino-bug-cta:active { transform: translateY(1px); transition-duration: 100ms; transition-timing-function: cubic-bezier(.4, 0, 1, 1); }
.rino-btn:focus-visible, .rino-bug-cta:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 3px; box-shadow: var(--rino-focus); }

/* ---------- cards ---------- */
.rino-card {
	background: var(--rino-white); border: 1px solid var(--rino-line); border-radius: var(--rino-r-l); box-shadow: var(--rino-shadow-1);
	transition: transform var(--rino-t-base) var(--rino-ease-out), box-shadow var(--rino-t-base) var(--rino-ease-out), border-color var(--rino-t-base) var(--rino-ease-out);
}
@media (hover: hover) { .rino-card:hover { transform: translateY(var(--rino-lift)); box-shadow: var(--rino-shadow-2); border-color: var(--rino-orange); } }
.rino-card { position: relative; }
.rino-card:not(.rino-card--promisiune):not(.rino-card--accent):not(.rino-card--route)::before {
	content: ""; position: absolute; inset: -1px -1px auto -1px; height: 4px; border-radius: var(--rino-r-l) var(--rino-r-l) 0 0;
	background: var(--rino-orange); transform: scaleX(0); transform-origin: left; transition: transform var(--rino-t-base) var(--rino-ease-out); pointer-events: none;
}
.rino-hero .rino-card::before { display: none; }
@media (hover: hover) { .rino-card:hover::before { transform: scaleX(1); } }
.rino-card--promisiune { background: var(--rino-ice); border: 0; border-left: 6px solid var(--rino-orange); border-radius: 0 var(--rino-r-l) var(--rino-r-l) 0; }
.rino-card--route { background: var(--rino-navy); color: var(--rino-white); border-color: var(--rino-line-dark); position: relative; overflow: hidden; }
.rino-card--route::after {
	content: ""; position: absolute; left: 1.25rem; right: 1.25rem; bottom: 1rem; height: 0;
	border-bottom: 3px dashed var(--rino-orange); opacity: .9;
	transition: transform var(--rino-t-slow) var(--rino-ease-out);
}
@media (hover: hover) { .rino-card--route:hover::after { transform: translateX(6px); } }
.rino-card--accent { background: var(--rino-orange); color: var(--rino-navy); border: 0; }
.rino-icon-chip {
	display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem;
	border-radius: .8rem; background: var(--rino-navy); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}
.rino-icon-chip img { width: 1.75rem; height: 1.75rem; filter: invert(1); }
.rino-icon-chip--orange { background: var(--rino-orange); }
.rino-icon-chip--orange img { filter: none; }

/* ---------- process timeline ---------- */
.rino-timeline { position: relative; display: grid; gap: var(--rino-s-5); padding-left: 3.25rem; counter-reset: rino-step; }
.rino-timeline::before { content: ""; position: absolute; left: 1.15rem; top: .5rem; bottom: .5rem; width: 3px; background: var(--rino-line); border-radius: 3px; }
.rino-timeline__progress { position: absolute; left: 1.15rem; top: .5rem; bottom: .5rem; width: 3px; background: var(--rino-orange); border-radius: 3px; transform-origin: top; transform: scaleY(0); }
.rino-timeline__step { position: relative; }
.rino-timeline__step::before {
	counter-increment: rino-step; content: counter(rino-step, decimal-leading-zero); position: absolute; left: -3.25rem; top: 0; width: 2.4rem; height: 2.4rem;
	display: grid; place-items: center; border-radius: 50%; background: var(--rino-white); border: 3px solid var(--rino-orange);
	color: var(--rino-navy); font-weight: 900; font-size: .85rem;
}
.rino-timeline__step h3 { margin: .35rem 0 .35rem; }

/* ---------- FAQ ---------- */
.rino-faq .wp-block-details, .rino-faq details {
	border-bottom: 1px solid var(--rino-line); padding-block: 1rem;
}
.rino-faq summary {
	cursor: pointer; font-weight: 800; line-height: 1.35; min-height: 44px; padding: .55rem 2.75rem .55rem 0; position: relative; list-style: none;
}
.rino-faq summary::-webkit-details-marker { display: none; }
.rino-faq summary::after {
	content: ""; position: absolute; right: .35rem; top: .85rem; width: 1.4rem; height: 1.4rem; border-radius: 50%;
	background: var(--rino-orange) center / 12px 12px no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M6 1v10M1 6h10' stroke='%230b1f33' stroke-width='2.4' stroke-linecap='round'/></svg>");
	transition: transform var(--rino-t-base) var(--rino-ease-in-out);
}
.rino-faq details[open] summary::after { transform: rotate(45deg); }
.rino-faq details > :not(summary) { max-width: 68ch; }

/* ---------- sticky header ---------- */
.rino-header { transition: box-shadow var(--rino-t-base) var(--rino-ease-out), background-color var(--rino-t-base) var(--rino-ease-out); }
.rino-header.is-scrolled { box-shadow: 0 6px 24px rgba(11, 31, 51, .08); }

/* ---------- mobile action bar ---------- */
.rino-bug-mobile-cta { transform: translateY(0); }
@media (max-width: 47.99rem) {
	.rino-motion .rino-bug-mobile-cta { animation: rino-bar-in var(--rino-t-slow) var(--rino-ease-expo) both; animation-delay: 300ms; }
}
@keyframes rino-bar-in { from { transform: translateY(120%); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---------- reveal (M1/M3) ---------- */
.rino-motion .rino-reveal { opacity: 0; transform: translateY(18px); }
.rino-motion .rino-reveal.is-visible {
	opacity: 1; transform: none;
	transition: opacity var(--rino-t-slow) var(--rino-ease-out), transform var(--rino-t-slow) var(--rino-ease-expo);
	transition-delay: var(--rino-delay, 0ms);
}
.rino-motion .rino-reveal:not(.is-visible) { will-change: transform, opacity; }
.rino-motion .rino-reveal--hero { transform: translateY(28px); }
.rino-motion .rino-reveal--hero.is-visible { transition-duration: var(--rino-t-hero); }
/* Hero choreography (motion-design: overlapping timeline, 90ms apart, capped at 4 children) */
.rino-motion .rino-reveal--hero > * { opacity: 0; transform: translateY(14px); }
.rino-motion .rino-reveal--hero.is-visible > * {
	opacity: 1; transform: none;
	transition: opacity var(--rino-t-slow) var(--rino-ease-out), transform var(--rino-t-slow) var(--rino-ease-expo);
}
.rino-motion .rino-reveal--hero.is-visible > :nth-child(1) { transition-delay: 120ms; }
.rino-motion .rino-reveal--hero.is-visible > :nth-child(2) { transition-delay: 210ms; }
.rino-motion .rino-reveal--hero.is-visible > :nth-child(3) { transition-delay: 300ms; }
.rino-motion .rino-reveal--hero.is-visible > :nth-child(n+4) { transition-delay: 390ms; }
/* Eyebrow: ambient pulse (loop decorativ, 2.4s, opacity only) */
.rino-motion .rino-eyebrow::before { animation: rino-eyebrow-pulse 2.4s var(--rino-ease-in-out) infinite; }
@keyframes rino-eyebrow-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
/* Editors: never hide content while editing */
.elementor-editor-active .rino-reveal, .elementor-editor-active .rino-reveal > *, .editor-styles-wrapper .rino-reveal, .editor-styles-wrapper .rino-reveal > * { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .rino-road path.rino-road-line, .editor-styles-wrapper .rino-road path.rino-road-line { stroke-dashoffset: 0 !important; animation: none !important; }
.rino-motion .rino-road path.rino-road-line { stroke-dashoffset: var(--rino-road-length, 2000); stroke-dasharray: var(--rino-road-length, 2000); }
.rino-motion .rino-road.is-visible path.rino-road-line { animation: rino-road-draw 1.6s var(--rino-ease-out) forwards; animation-delay: 200ms; }
@keyframes rino-road-draw { to { stroke-dashoffset: 0; } }
.rino-motion .rino-timeline__progress { transition: transform 120ms linear; }

/* ---------- reduced motion: same rules, no movement ---------- */
@media (prefers-reduced-motion: reduce) {
	.rino-ui-ready { scroll-behavior: auto; }
	.rino-motion .rino-reveal, .rino-motion .rino-reveal--hero, .rino-motion .rino-reveal--hero > * { opacity: 1; transform: none; transition: none; will-change: auto; }
	.rino-motion .rino-eyebrow::before { animation: none; }
	.rino-card::before { transition: none; }
	.rino-motion .rino-road path.rino-road-line { stroke-dashoffset: 0; animation: none; }
	.rino-motion .rino-bug-mobile-cta { animation: none; }
	.rino-timeline__progress { transform: scaleY(1) !important; transition: none; }
	.rino-btn, .rino-bug-cta, .rino-card, .rino-card--route::after, .rino-faq summary::after, .rino-header { transition: none; }
	.rino-btn:hover, .rino-bug-cta:hover, .rino-card:hover, .rino-card--route:hover::after { transform: none; }
}

/* ---------- forced colours / print ---------- */
@media (forced-colors: active) {
	.rino-card, .rino-btn, .rino-bug-cta, .rino-icon-chip { border: 2px solid CanvasText; }
	.rino-timeline__step::before { forced-color-adjust: none; }
}
@media print {
	.rino-hero__road, .rino-bug-mobile-cta { display: none !important; }
	.rino-motion .rino-reveal, .rino-motion .rino-reveal--hero > * { opacity: 1; transform: none; }
}

/* ---------- legal & trust layer (2.1) ---------- */
.rino-group-badge { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .9rem 1rem; border-radius: var(--rino-r-l); border: 1px solid var(--rino-line); background: var(--rino-white); color: var(--rino-navy); max-width: 32rem; }
.rino-group-badge--dark { background: rgba(255, 255, 255, .06); border-color: var(--rino-line-dark); color: var(--rino-white); }
.rino-group-badge__text { margin: 0; font-size: .95rem; line-height: 1.4; flex: 1 1 9rem; min-width: 9rem; }
.rino-group-badge__eyebrow { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--rino-orange); display: block; }
.rino-group-badge__note { font-size: .8rem; opacity: .8; }
.rino-group-badge__logo { width: clamp(120px, 20vw, 160px); height: auto; background: var(--rino-white); border-radius: .5rem; padding: .35rem; display: block; }
.rino-group-badge__link { display: inline-block; border-radius: .5rem; transition: transform var(--rino-t-fast) var(--rino-ease-out); }
@media (hover: hover) { .rino-group-badge__link:hover { transform: translateY(-2px); } }
.rino-group-badge__link:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 3px; }
.rino-group-badge--sm { padding: .6rem .8rem; gap: .75rem; }
.rino-group-badge--sm .rino-group-badge__logo { width: 110px; }

.rino-legal-links { display: grid; gap: .9rem; }
.rino-legal-links__anpc { display: flex; flex-wrap: wrap; gap: .75rem; }
.rino-anpc { display: inline-block; border-radius: 10px; line-height: 0; transition: transform var(--rino-t-fast) var(--rino-ease-out), box-shadow var(--rino-t-fast) var(--rino-ease-out); }
.rino-anpc__svg { width: min(260px, 100%); height: auto; display: block; }
@media (hover: hover) { .rino-anpc:hover { transform: translateY(-2px); box-shadow: var(--rino-shadow-1); } }
.rino-anpc:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 3px; }
.rino-legal-links__pages { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; font-size: .92rem; }
.rino-legal-links__pages a, .rino-consent-open { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.rino-consent-open { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.rino-consent-open:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 3px; }

.rino-cookie-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.rino-cookie-table th, .rino-cookie-table td { text-align: left; vertical-align: top; padding: .6rem .5rem; border-bottom: 1px solid var(--rino-line); }
.rino-cookie-table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rino-muted, #475569); }
@media (max-width: 47.99rem) {
	.rino-cookie-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.rino-cookie-table tr { display: block; padding: .5rem 0; border-bottom: 2px solid var(--rino-line); }
	.rino-cookie-table td { display: block; border: 0; padding: .15rem 0; }
	.rino-cookie-table td:first-child { font-weight: 800; }
}

.rino-consent[hidden] { display: none !important; }
.rino-consent { position: fixed; inset: auto 1rem 1rem 1rem; z-index: 1200; display: flex; justify-content: center; pointer-events: none; }
.rino-consent__inner {
	pointer-events: auto; max-width: 44rem; width: 100%; background: var(--rino-white); color: var(--rino-navy);
	border: 1px solid var(--rino-line); border-top: 6px solid var(--rino-orange); border-radius: var(--rino-r-l); box-shadow: var(--rino-shadow-2);
	padding: 1.1rem 1.25rem; display: grid; gap: .6rem;
	opacity: 0; transform: translateY(16px); transition: opacity var(--rino-t-slow) var(--rino-ease-out), transform var(--rino-t-slow) var(--rino-ease-expo);
}
.rino-consent.is-open .rino-consent__inner { opacity: 1; transform: none; }
.rino-consent__title { margin: 0; font-family: var(--rino-font-display); font-weight: 800; font-size: 1.05rem; }
.rino-consent__desc { margin: 0; font-size: .92rem; line-height: 1.5; }
.rino-consent__desc a { color: var(--rino-navy); font-weight: 700; }
.rino-consent__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; }
.rino-consent__actions .rino-btn { min-height: 2.75rem; }
body.rino-bug-has-mobile-cta .rino-consent { bottom: calc(1rem + var(--rino-mobile-bar-height, 4.5rem)); }
@media (min-width: 48rem) { body.rino-bug-has-mobile-cta .rino-consent { bottom: 1rem; } }
@media (prefers-reduced-motion: reduce) {
	.rino-consent__inner { transition: none; opacity: 1; transform: none; }
	.rino-anpc, .rino-group-badge__link { transition: none; }
	.rino-anpc:hover, .rino-group-badge__link:hover { transform: none; }
}
@media print { .rino-consent { display: none !important; } }

/* ---------- motion 2.2: every page ---------- */
/* Cross-document view transitions (same-origin navigation): a 250ms crossfade,
   only where supported and only without reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
	@view-transition { navigation: auto; }
	::view-transition-old(root) { animation: rino-vt-out 200ms var(--rino-ease-out) both; }
	::view-transition-new(root) { animation: rino-vt-in 250ms var(--rino-ease-out) both; }
	.rino-header { view-transition-name: rino-header; }
	::view-transition-old(rino-header), ::view-transition-new(rino-header) { animation: none; }
}
@keyframes rino-vt-out { to { opacity: 0; } }
@keyframes rino-vt-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Hero stripe: scroll-driven parallax (CSS only; static where unsupported). */
@supports (animation-timeline: scroll()) {
	@media (prefers-reduced-motion: no-preference) {
		.rino-motion .rino-hero::before { animation: rino-hero-drift linear both; animation-timeline: scroll(root); animation-range: 0 80vh; }
		.rino-motion .rino-hero__road { animation: rino-hero-road-drift linear both; animation-timeline: scroll(root); animation-range: 0 80vh; }
	}
}
@keyframes rino-hero-drift { to { transform: translate3d(0, -12%, 0); } }
@keyframes rino-hero-road-drift { to { transform: translate3d(0, 18%, 0); } }

/* Reading progress (guides, legal): scroll-driven bar, JS fallback with transform. */
.rino-progress { position: fixed; top: 0; left: 0; z-index: 1100; width: 100%; height: 3px; background: var(--rino-orange); transform-origin: left; transform: scaleX(0); pointer-events: none; }
@supports (animation-timeline: scroll()) {
	.rino-progress:not(.rino-progress--js) { animation: rino-progress-grow linear both; animation-timeline: scroll(root); }
}
@keyframes rino-progress-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* FAQ / details: content slides in when opened (grid-rows trick, 250ms). */
.rino-motion .rino-faq details > :not(summary), .rino-motion main details.wp-block-details > :not(summary) { animation: rino-details-in var(--rino-t-base) var(--rino-ease-out) both; }
@keyframes rino-details-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Article hero for guides */
.rino-hero--article { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(2rem, 5vw, 3.5rem); }
.rino-hero--article .wp-block-post-title { color: var(--rino-white); max-width: 22ch; }
.rino-hero--article .wp-block-post-terms a, .rino-hero--article .wp-block-post-date, .rino-hero--article .wp-block-post-author-name { color: var(--rino-ice); }
.rino-hero--article .rino-bug-breadcrumbs, .rino-hero--article .rino-bug-breadcrumbs a { color: var(--rino-ice); }
.rino-hero--article .rino-hero__road { opacity: .55; }
.rino-article-body { max-width: 72ch; margin-inline: auto; }
.rino-article-body > h2 { margin-top: 2.2em; }

/* Forms: focus, validity, submit state */
.rino-bug-request__form input:not([type="checkbox"]):not([type="submit"]), .rino-bug-request__form select, .rino-bug-request__form textarea { transition: border-color var(--rino-t-fast) var(--rino-ease-out), box-shadow var(--rino-t-fast) var(--rino-ease-out); }
.rino-bug-request__form :is(input, select, textarea):focus-visible { outline: 0; border-color: var(--rino-orange); box-shadow: 0 0 0 4px rgba(255, 90, 31, .25); }
.rino-bug-request__form :is(input, select, textarea):user-invalid { border-color: #b91c1c; }
.rino-bug-request__form :is(input, textarea):user-valid:not(:placeholder-shown) { border-color: #15803d; }
.rino-bug-request__form.is-submitting [type="submit"] { position: relative; color: transparent; pointer-events: none; }
.rino-bug-request__form.is-submitting [type="submit"]::after {
	content: ""; position: absolute; inset: 0; margin: auto; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	border: 3px solid rgba(11, 31, 51, .25); border-top-color: var(--rino-navy); animation: rino-spin 700ms linear infinite;
}
@keyframes rino-spin { to { transform: rotate(360deg); } }

/* Search results, archives, 404 */
.rino-motion .wp-block-query .wp-block-post { transition: transform var(--rino-t-base) var(--rino-ease-out); }
@media (hover: hover) { .rino-motion .wp-block-query .wp-block-post:hover { transform: translateY(-3px); } }

@media (prefers-reduced-motion: reduce) {
	.rino-progress { display: none; }
	.rino-bug-request__form :is(input, select, textarea) { transition: none; }
	.rino-bug-request__form.is-submitting [type="submit"]::after { animation: none; }
}

/* ---------- 2.2 layout & legibility: equal containers, nothing overlaps ---------- */
/* 1. Columns and grids placed inside a wide/full constrained group use the wide
      size. The editor otherwise caps them at the 760px content size, which
      squeezed three cards into ~230px each and wrapped headings mid-word. */
.is-layout-constrained:is(.alignwide, .alignfull) > :is(.wp-block-columns, .is-layout-grid):not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
	max-width: var(--wp--style--global--wide-size, 1180px);
}
/* 2. Equal-height cards: each column is a flex column and the card grows to the
      row height. A trailing note under a card stays inside the column instead
      of being pushed over the next section (the old `height: 100%` bug). */
.wp-block-columns > .wp-block-column:not(.is-vertically-aligned-center):not(.is-vertically-aligned-bottom):not(.is-vertically-aligned-top) { display: flex; flex-direction: column; }
.wp-block-columns.are-vertically-aligned-center > .wp-block-column, .wp-block-columns.are-vertically-aligned-bottom > .wp-block-column, .wp-block-columns.are-vertically-aligned-top > .wp-block-column { display: block; }
.wp-block-column > :is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card, .rino-emergency-panel) { flex: 1 0 auto; height: auto; min-height: 0; width: 100%; }
.wp-block-column > :is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) + * { flex: 0 0 auto; }
.is-layout-grid > :is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) { height: 100%; }
/* 3. Same proportions inside every card: one heading scale, one padding rhythm,
      words never split, the route's dashed line gets its own room. */
:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) :is(h2, h3):is(.has-large-font-size, .has-x-large-font-size, .has-xx-large-font-size) {
	font-size: clamp(1.2rem, 1.05rem + .7vw, 1.55rem) !important; line-height: 1.15;
}
:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) :is(h2, h3, p, li, a) { overflow-wrap: anywhere; hyphens: manual; }
:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) > :is(h2, h3) { text-wrap: pretty; }
.is-style-rino-route, .rino-card--route { padding-bottom: calc(var(--wp--preset--spacing--50, 2rem) + 1.5rem) !important; }
.is-style-rino-route::after, .rino-card--route::after { bottom: 1.1rem; }
/* 3b. Two-column narrative sections (heading | text, card | card) share the
       width 50/50 on desktop instead of 36/64, 38/62, 42/58… — one proportion
       across the site. Heroes and text|button teasers keep their split. */
@media (min-width: 782px) {
	main .wp-block-columns:not(.rino-hero .wp-block-columns):has(> .wp-block-column:nth-child(2):last-child):not(:has(> .wp-block-column > .wp-block-buttons:only-child)) > .wp-block-column[style*="flex-basis"] { flex-basis: 0 !important; flex-grow: 1; }
}
/* 3c. A panel holding only an icon becomes a compact chip instead of an empty box. */
:is(.is-style-rino-promisiune, .is-style-rino-card, .rino-card):has(> .wp-block-shortcode:only-child > .rino-icon-chip:only-child) { flex: 0 0 auto; display: grid; place-items: center; width: min(100%, 16rem); aspect-ratio: 1; padding: 1.5rem !important; margin-inline: auto; }
:is(.is-style-rino-promisiune, .is-style-rino-card, .rino-card):has(> .wp-block-shortcode:only-child > .rino-icon-chip:only-child) .rino-icon-chip { width: 6rem; height: 6rem; border-radius: 1.5rem; }
:is(.is-style-rino-promisiune, .is-style-rino-card, .rino-card):has(> .wp-block-shortcode:only-child > .rino-icon-chip:only-child) .rino-icon-chip img { width: 3.25rem; height: 3.25rem; }
/* 4. Headings: h1 gets breathing room between lines; h3 wraps naturally
      (balanced wrapping split short titles in two for no reason). */
.rino-hero h1, .rino-hero .rino-h1, h1 { line-height: 1.04; }
h3, .rino-h3, .rino-timeline__step h3 { text-wrap: pretty; }
.rino-timeline__step h3 { line-height: 1.2; }
@media (max-width: 600px) {
	.rino-hero .rino-eyebrow { font-size: .72rem; letter-spacing: .08em; line-height: 1.5; }
	.rino-hero h1, .rino-hero .rino-h1, h1 { line-height: 1.06; }
}
/* 5. FAQ: one toggle icon only (the theme's "+" glyph no longer overlaps the plugin chip). */
.rino-faq .wp-block-details summary::after, .rino-faq details summary::after, .rino-faq .wp-block-details[open] summary::after, .rino-faq details[open] summary::after { content: ""; font-size: 0; line-height: 0; }
/* 6. Cookie table on phones: each cell carries its column label. */
@media (max-width: 47.99rem) {
	.rino-cookie-table td[data-label]::before { content: attr(data-label); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--rino-muted, #475569); margin-top: .35rem; }
	.rino-cookie-table td:first-child[data-label]::before { margin-top: 0; }
}
/* 7. Consent banner never sits on the headline on short phones: compact copy. */
@media (max-width: 47.99rem) {
	.rino-consent { inset: auto .6rem .6rem .6rem; }
	.rino-consent__inner { padding: .9rem 1rem; gap: .45rem; }
	.rino-consent__desc { font-size: .86rem; line-height: 1.45; }
	.rino-consent__actions .rino-btn { flex: 1 1 10rem; }
}

/* Light hero variant (form pages, Constanța): same structure on the ice ground */
.rino-hero--light { background-color: var(--rino-ice); background-image: radial-gradient(120% 80% at 85% 0%, #ffffff 0%, var(--rino-ice) 55%); color: var(--rino-navy); }
.rino-hero--light::before { opacity: .35; }
.rino-hero--light .rino-hero__road path.rino-road-base { stroke: rgba(11, 31, 51, .12); }
.rino-hero--light .rino-eyebrow { color: var(--rino-orange); }
.wp-block-cover.rino-hero .rino-hero__road { z-index: 1; }

/* ---------- WhatsApp pop-up (2.2) ---------- */
.rino-wa { position: fixed; right: 1rem; bottom: 1rem; z-index: 1150; display: grid; justify-items: end; gap: .75rem; pointer-events: none; --rino-wa-green: #25d366; --rino-wa-dark: #128c7e; }
.rino-wa > * { pointer-events: auto; }
.rino-wa__launcher {
	display: inline-flex; align-items: center; gap: .55rem; min-height: 3.25rem; padding: .7rem 1.1rem .7rem .9rem; border: 0; border-radius: var(--rino-r-pill);
	background: var(--rino-wa-green); color: #062b1c; font: inherit; font-weight: 800; cursor: pointer;
	box-shadow: 0 8px 24px rgba(18, 140, 126, .35), 0 1px 2px rgba(0, 0, 0, .15);
	transition: transform var(--rino-t-fast) var(--rino-ease-out), box-shadow var(--rino-t-fast) var(--rino-ease-out), background-color var(--rino-t-fast) var(--rino-ease-out);
}
.rino-wa__launcher .rino-wa__glyph { width: 1.6rem; height: 1.6rem; }
@media (hover: hover) { .rino-wa__launcher:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(18, 140, 126, .4); } }
.rino-wa__launcher:focus-visible { outline: 3px solid var(--rino-navy); outline-offset: 3px; }
.rino-wa__launcher.is-nudged { animation: rino-wa-nudge 1.2s var(--rino-ease-in-out) 2; }
@keyframes rino-wa-nudge { 0%, 100% { transform: none; } 30% { transform: translateY(-4px); } 60% { transform: translateY(0); } }
.rino-wa.is-open .rino-wa__launcher { background: var(--rino-navy); color: var(--rino-white); }
.rino-wa__panel {
	width: min(22.5rem, calc(100vw - 2rem)); max-height: min(34rem, calc(100vh - 6.5rem)); overflow: auto;
	background: var(--rino-white); color: var(--rino-navy); border: 1px solid var(--rino-line); border-radius: var(--rino-r-l); box-shadow: var(--rino-shadow-2);
	transform-origin: bottom right; opacity: 0; transform: translateY(10px) scale(.96);
	transition: opacity var(--rino-t-base) var(--rino-ease-out), transform var(--rino-t-base) var(--rino-ease-expo);
}
.rino-wa.is-open .rino-wa__panel { opacity: 1; transform: none; }
.rino-wa__panel[hidden] { display: none; }
.rino-wa__head { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; background: var(--rino-wa-dark); color: var(--rino-white); position: sticky; top: 0; }
.rino-wa__avatar { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--rino-wa-green); color: #062b1c; flex: 0 0 auto; }
.rino-wa__who { min-width: 0; flex: 1 1 auto; }
.rino-wa__title { margin: 0; font-family: var(--rino-font-display); font-weight: 800; font-size: 1rem; line-height: 1.2; }
.rino-wa__status { margin: .15rem 0 0; font-size: .8rem; opacity: .9; line-height: 1.35; }
.rino-wa__close { flex: 0 0 auto; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: var(--rino-white); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.rino-wa__close:hover { background: rgba(255, 255, 255, .24); }
.rino-wa__close:focus-visible { outline: 3px solid var(--rino-white); outline-offset: 2px; }
.rino-wa__body { display: grid; gap: .7rem; padding: 1rem; background: var(--rino-ice); }
.rino-wa__bubble { margin: 0; padding: .75rem .9rem; background: var(--rino-white); border-radius: 0 .9rem .9rem .9rem; font-size: .92rem; line-height: 1.5; box-shadow: var(--rino-shadow-1); }
.rino-wa__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.rino-wa__chip { border: 1px solid var(--rino-line); background: var(--rino-white); color: var(--rino-navy); border-radius: var(--rino-r-pill); padding: .45rem .8rem; min-height: 2.25rem; font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; transition: background-color var(--rino-t-fast) var(--rino-ease-out), border-color var(--rino-t-fast) var(--rino-ease-out); }
.rino-wa__chip:hover, .rino-wa__chip[aria-pressed="true"] { background: var(--rino-navy); color: var(--rino-white); border-color: var(--rino-navy); }
.rino-wa__chip:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 2px; }
.rino-wa__label { font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--rino-muted); }
.rino-wa__message { width: 100%; box-sizing: border-box; resize: vertical; min-height: 5.5rem; padding: .65rem .75rem; border: 1px solid var(--rino-line); border-radius: var(--rino-r-m); font: inherit; font-size: .9rem; line-height: 1.45; color: var(--rino-navy); background: var(--rino-white); }
.rino-wa__message:focus-visible { outline: 0; border-color: var(--rino-wa-dark); box-shadow: 0 0 0 4px rgba(37, 211, 102, .3); }
.rino-btn--whatsapp, .rino-wa__send { background: var(--rino-wa-green) !important; color: #062b1c !important; box-shadow: 0 6px 18px rgba(18, 140, 126, .3) !important; }
.rino-btn--whatsapp .rino-wa__glyph { width: 1.35rem; height: 1.35rem; }
@media (hover: hover) { .rino-btn--whatsapp:hover, .rino-wa__send:hover { background: #1fc25a !important; } }
.rino-wa__send { width: 100%; }
.rino-wa__call { font-size: .88rem; font-weight: 700; color: var(--rino-navy); text-align: center; text-decoration: underline; text-underline-offset: .2em; }
.rino-wa__note { margin: 0; font-size: .74rem; line-height: 1.4; color: var(--rino-muted); }
/* Stacking with the mobile rail and the consent banner: the launcher sits above the rail, and steps aside while the banner is open. */
@media (max-width: 63.99rem) {
	.rino-wa__launcher { padding: .7rem; }
	.rino-wa__launcher-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
@media (max-width: 47.99rem) {
	body.rino-bug-has-mobile-cta .rino-wa { bottom: calc(1rem + var(--rino-mobile-bar-height, 4.5rem)); right: .75rem; }
	.rino-wa__panel { width: calc(100vw - 1.5rem); max-height: calc(100vh - var(--rino-mobile-bar-height, 4.5rem) - 6rem); }
}
.rino-consent.is-open ~ .rino-wa:not(.is-open) { opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity var(--rino-t-base) var(--rino-ease-out), transform var(--rino-t-base) var(--rino-ease-out); }
.rino-wa { transition: opacity var(--rino-t-base) var(--rino-ease-out), transform var(--rino-t-base) var(--rino-ease-out); }
@media (prefers-reduced-motion: reduce) {
	.rino-wa, .rino-wa__panel, .rino-wa__launcher, .rino-wa__chip { transition: none; }
	.rino-wa__panel { opacity: 1; transform: none; }
	.rino-wa__launcher.is-nudged { animation: none; }
	.rino-wa__launcher:hover { transform: none; }
}
@media print { .rino-wa { display: none !important; } }

/* ---------- growth 2.2: link grids, service cards, locality lists ---------- */
.rino-link-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
.rino-link-grid > .wp-block-group.is-style-rino-card { height: 100%; margin: 0; }
.rino-link-grid p { margin: 0; }
.rino-link-grid a { text-decoration: none; color: var(--rino-navy); }
.rino-link-grid a:hover { text-decoration: underline; text-decoration-color: var(--rino-orange); text-decoration-thickness: 3px; text-underline-offset: .25em; }
.rino-service-card { display: grid; gap: .5rem; padding: 1.25rem 1.5rem 1.25rem; text-decoration: none; color: var(--rino-navy); position: relative; }
.rino-service-card__title { font-family: var(--rino-font-display); font-weight: 800; font-size: clamp(1.15rem, 1.05rem + .5vw, 1.4rem); line-height: 1.2; padding-right: 2rem; }
.rino-service-card__text { font-size: .95rem; line-height: 1.5; color: var(--rino-muted); }
.rino-service-card__more { position: absolute; right: 1.25rem; top: 1.2rem; color: var(--rino-orange); font-weight: 900; transition: transform var(--rino-t-fast) var(--rino-ease-out); }
@media (hover: hover) { .rino-service-card:hover .rino-service-card__more { transform: translateX(4px); } }
.rino-service-card:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 3px; }
.rino-locality-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); }
.rino-locality-list a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; text-decoration: none; color: inherit; }
.rino-locality-list a::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--rino-orange); margin-right: .6rem; flex: 0 0 auto; }
.rino-locality-list a:hover { text-decoration: underline; text-decoration-color: var(--rino-orange); text-decoration-thickness: 2px; text-underline-offset: .25em; }
.rino-seo .rino-lead { color: var(--rino-navy); }
.rino-seo .is-style-rino-checklist { margin-block: .5rem 1.5rem; }
.rino-seo h2.has-large-font-size { margin-top: 2.25rem; }
.rino-localities h2 { margin-bottom: 1rem; }
.rino-localities-section:has(.wp-block-shortcode:empty) { display: none; }
/* Primary CTA placed on an orange surface stays visible (navy on orange). */
.has-orange-background-color .rino-bug-cta--primary, .has-orange-background-color .rino-btn--primary, .is-style-rino-accent .rino-bug-cta--primary, .rino-card--accent .rino-btn--primary { background: var(--rino-navy); color: var(--rino-white); box-shadow: 0 6px 18px rgba(11, 31, 51, .28); }
.has-orange-background-color .rino-bug-cta--secondary, .is-style-rino-accent .rino-bug-cta--secondary { background: transparent; color: var(--rino-navy); border-color: var(--rino-navy); }
@media (hover: hover) { .has-orange-background-color .rino-bug-cta--primary:hover, .is-style-rino-accent .rino-bug-cta--primary:hover { background: var(--rino-navy-soft); } }
/* Post lists (related guides, archives): compact, uniform titles. */
.wp-block-query .wp-block-post-title { font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem) !important; line-height: 1.25; text-wrap: pretty; }
.wp-block-query .wp-block-post-excerpt__excerpt { font-size: .95rem; }

/* ---------- 2.2.1 timeline: the line runs exactly through the step markers ---------- */
.rino-timeline.is-layout-constrained, .rino-timeline { padding-left: 3.25rem !important; padding-right: 0 !important; }
.rino-timeline > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.rino-timeline__step.has-global-padding { padding-left: 0; padding-right: 0; }
.rino-timeline::before, .rino-timeline__progress { left: calc(1.2rem - 1.5px); }
.rino-timeline__step::before { left: -3.25rem; top: -.1rem; }
.rino-timeline__step > :first-child { margin-top: 0; }
.rino-timeline { justify-items: stretch; }
.rino-timeline > .rino-timeline__step { width: 100%; justify-self: stretch; }
/* Base line = one segment per step (marker to next marker); progress bar stops at the last marker. */
.rino-timeline::before { display: none; }
.rino-timeline__step:not(:last-child)::after { content: ""; position: absolute; left: calc(-3.25rem + 1.2rem - 1.5px); top: 2.3rem; bottom: calc(-1 * var(--rino-s-5) - .1rem); width: 3px; background: var(--rino-line); border-radius: 3px; }
.rino-timeline__progress { top: 1.1rem; bottom: var(--rino-tl-tail, .5rem); }
@media (prefers-reduced-motion: reduce) { .rino-timeline__progress { transform: scaleY(1) !important; } }

/* =============================================================================
   2.2.1 — UI/UX: rhythm & container positioning
   One vertical rhythm for sections, one card padding, one grid gap, one
   measure for prose, headings capped at a readable width, CTAs aligned.
   ============================================================================= */
main > section.alignfull, main > .wp-block-group.alignfull, .rino-seo, .rino-faq.alignwide { padding-top: clamp(3rem, 7vw, 5.5rem) !important; padding-bottom: clamp(3rem, 7vw, 5.5rem) !important; }
main > .rino-hero { padding-top: clamp(3.5rem, 8vw, 6rem) !important; padding-bottom: clamp(3.5rem, 8vw, 6rem) !important; }
main > .rino-hero:not(.rino-hero--article):not(.rino-hero--light) { min-height: clamp(480px, 62vh, 680px); display: flex; flex-direction: column; justify-content: center; }
main > .rino-hero > * { width: 100%; }
/* section intro block: eyebrow → h2 → lead, tight and aligned */
.rino-eyebrow, .rino-hero .rino-eyebrow { margin-bottom: .6rem; }
.rino-eyebrow + h1, .rino-eyebrow + h2, .rino-eyebrow + .rino-h1, .rino-eyebrow + .rino-h2, p.has-orange-color + h1, p.has-orange-color + h2 { margin-top: .35rem; }
main h2.has-x-large-font-size, main h2.has-xx-large-font-size { margin-bottom: .6em; }
/* cards: one padding rhythm, one radius, one gap */
.wp-block-column > :is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card), .is-layout-grid > :is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) { padding: clamp(1.25rem, 1rem + 1vw, 1.75rem) !important; }
.is-style-rino-route, .rino-card--route { padding-bottom: calc(clamp(1.25rem, 1rem + 1vw, 1.75rem) + 1.5rem) !important; }
.wp-block-columns { gap: 1.5rem !important; }
.wp-block-columns:not(.is-not-stacked-on-mobile) { row-gap: 1.25rem !important; }
.is-layout-grid { gap: 1.5rem !important; }
:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) > .wp-block-shortcode:first-child { margin-bottom: .9rem; }
:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) > :is(h2, h3) { margin-top: 0; margin-bottom: .5rem; }
:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent, .rino-card) > p:last-child { margin-bottom: 0; }
/* CTA groups: consistent gap and wrapping; buttons share one height */
.wp-block-buttons { gap: .75rem 1rem !important; align-items: center; }
.wp-block-button__link, .rino-btn, .rino-bug-cta { min-height: 3rem; padding-block: .8rem; }
.rino-hero .wp-block-buttons { margin-top: 1.5rem; }
/* checklists: aligned markers, even spacing */
.is-style-rino-checklist li { line-height: 1.5; }
.is-style-rino-checklist li + li { margin-top: .6rem; }
/* footer: columns aligned to the top, links spaced evenly */
.rino-footer .wp-block-columns > .wp-block-column { display: block; }
.rino-footer h2 { margin-bottom: .75rem; }
/* mobile: tighter rhythm, full-width cards, no orphan margins */
@media (max-width: 600px) {
	main > section.alignfull, main > .wp-block-group.alignfull, .rino-seo, .rino-faq.alignwide { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
	main > .rino-hero { min-height: 0; }
	.wp-block-columns { gap: 1rem !important; }
}

/* =============================================================================
   2.2.1 — Pro motion (transform/opacity only; static under reduced motion)
   ============================================================================= */
/* Hero headline: words rise from a mask, 40 ms apart (JS splits into .rino-word). */
.rino-motion .rino-word { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .08em; margin-bottom: -.08em; }
.rino-motion .rino-word > span { display: inline-block; transform: translateY(110%); opacity: 0; transition: transform 640ms var(--rino-ease-expo), opacity 320ms var(--rino-ease-out); transition-delay: var(--rino-word-delay, 0ms); will-change: transform; }
.rino-motion .rino-words-in .rino-word > span, .rino-motion .rino-reveal.is-visible .rino-word > span { transform: none; opacity: 1; }
/* Eyebrow rule draws in when revealed. */
.rino-motion .rino-eyebrow::before { transform-origin: left; transform: scaleX(0); transition: transform 520ms var(--rino-ease-expo) 120ms; animation: none; }
.rino-motion .is-visible .rino-eyebrow::before, .rino-motion .rino-eyebrow.is-visible::before, .rino-motion .rino-words-in .rino-eyebrow::before, .rino-motion .rino-hero .rino-eyebrow::before { transform: scaleX(1); }
/* Cards: scale-in reveal + 3D tilt on hover (pointer fine only). */
.rino-motion .rino-reveal:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .rino-card) { transform: translateY(18px) scale(.97); }
.rino-motion .rino-reveal.is-visible:is(.is-style-rino-card, .is-style-rino-promisiune, .is-style-rino-route, .rino-card) { transform: none; }
@media (hover: hover) and (pointer: fine) {
	.rino-motion .rino-tilt { transform-style: preserve-3d; transition: transform 180ms var(--rino-ease-out), box-shadow var(--rino-t-base) var(--rino-ease-out), border-color var(--rino-t-base) var(--rino-ease-out); }
	.rino-motion .rino-tilt.is-tilting { transform: perspective(900px) rotateX(var(--rino-rx, 0deg)) rotateY(var(--rino-ry, 0deg)) translateY(var(--rino-lift)); transition: transform 60ms linear, box-shadow var(--rino-t-base) var(--rino-ease-out); }
}
/* Buttons: light sweep on hover; magnetic nudge handled by JS through --rino-mx/--rino-my. */
.rino-btn, .rino-bug-cta, .wp-block-button__link { position: relative; overflow: hidden; }
.rino-btn::after, .rino-bug-cta::after, .wp-block-button__link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%); transform: translateX(-120%); pointer-events: none; }
@media (hover: hover) {
	.rino-motion :is(.rino-btn, .rino-bug-cta, .wp-block-button__link):hover::after { transform: translateX(120%); transition: transform 700ms var(--rino-ease-out); }
	.rino-motion .rino-magnet { transform: translate(var(--rino-mx, 0px), var(--rino-my, 0px)); transition: transform 160ms var(--rino-ease-out); }
}
/* Timeline markers pop when their step is revealed. */
.rino-motion .rino-timeline__step::before { transform: scale(.55); opacity: 0; transition: transform 520ms var(--rino-ease-expo) 80ms, opacity 240ms var(--rino-ease-out) 80ms; }
.rino-motion .rino-timeline__step.is-visible::before { transform: scale(1); opacity: 1; }
/* Featured images: unveil from the bottom, slight zoom-out. */
.rino-motion .wp-block-post-featured-image img, .rino-motion .rino-article-body figure img { clip-path: inset(0 0 100% 0); transform: scale(1.06); transition: clip-path 900ms var(--rino-ease-expo), transform 1200ms var(--rino-ease-out); }
.rino-motion .is-visible :is(.wp-block-post-featured-image img, figure img), .rino-motion :is(.wp-block-post-featured-image, figure).is-visible img { clip-path: inset(0 0 0 0); transform: none; }
/* Sticky header: logo settles smaller once scrolled. */
.rino-header .rino-brand-logo, .rino-header .rino-bug-logo-link img { transition: transform var(--rino-t-base) var(--rino-ease-out); transform-origin: left center; }
.rino-header.is-scrolled .rino-brand-logo, .rino-header.is-scrolled .rino-bug-logo-link img { transform: scale(.88); }
/* WhatsApp launcher: soft ring every 6 s until first interaction. */
.rino-motion .rino-wa__launcher:not(.is-quiet)::before { content: ""; position: absolute; inset: -4px; border-radius: inherit; border: 2px solid var(--rino-wa-green); opacity: 0; animation: rino-wa-ring 6s ease-out infinite 4s; pointer-events: none; }
.rino-wa__launcher { position: relative; }
@keyframes rino-wa-ring { 0% { transform: scale(1); opacity: .7; } 25% { transform: scale(1.35); opacity: 0; } 100% { transform: scale(1.35); opacity: 0; } }
/* Reduced motion: every rule above collapses to its final state. */
@media (prefers-reduced-motion: reduce) {
	.rino-word > span, .rino-eyebrow::before, .rino-timeline__step::before, .wp-block-post-featured-image img, .rino-article-body figure img { transform: none !important; opacity: 1 !important; clip-path: none !important; transition: none !important; }
	.rino-tilt, .rino-magnet { transform: none !important; }
	.rino-btn::after, .rino-bug-cta::after, .wp-block-button__link::after { display: none; }
	.rino-wa__launcher::before { animation: none; display: none; }
	.rino-header.is-scrolled .rino-brand-logo, .rino-header.is-scrolled .rino-bug-logo-link img { transform: none; }
}
/* Panel sections (promisiune/route/accent used as a wide section): children fill the panel, aligned left. */
section:is(.is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent).alignwide > :where(:not(.alignfull)) { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
section:is(.is-style-rino-promisiune, .is-style-rino-route, .is-style-rino-accent).alignwide > h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem) !important; margin-bottom: 1rem; }

/* ---------- 2.2.1b containers: heroes span the wide box; forms sit flat inside their panel ---------- */
main > .rino-hero > :where(:not(.alignfull):not(.alignwide):not(.wp-block-shortcode)) { max-width: var(--wp--style--global--wide-size, 1180px); }
.rino-emergency-panel .rino-bug-request, .is-style-rino-card .rino-bug-request, .rino-card .rino-bug-request { background: transparent; padding: 0; border-radius: 0; max-width: none; }
.rino-emergency-panel .rino-bug-request > h2, .rino-emergency-panel .rino-bug-request > h3 { margin-top: 0; }
.rino-bug-request__form .rino-bug-cta[type="submit"], .rino-bug-b2b__form .rino-bug-cta[type="submit"] { font-size: 1rem; width: 100%; min-height: 3.25rem; }
.rino-bug-request__form .rino-bug-field + .rino-bug-field { margin-top: 1rem; }

/* ---------- pro motion 2.2.1b ---------- */
/* Road marker: a platform "beacon" travelling the hero road (SMIL, GPU-cheap, no JS). Hidden until the line is drawn. */
.rino-road-marker { opacity: 0; transition: opacity 600ms var(--rino-ease-out) 1.6s; }
.rino-motion .rino-road.is-visible .rino-road-marker { opacity: 1; }
.rino-road-marker__dot { fill: var(--rino-orange); }
.rino-road-marker__halo { fill: var(--rino-orange); opacity: .22; animation: rino-halo 1.8s var(--rino-ease-in-out) infinite; transform-box: fill-box; transform-origin: center; }
@keyframes rino-halo { 0%, 100% { transform: scale(.7); opacity: .28; } 50% { transform: scale(1.15); opacity: .08; } }
.rino-hero--light .rino-road-marker__dot { fill: var(--rino-navy); }
/* Smart sticky header: slides away when scrolling down, returns on scroll up (mobile + desktop). */
.rino-header { transition: box-shadow var(--rino-t-base) var(--rino-ease-out), background-color var(--rino-t-base) var(--rino-ease-out), transform var(--rino-t-slow) var(--rino-ease-expo); }
.rino-motion .rino-header.is-hidden { transform: translateY(-100%); box-shadow: none; }
.rino-motion .rino-header.is-hidden:focus-within, .rino-motion .rino-header.is-hidden:has(.is-menu-open) { transform: none; }
/* Checklist items rise one after another when their list is revealed. */
.rino-motion .is-style-rino-checklist.rino-reveal > li { opacity: 0; transform: translateX(-10px); transition: opacity 360ms var(--rino-ease-out), transform 460ms var(--rino-ease-expo); transition-delay: calc(var(--rino-i, 0) * 60ms); }
.rino-motion .is-style-rino-checklist.rino-reveal.is-visible > li { opacity: 1; transform: none; }
.rino-motion .is-style-rino-checklist.rino-reveal > li::before { transform: scale(0); transition: transform 380ms var(--rino-ease-expo); transition-delay: calc(var(--rino-i, 0) * 60ms + 120ms); }
.rino-motion .is-style-rino-checklist.rino-reveal.is-visible > li::before { transform: scale(1); }
/* FAQ: answers expand smoothly (grid-rows), the toggle chip spins into a minus. */
.rino-faq details > .rino-faq__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--rino-t-slow) var(--rino-ease-expo); }
.rino-faq details[open] > .rino-faq__body { grid-template-rows: 1fr; }
.rino-faq details > .rino-faq__body > div { overflow: hidden; min-height: 0; }
.rino-faq details.is-closing > .rino-faq__body { grid-template-rows: 0fr; }
.rino-motion .rino-faq details > .rino-faq__body > div > * { animation: none; }
.rino-faq summary::after { transition: transform var(--rino-t-slow) var(--rino-ease-expo), background-color var(--rino-t-fast) var(--rino-ease-out); }
.rino-faq details[open] summary::after { transform: rotate(135deg); background-color: var(--rino-navy); }
@media (prefers-reduced-motion: reduce) {
	.rino-road-marker { display: none; }
	.rino-header.is-hidden { transform: none !important; }
	.is-style-rino-checklist > li, .is-style-rino-checklist > li::before { opacity: 1 !important; transform: none !important; transition: none !important; }
	.rino-faq details > .rino-faq__body { transition: none; }
}
/* Inside heroes nothing floats in the middle: constrained children line up with the wide left edge. */
main > .rino-hero .is-layout-constrained > :where(:not(.alignfull):not(.alignwide):not(.has-text-align-center)) { margin-left: 0 !important; }
main > .rino-hero > .is-layout-constrained > :where(:not(.alignfull):not(.alignwide):not(.has-text-align-center)) { max-width: var(--wp--style--global--wide-size, 1180px); }
.rino-hero .rino-bug-company-details { max-width: 40rem; }

/* ---- 2.2.3 legal: official ANPC SAL/SOL artwork + plugin legal fallback ---- */
.rino-anpc { background: transparent; border-radius: 12px; }
.rino-anpc__img { width: min(250px, 100%); height: auto; display: block; }
.rino-legal-links__anpc { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.rino-legal-fallback { background: var(--rino-navy, #0b1f33); color: #fff; padding: clamp(1.5rem, 4vw, 2.5rem) 1rem; }
.rino-legal-fallback__inner { max-width: 1180px; margin: 0 auto; display: grid; gap: 1.25rem; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 782px) { .rino-legal-fallback__inner { grid-template-columns: 1fr 1fr; } .rino-legal-fallback__line { grid-column: 1 / -1; } }
.rino-legal-fallback__line { margin: 0; font-size: .9rem; opacity: .9; }
.rino-legal-fallback .rino-legal-links__pages a, .rino-legal-fallback a { color: #fff; }
@media (max-width: 64rem) { .rino-legal-fallback { padding-bottom: 6.5rem; } }

/* ==== 2.2.4 mobile UI/UX =================================================== */
/* Menu overlay: brand row, left-aligned links with dividers, actions block. */
.rino-nav-brand, .rino-nav-extra { display: none; }
@media (max-width: 900px) {
	.rino-header .wp-block-navigation__responsive-container.is-menu-open { padding: 0 !important; background: #fff; color: var(--rino-navy); }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { max-width: none; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { display: flex; flex-direction: column; min-height: 100%; padding: 0 clamp(1.25rem, 5vw, 2rem) 2rem; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .rino-nav-brand { display: flex; align-items: center; min-height: 68px; margin-bottom: .25rem; border-bottom: 1px solid var(--rino-line, #e5e9ef); }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .rino-nav-brand .rino-brand-logo { width: 155px; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top: 12px; right: clamp(1.25rem, 5vw, 2rem); width: 44px; height: 44px; display: grid; place-items: center; border-radius: 999px; background: var(--rino-ice, #eef3f8); color: var(--rino-navy); }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; flex: 0 0 auto; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; align-items: stretch !important; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--rino-line, #e5e9ef); }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: flex !important; align-items: center; justify-content: space-between; width: 100%; min-height: 50px; padding: .5rem 0 !important; font-size: 1.15rem !important; font-weight: 800 !important; letter-spacing: -.01em; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { content: ""; width: .6rem; height: .6rem; border-right: 2px solid var(--rino-orange); border-bottom: 2px solid var(--rino-orange); transform: rotate(-45deg); opacity: .8; flex: 0 0 auto; margin-left: 1rem; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .rino-nav-extra { display: block; margin-top: auto; padding-top: 1rem; }
	.rino-nav-extra__actions { display: grid; gap: .5rem; }
	.rino-nav-extra__btn { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem; padding: .6rem 1rem; border-radius: 12px; border: 2px solid var(--rino-navy); color: var(--rino-navy); font-weight: 800; text-decoration: none; }
	.rino-nav-extra__btn--primary { background: var(--rino-orange); border-color: var(--rino-orange); color: var(--rino-navy); box-shadow: 0 10px 24px rgba(255, 90, 31, .28); }
	.rino-nav-extra__btn--wa { background: #25d366; border-color: #25d366; color: #0b1f33; }
	.rino-nav-extra__muted { font-weight: 600; opacity: .75; }
	.rino-nav-extra__contact { margin: 1rem 0 0; font-size: .85rem; line-height: 1.5; color: var(--rino-slate, #52606d); }
	.rino-nav-extra__contact a { color: inherit; }
	/* Fixed layers step aside while the menu is open. */
	html.has-modal-open .rino-wa, html.has-modal-open .rino-bug-mobile-cta, html.has-modal-open .rino-consent,
	html.rino-menu-open .rino-wa, html.rino-menu-open .rino-bug-mobile-cta, html.rino-menu-open .rino-consent { display: none !important; }
	/* Staggered entrance. */
	.rino-motion .is-menu-open .rino-nav-in { animation: rino-nav-in .42s var(--rino-ease-out, cubic-bezier(.2,.7,.2,1)) both; animation-delay: calc(60ms + var(--rino-i, 0) * 45ms); }
	@keyframes rino-nav-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}

/* Hero: primary action above the fold on phones. */
@media (max-width: 47.99rem) {
	main > .rino-hero { min-height: 0 !important; padding-top: 2rem !important; padding-bottom: 2.25rem !important; }
	.rino-hero h1 { font-size: clamp(1.95rem, 8.2vw, 2.4rem) !important; line-height: 1.06 !important; margin-bottom: .75rem !important; }
	.rino-hero .rino-eyebrow { font-size: .78rem; margin-bottom: .75rem; }
	.rino-hero p.has-large-font-size, .rino-hero .rino-lead, .rino-hero .wp-block-post-excerpt.has-large-font-size p { font-size: 1.05rem !important; line-height: 1.55 !important; }
	.rino-hero .rino-bug-breadcrumbs { font-size: .8rem; margin-block: 0 .75rem; }
	.rino-hero .rino-bug-breadcrumbs a, .rino-hero .rino-bug-breadcrumbs li { min-height: 0; line-height: 1.6; }
	.rino-hero .wp-block-column:not(:first-child) { margin-top: .5rem; }
	.rino-hero .wp-block-buttons { gap: .625rem; }
	.rino-hero .wp-block-buttons > .wp-block-button .wp-block-button__link { min-height: 3.25rem; padding: .8rem 1.1rem; }
	main > section.alignfull, main > .wp-block-group.alignfull, .rino-seo, .rino-faq.alignwide { padding-top: 2.25rem !important; padding-bottom: 2.25rem !important; }
	h2.wp-block-heading { font-size: clamp(1.5rem, 6.4vw, 1.9rem); }
}

/* Footer on phones: compact link lists, side-by-side nav columns, no white gap
   under the footer behind the fixed contact bar. */
@media (max-width: 781px) {
	.rino-footer > .wp-block-columns.alignwide { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; }
	.rino-footer > .wp-block-columns.alignwide > .wp-block-column:first-child { grid-column: 1 / -1; }
	.rino-footer .wp-block-navigation.is-vertical .wp-block-navigation__container { gap: 0 !important; }
	.rino-footer .wp-block-navigation:not(.is-vertical) .wp-block-navigation__container { gap: .25rem 1rem !important; }
	.rino-footer .wp-block-navigation-item__content { min-height: 40px; font-size: .95rem; }
	.rino-footer h2.wp-block-heading { font-size: 1.05rem; margin-bottom: .25rem; }
	.rino-footer .rino-legal .wp-block-columns { display: grid !important; gap: 1rem; }
}
@media (max-width: 47.99rem) {
	body.rino-bug-has-mobile-cta { padding-bottom: 0 !important; }
	body.rino-bug-has-mobile-cta footer.wp-block-template-part > .wp-block-group.alignfull:last-child,
	body.rino-bug-has-mobile-cta .rino-footer.alignfull,
	body.rino-bug-has-mobile-cta .rino-legal-fallback { padding-bottom: calc(var(--wp--preset--spacing--40, 1.5rem) + 5.25rem) !important; }
	body.rino-bug-has-mobile-cta .rino-legal-fallback { padding-bottom: 6.5rem !important; }
	/* WhatsApp panel: the launcher hides while the dialog is open (it has its own close). */
	.rino-wa.is-open .rino-wa__launcher { opacity: 0; pointer-events: none; }
	.rino-wa__panel { width: calc(100vw - 1.5rem) !important; max-height: calc(100dvh - var(--rino-mobile-bar-height, 4.5rem) - 2rem) !important; }
}
/* Tablet: the overlay content sits in a readable column, larger targets. */
@media (min-width: 600px) and (max-width: 900px) {
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { max-width: 40rem; margin: 0 auto; width: 100%; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { right: max(clamp(1.25rem, 5vw, 2rem), calc((100vw - 40rem) / 2 + 1.5rem)); }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { min-height: 60px; font-size: 1.35rem !important; }
	.rino-nav-extra__btn { min-height: 3.5rem; font-size: 1.05rem; }
	.rino-nav-extra__contact { font-size: .95rem; }
}

/* ==== 2.3 service pages (group-derived) ==================================== */
.rino-summary { border-left: 4px solid var(--rino-orange); border-radius: 14px; margin-bottom: 1.5rem; }
.rino-summary .rino-eyebrow { margin-bottom: .35rem; }
.rino-summary .rino-lead { margin: 0; font-size: 1.1rem; line-height: 1.6; }
.rino-steps { counter-reset: rino-step; list-style: none; padding-left: 0; margin: 0 0 1.5rem; display: grid; gap: .6rem; }
.rino-steps li { counter-increment: rino-step; position: relative; padding-left: 3rem; min-height: 2.25rem; display: flex; align-items: center; }
.rino-steps li::before { content: counter(rino-step, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 2.25rem; height: 2.25rem; border-radius: 999px; border: 2px solid var(--rino-orange); color: var(--rino-navy); font-weight: 800; font-size: .85rem; display: grid; place-items: center; background: #fff; }
.rino-service-media .wp-block-video { border-radius: 18px; overflow: hidden; box-shadow: var(--rino-shadow-2, 0 20px 40px rgba(11,31,51,.18)); margin: 1.5rem 0; }
.rino-service-media .wp-block-video video { width: 100%; display: block; background: #0b1f33; }
.rino-service-media .wp-block-gallery { gap: .75rem; margin-top: 1.5rem; }
.rino-service-media .wp-block-gallery .wp-block-image { border-radius: 14px; overflow: hidden; }
.rino-service-media .wp-block-gallery .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: 100%; }
.rino-hero--service .rino-hero__media .wp-block-post-featured-image { margin: 0; }
.rino-hero--service .rino-hero__media img { border-radius: 18px; box-shadow: 0 24px 48px rgba(0,0,0,.35); width: 100%; height: auto; }
.rino-updated, .rino-updated-date { display: inline; color: var(--rino-slate, #52606d); }
.rino-updated-date { margin-left: .25rem; }
@media (max-width: 47.99rem) { .rino-hero--service .rino-hero__media { margin-top: 1rem; } .rino-hero--service .rino-hero__media img { border-radius: 14px; } }

/* ==== 2.3 modern mobile menu (grouped, app-like) ============================ */
@media (max-width: 900px) {
	/* The flat WP list is replaced by the grouped structure inside the overlay. */
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { display: none !important; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { padding-bottom: 2.5rem; }
	.rino-header .wp-block-navigation__responsive-container.is-menu-open .rino-nav-modern { margin-top: 0; padding-top: 1rem; }
	.rino-nav-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
	.rino-nav-tile { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .75rem; align-items: center; padding: .9rem 1rem; border-radius: 16px; text-decoration: none; color: #fff; background: var(--rino-navy); box-shadow: 0 10px 24px rgba(11, 31, 51, .18); min-height: 4.25rem; }
	.rino-nav-tile--wa { background: #1f9d5a; box-shadow: 0 10px 24px rgba(31, 157, 90, .28); }
	.rino-nav-tile__icon { grid-row: 1 / span 2; width: 2.5rem; height: 2.5rem; border-radius: 12px; display: grid; place-items: center; background: rgba(255, 255, 255, .14); }
	.rino-nav-tile__label { font-weight: 800; font-size: 1rem; line-height: 1.2; }
	.rino-nav-tile__sub { font-size: .78rem; opacity: .85; line-height: 1.2; }
	.rino-nav-primary { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: .75rem; min-height: 3.25rem; border-radius: 14px; background: var(--rino-orange); color: var(--rino-navy); font-weight: 800; font-size: 1.05rem; text-decoration: none; box-shadow: 0 12px 28px rgba(255, 90, 31, .32); }
	.rino-nav-groups { display: grid; gap: 1.1rem; margin-top: 1.5rem; }
	.rino-nav-group__label { margin: 0 0 .4rem .25rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--rino-orange); }
	.rino-nav-group__list { list-style: none; margin: 0; padding: 0; background: var(--rino-ice, #eef3f8); border-radius: 16px; overflow: hidden; }
	.rino-nav-group__list li + li { border-top: 1px solid rgba(11, 31, 51, .08); }
	.rino-nav-group__list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.1rem; padding: .7rem 1rem; color: var(--rino-navy); font-weight: 700; font-size: 1.02rem; text-decoration: none; }
	.rino-nav-group__list a svg { color: var(--rino-orange); flex: 0 0 auto; }
	.rino-nav-group__list a[aria-current="page"] { background: rgba(255, 90, 31, .12); }
	.rino-nav-group__list a:active { background: rgba(11, 31, 51, .06); }
	.rino-nav-modern .rino-nav-extra__contact { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(11, 31, 51, .1); }
}
@media (min-width: 600px) and (max-width: 900px) {
	.rino-nav-tiles { grid-template-columns: 1fr 1fr; }
	.rino-nav-groups { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
	.rino-nav-groups .rino-nav-group:first-child { grid-column: 1 / -1; }
}
@media (max-width: 420px) {
	.rino-nav-tile { padding: .75rem .8rem; column-gap: .6rem; min-height: 4rem; }
	.rino-nav-tile__icon { width: 2.1rem; height: 2.1rem; }
	.rino-nav-tile__icon svg { width: 18px; height: 18px; }
	.rino-nav-tile__label { font-size: .92rem; white-space: nowrap; }
	.rino-nav-tile__sub { font-size: .7rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.rino-nav-group__list a { min-height: 2.9rem; padding: .6rem .9rem; font-size: .98rem; }
}
/* Motion for the modern menu: overlay fade + slide, tiles pop, press feedback. */
@media (max-width: 900px) {
	.rino-motion .rino-header .wp-block-navigation__responsive-container.is-menu-open { animation: rino-menu-in .32s var(--rino-ease-out, cubic-bezier(.2,.7,.2,1)) both; }
	@keyframes rino-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
	.rino-motion .is-menu-open .rino-nav-tile.rino-nav-in, .rino-motion .is-menu-open .rino-nav-primary.rino-nav-in { animation-name: rino-tile-in; }
	@keyframes rino-tile-in { from { opacity: 0; transform: translateY(10px) scale(.96); } to { opacity: 1; transform: none; } }
	.rino-nav-tile, .rino-nav-primary, .rino-nav-group__list a { transition: transform .18s var(--rino-ease-out, ease-out), background-color .18s ease, box-shadow .18s ease; }
	.rino-nav-tile:active, .rino-nav-primary:active { transform: scale(.97); }
	.rino-nav-group__list a:active { transform: translateX(2px); }
	.rino-nav-group__list a svg { transition: transform .18s var(--rino-ease-out, ease-out); }
	.rino-nav-group__list a:active svg { transform: translateX(3px); }
	.rino-header .wp-block-navigation__responsive-container-close svg { transition: transform .25s var(--rino-ease-out, ease-out); }
	.rino-header .wp-block-navigation__responsive-container-close:active svg { transform: rotate(90deg); }
}
@media (prefers-reduced-motion: reduce) {
	.rino-header .wp-block-navigation__responsive-container.is-menu-open, .rino-nav-in { animation: none !important; }
	.rino-nav-tile, .rino-nav-primary, .rino-nav-group__list a, .rino-nav-group__list a svg { transition: none !important; }
}

/* ==== 2.3.1 cookie module — legibility, proportions, motion ================= */
.rino-consent { position: fixed; inset: auto 1rem 1rem 1rem; z-index: 1200; display: flex; justify-content: flex-start; pointer-events: none; }
.rino-consent__inner {
	pointer-events: auto;
	position: relative;
	width: min(27rem, 100%);
	display: grid;
	gap: .75rem;
	padding: 1.25rem 1.35rem 1.15rem;
	background: #fff;
	color: var(--rino-navy);
	border-radius: 20px;
	border: 1px solid rgba(11, 31, 51, .08);
	box-shadow: 0 24px 60px rgba(11, 31, 51, .28);
	opacity: 0;
	transform: translateY(14px) scale(.985);
	transition: opacity .38s var(--rino-ease-out, cubic-bezier(.2,.7,.2,1)), transform .38s var(--rino-ease-out, cubic-bezier(.2,.7,.2,1));
}
.rino-consent__inner::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; border-radius: 20px 20px 0 0; background: linear-gradient(90deg, var(--rino-orange), #ffb08a); }
.rino-consent.is-open .rino-consent__inner { opacity: 1; transform: none; }
.rino-consent__head { display: flex; align-items: center; gap: .6rem; }
.rino-consent__icon { flex: 0 0 auto; width: 2.25rem; height: 2.25rem; border-radius: 12px; display: grid; place-items: center; background: rgba(255, 90, 31, .12); color: var(--rino-orange); }
.rino-consent__title { margin: 0; font-family: var(--rino-font-display); font-weight: 800; font-size: 1.08rem; line-height: 1.25; letter-spacing: -.01em; }
.rino-consent__desc { margin: 0; font-size: .95rem; line-height: 1.6; color: #34445a; }
.rino-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .15rem; }
.rino-consent__btn { min-height: 2.9rem; padding: .6rem 1rem; border-radius: 12px; border: 2px solid transparent; font: inherit; font-weight: 800; font-size: .95rem; cursor: pointer; transition: transform .16s var(--rino-ease-out, ease-out), background-color .16s ease, box-shadow .16s ease; }
.rino-consent__btn--primary { background: var(--rino-orange); color: var(--rino-navy); box-shadow: 0 10px 22px rgba(255, 90, 31, .3); }
.rino-consent__btn--ghost { background: #fff; color: var(--rino-navy); border-color: rgba(11, 31, 51, .22); }
@media (hover: hover) { .rino-consent__btn:hover { transform: translateY(-2px); } .rino-consent__btn--ghost:hover { border-color: var(--rino-navy); } }
.rino-consent__btn:active { transform: scale(.98); }
.rino-consent__btn:focus-visible { outline: 3px solid var(--rino-navy); outline-offset: 2px; }
.rino-consent__note { margin: 0; font-size: .85rem; }
.rino-consent__note a { color: #34445a; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 47.99rem) {
	.rino-consent { inset: auto 0 0 0; }
	.rino-consent__inner { width: 100%; border-radius: 22px 22px 0 0; padding: 1.1rem 1.1rem calc(1.1rem + env(safe-area-inset-bottom, 0px)); gap: .6rem; box-shadow: 0 -18px 50px rgba(11, 31, 51, .3); }
	.rino-consent__inner::before { border-radius: 22px 22px 0 0; }
	.rino-consent__desc { font-size: .9rem; line-height: 1.55; }
	.rino-consent__actions { grid-template-columns: 1fr; gap: .5rem; }
	body.rino-bug-has-mobile-cta .rino-consent { bottom: var(--rino-mobile-bar-height, 4.5rem); }
}
@media (prefers-reduced-motion: reduce) { .rino-consent__inner, .rino-consent__btn { transition: none; opacity: 1; transform: none; } }

/* ==== 2.3.1 rails — card rows and galleries as sliders ===================== */
.rino-rail { position: relative; }
.rino-rail__nav { display: none; }
.rino-rail.is-rail .rino-rail__nav { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-top: 1rem; }
.rino-rail.is-rail::before, .rino-rail.is-rail::after { content: ""; position: absolute; top: 0; bottom: 0; width: 2.5rem; pointer-events: none; z-index: 2; transition: opacity .2s ease; }
.rino-rail.is-rail::before { left: 0; background: linear-gradient(90deg, var(--rino-rail-fade, #fff), transparent); opacity: var(--rino-rail-start, 0); }
.rino-rail.is-rail::after { right: 0; background: linear-gradient(270deg, var(--rino-rail-fade, #fff), transparent); opacity: var(--rino-rail-end, 1); }
.has-ice-background-color .rino-rail, .rino-service-media .rino-rail { --rino-rail-fade: var(--rino-ice, #eef3f8); }
.rino-rail__arrow { width: 2.5rem; height: 2.5rem; border-radius: 999px; display: grid; place-items: center; border: 2px solid rgba(11, 31, 51, .18); background: #fff; color: var(--rino-navy); cursor: pointer; transition: transform .16s var(--rino-ease-out, ease-out), border-color .16s ease, opacity .16s ease; }
.rino-rail__arrow:disabled { opacity: .35; cursor: default; }
@media (hover: hover) { .rino-rail__arrow:not(:disabled):hover { border-color: var(--rino-orange); transform: translateY(-2px); } }
.rino-rail__arrow:active:not(:disabled) { transform: scale(.94); }
.rino-rail__arrow:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 2px; }
.rino-rail__dots { display: flex; align-items: center; gap: .4rem; }
.rino-rail__dot { width: .5rem; height: .5rem; padding: 0; border: 0; border-radius: 999px; background: rgba(11, 31, 51, .22); cursor: pointer; transition: width .22s var(--rino-ease-out, ease-out), background-color .22s ease; }
.rino-rail__dot.is-active { width: 1.5rem; background: var(--rino-orange); }
.rino-rail__dot:focus-visible { outline: 2px solid var(--rino-orange); outline-offset: 3px; }
@media (max-width: 900px) {
	.rino-rail__track.rino-service-grid, .rino-rail__track.rino-link-grid, .rino-rail__track.wp-block-gallery {
		display: flex !important; grid-template-columns: none !important; flex-wrap: nowrap !important;
		overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 1rem;
		gap: 1rem !important; margin: 0; padding-bottom: .25rem;
		scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior-x: contain;
	}
	.rino-rail__track::-webkit-scrollbar { display: none; }
	.rino-rail__track > * { scroll-snap-align: center; flex: 0 0 min(19rem, 82%); margin: 0 !important; }
	.rino-rail__track.wp-block-gallery > .wp-block-image { flex-basis: min(22rem, 86%); width: auto !important; }
}
@media (min-width: 901px) {
	/* Galleries with more than three photos slide on desktop too. */
	.rino-service-media .rino-rail__track.wp-block-gallery:not(.columns-1):not(.columns-2):not(.columns-3) { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem !important; scrollbar-width: none; }
	.rino-service-media .rino-rail__track.wp-block-gallery > .wp-block-image { scroll-snap-align: center; }
}
@media (prefers-reduced-motion: reduce) { .rino-rail__track { scroll-behavior: auto; } .rino-rail__arrow, .rino-rail__dot { transition: none; } }

/* ==== 2.3.1 consent panel — per-category and per-vendor switches =========== */
.rino-consent.is-expanded .rino-consent__inner { width: min(34rem, 100%); }
.rino-consent__panel { display: grid; gap: 1rem; max-height: min(52vh, 26rem); overflow-y: auto; margin: .25rem -.35rem 0; padding: .35rem; border-top: 1px solid rgba(11, 31, 51, .1); padding-top: .9rem; overscroll-behavior: contain; }
.rino-consent__panel[hidden] { display: none; }
.rino-consent__group { display: grid; gap: .6rem; }
.rino-consent__grouphead { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.rino-consent__groupname { margin: 0; font-family: var(--rino-font-display); font-size: .98rem; font-weight: 800; }
.rino-consent__groupdesc { margin: .15rem 0 0; font-size: .82rem; line-height: 1.5; color: #4b5b70; }
.rino-consent__locked { flex: 0 0 auto; font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #6b7a8f; background: rgba(11, 31, 51, .07); padding: .3rem .55rem; border-radius: 999px; }
.rino-consent__services { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.rino-consent__service { padding: .7rem .8rem; border: 1px solid rgba(11, 31, 51, .1); border-radius: 12px; background: #fbfcfe; }
.rino-consent__servicehead { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.rino-consent__servicename { font-weight: 800; font-size: .92rem; }
.rino-consent__servicedesc { margin: .3rem 0 0; font-size: .82rem; line-height: 1.5; color: #4b5b70; }
.rino-consent__meta { margin: .3rem 0 0; font-size: .74rem; line-height: 1.45; color: #6b7a8f; }
.rino-consent__meta a { color: inherit; text-decoration: underline; }
.rino-consent__link { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--rino-navy); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.rino-consent__link:focus-visible, .rino-consent__note a:focus-visible { outline: 3px solid var(--rino-orange); outline-offset: 3px; }
.rino-consent__btn--save { grid-column: 1 / -1; background: var(--rino-navy); color: #fff; }
/* Switch */
.rino-switch { position: relative; flex: 0 0 auto; display: inline-flex; cursor: pointer; }
.rino-switch input { position: absolute; inset: 0; z-index: 2; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rino-switch__track { pointer-events: none; width: 2.75rem; height: 1.6rem; border-radius: 999px; background: rgba(11, 31, 51, .2); transition: background-color .22s var(--rino-ease-out, ease-out); display: block; }
.rino-switch__track::after { content: ""; position: absolute; top: .2rem; left: .2rem; width: 1.2rem; height: 1.2rem; border-radius: 999px; background: #fff; box-shadow: 0 2px 6px rgba(11, 31, 51, .3); transition: transform .22s var(--rino-ease-out, cubic-bezier(.2,.7,.2,1)); }
.rino-switch input:checked + .rino-switch__track { background: #1f9d5a; }
.rino-switch input:checked + .rino-switch__track::after { transform: translateX(1.15rem); }
.rino-switch input:indeterminate + .rino-switch__track { background: var(--rino-orange); }
.rino-switch input:indeterminate + .rino-switch__track::after { transform: translateX(.575rem); }
.rino-switch input:focus-visible + .rino-switch__track { outline: 3px solid var(--rino-orange); outline-offset: 3px; }
@media (max-width: 47.99rem) {
	.rino-consent.is-expanded .rino-consent__inner { width: 100%; }
	.rino-consent__panel { max-height: 46vh; }
	.rino-consent__actions { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .rino-switch__track, .rino-switch__track::after { transition: none; } }
/* Blocked embeds: a clear placeholder instead of a silent gap. */
[data-rino-embed]:not(.is-allowed) > iframe { display: none; }
[data-rino-embed] .rino-embed-notice { display: block; padding: 1rem; border: 1px dashed rgba(11, 31, 51, .25); border-radius: 12px; font-size: .9rem; }
[data-rino-embed].is-allowed .rino-embed-notice { display: none; }

/* ==== 2.3.2 cookie preferences inside the mobile menu ===================== */
.rino-nav-extra__prefs { margin: .75rem 0 0; }
.rino-nav-extra__prefs:empty { display: none; }
.rino-nav-extra__prefs .rino-consent-open {
	display: inline-flex; align-items: center; gap: .4rem;
	min-height: 44px; padding: .55rem .95rem;
	border: 1px solid color-mix(in srgb, var(--rino-navy, #10243f) 18%, transparent);
	border-radius: 999px; background: #fff;
	font: inherit; font-size: .85rem; font-weight: 600;
	color: var(--rino-navy, #10243f); cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}
.rino-nav-extra__prefs .rino-consent-open:hover,
.rino-nav-extra__prefs .rino-consent-open:focus-visible { border-color: var(--rino-orange, #f26522); background: #fff7f2; }
