/* Header (parts/header.html): ink bar that continues the dark page heroes, white nav, mint underline hover,
   Servicii dropdown, mobile menu at 768px and below. Behaviour in rs-nav.js; without JS the dropdown opens on hover/focus
   and the mobile list stays open. */
header.wp-block-template-part .rs-header-bar { position: relative; z-index: 2; padding-block: 14px; padding-inline: var(--rs-gutter, 1.5rem); background: #02050a; border-bottom: 1px solid transparent; transition: background-color .3s, border-color .3s, box-shadow .3s; }
header.wp-block-template-part.rs-scrolled .rs-header-bar { background: rgba(2, 5, 10, .94); -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%); border-bottom-color: rgba(85, 230, 165, .12); box-shadow: 0 12px 32px -20px rgba(0, 0, 0, .7); }
/* scroll progress: mint line on the header's bottom edge, width = how far down the page (--rs-progress set by rs-effects.js) */
header.wp-block-template-part .rs-header-bar::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px; background: var(--rs-mint, #55e6a5); transform: scaleX(var(--rs-progress, 0)); transform-origin: left center; pointer-events: none; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { header.wp-block-template-part.rs-scrolled .rs-header-bar { background: #02050a; } }
.rs-header-in { align-items: center; flex-wrap: nowrap !important; gap: 1.5rem; }
.rs-header-in > * { margin: 0; }
header.wp-block-template-part :focus-visible { outline: 2px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(85, 230, 165, .6); }

/* nav, desktop */
.rs-nav { position: static; }
.rs-nav-list, .rs-sub { list-style: none; margin: 0; padding: 0; }
.rs-nav-list { display: flex; align-items: center; gap: clamp(1.25rem, 2.6vw, 2.5rem); }
.rs-nav-item { position: relative; display: flex; align-items: center; margin: 0; }
.rs-nav-toggle { display: none; }
.rs-nav a.rs-nav-link { display: inline-block; padding: .8rem .1rem; font-size: .9375rem; font-weight: 600; letter-spacing: .06em; line-height: 1.2; text-transform: uppercase; text-decoration: none; color: #fff; background: linear-gradient(var(--rs-mint, #55e6a5), var(--rs-mint, #55e6a5)) 0 calc(100% - .4rem) / 0 2px no-repeat; transition: background-size .3s ease, color .2s; }
.rs-nav a.rs-nav-link:hover, .rs-nav a.rs-nav-link:focus-visible, .rs-nav a.rs-nav-link[aria-current], .rs-nav-item.is-current > a.rs-nav-link { color: var(--rs-mint, #55e6a5); background-size: 100% 2px; }
.rs-sub-toggle { display: inline-grid; place-items: center; width: 32px; height: 44px; margin: 0 0 0 .1rem; padding: 0; background: none; border: 0; color: #fff; cursor: pointer; transition: color .2s; }
.rs-sub-toggle:hover { color: var(--rs-mint, #55e6a5); }
.rs-sub-toggle svg { transition: transform .25s ease; }
.rs-has-sub.is-open > .rs-sub-toggle svg { transform: rotate(180deg); }
.rs-sub { position: absolute; top: calc(100% + 12px); left: -1.25rem; z-index: 5; min-width: 21rem; padding: .5rem; counter-reset: rs-s; background: #02050a; border: 1px solid rgba(255, 255, 255, .16); border-top: 2px solid var(--rs-mint, #55e6a5); box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .65); visibility: hidden; opacity: 0; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.rs-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.rs-has-sub.is-open > .rs-sub, html:not(.rs-js) .rs-has-sub:hover > .rs-sub, html:not(.rs-js) .rs-has-sub:focus-within > .rs-sub { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
html:not(.rs-js) .rs-sub-toggle { display: none; }
.rs-sub li { margin: 0; }
.rs-nav .rs-sub a { display: flex; align-items: baseline; gap: .9rem; padding: .75rem 1rem; font-size: 1rem; font-weight: 500; line-height: 1.3; text-decoration: none; color: #fff; border-left: 2px solid transparent; transition: background-color .2s, color .2s, border-color .2s; }
.rs-nav .rs-sub a::before { counter-increment: rs-s; content: "0" counter(rs-s); content: "0" counter(rs-s) / ""; flex: none; font-size: .75rem; font-weight: 600; letter-spacing: .08em; color: var(--rs-mint, #55e6a5); }
.rs-nav .rs-sub a:hover, .rs-nav .rs-sub a:focus-visible, .rs-nav .rs-sub a[aria-current] { background: rgba(85, 230, 165, .12); border-left-color: var(--rs-mint, #55e6a5); color: var(--rs-mint, #55e6a5); }

/* mobile menu */
@media (max-width: 768px) {
	.rs-nav-toggle { display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0; background: none; border: 1px solid rgba(255, 255, 255, .3); color: #fff; cursor: pointer; transition: background-color .2s, border-color .2s; }
	.rs-nav-toggle:hover, .rs-nav.is-open .rs-nav-toggle { background: var(--rs-mint, #55e6a5); border-color: var(--rs-mint, #55e6a5); color: #02050a; }
	.rs-burger, .rs-burger::before, .rs-burger::after { display: block; width: 20px; height: 2px; background: currentColor; transition: transform .25s ease, background-color .2s; }
	.rs-burger { position: relative; }
	.rs-burger::before, .rs-burger::after { content: ""; position: absolute; left: 0; }
	.rs-burger::before { top: -6px; }
	.rs-burger::after { top: 6px; }
	.rs-nav.is-open .rs-burger { background: transparent; }
	.rs-nav.is-open .rs-burger::before { transform: translateY(6px) rotate(45deg); }
	.rs-nav.is-open .rs-burger::after { transform: translateY(-6px) rotate(-45deg); }
	html:not(.rs-js) .rs-nav-toggle { display: none; }
	.rs-nav-list { position: absolute; left: 0; right: 0; top: 100%; display: none; flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100vh - 84px); max-height: calc(100dvh - 84px); overflow-y: auto; padding: .5rem var(--rs-gutter, 1.25rem) 1.75rem; background: #02050a; border-top: 1px solid rgba(255, 255, 255, .14); border-bottom: 2px solid var(--rs-mint, #55e6a5); }
	.rs-nav.is-open .rs-nav-list, html:not(.rs-js) .rs-nav-list { display: flex; }
	.rs-nav-item { flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid rgba(255, 255, 255, .12); }
	.rs-nav a.rs-nav-link { flex: 1 1 0; min-width: 0; padding-block: 1rem; font-size: 1.375rem; font-weight: 700; letter-spacing: .02em; background-position: 0 calc(100% - .55rem); background-size: 0 3px; }
	.rs-nav a.rs-nav-link:hover, .rs-nav a.rs-nav-link:focus-visible, .rs-nav a.rs-nav-link[aria-current], .rs-nav-item.is-current > a.rs-nav-link { background-size: 2.5rem 3px; }
	.rs-sub-toggle { width: 44px; height: 44px; margin: 0; }
	.rs-sub { position: static; flex: 1 0 100%; min-width: 0; display: none; padding: 0 0 .75rem; border: 0; box-shadow: none; visibility: visible; opacity: 1; transform: none; transition: none; }
	.rs-sub::before { display: none; }
	.rs-has-sub.is-open > .rs-sub, html:not(.rs-js) .rs-sub { display: block; }
	.rs-nav .rs-sub a { padding: .7rem .25rem; font-size: 1.0625rem; }
}
@media (prefers-reduced-motion: reduce) {
	header.wp-block-template-part *, header.wp-block-template-part *::before, header.wp-block-template-part *::after { transition: none !important; }
}

/* Mobile menu open: keep the cookie banner from covering menu items */
body:has(.rs-nav.is-open) .rs-consent { visibility: hidden; }

/* Cere o oferta button + phone (structure M1). One primary button: mint on the dark header, same as the hero button.
   Bar CTA from 480px; below that the same button sits in the menu overlay. Phone shows from 1024px (the sticky bar has it on phones). */
.rs-nav { display: flex; align-items: center; gap: 1.25rem; }
a.rs-header-cta { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; padding: .5rem 1.15rem; background: var(--rs-mint, #55e6a5); color: var(--rs-ink, #02050a); border: 1px solid var(--rs-mint, #55e6a5); font-size: .9375rem; font-weight: 600; line-height: 1.2; white-space: nowrap; text-decoration: none; transition: background-color .3s, border-color .3s; }
a.rs-header-cta::after { content: ""; flex: none; width: .8em; height: .8em; background: currentColor; -webkit-mask: var(--rs-arrow) center / contain no-repeat; mask: var(--rs-arrow) center / contain no-repeat; transition: transform .25s; }
a.rs-header-cta:hover, a.rs-header-cta:focus-visible { background: #fff; border-color: #fff; color: var(--rs-ink, #02050a); }
a.rs-header-cta:hover::after { transform: translate(2px, -2px); }
.rs-header-phone { display: none; }
.rs-header-phone, .rs-nav-contact { color: #fff; font-size: .9375rem; font-weight: 600; white-space: nowrap; }
.rs-header-phone a, .rs-nav-contact a { color: inherit; }
/* phone link: same hover as the menu links (mint text, mint line sweeping in from the left); resting underline unchanged */
.rs-header-phone a { padding-bottom: .2em; background: linear-gradient(var(--rs-mint, #55e6a5), var(--rs-mint, #55e6a5)) 0 100% / 0 2px no-repeat; transition: background-size .3s ease, color .2s, text-decoration-color .2s; }
.rs-header-phone a:hover, .rs-header-phone a:focus-visible { color: var(--rs-mint, #55e6a5); background-size: 100% 2px; text-decoration-color: transparent; }
.rs-nav-cta-li, .rs-nav-contact { display: none; }
@media (min-width: 1024px) { .rs-header-phone { display: block; } }
/* WhatsApp: compact outlined button beside the phone from 1280px (at 1024 the row is full), same height and type as the CTA (contact placeholders). */
.rs-header-wa { display: none; align-items: center; min-height: 44px; padding: .5rem 1rem; border: 1px solid rgba(255, 255, 255, .45); color: #fff; font-size: .9375rem; font-weight: 600; line-height: 1.2; white-space: nowrap; transition: border-color .3s, color .3s; }
.rs-header-wa a { color: inherit; text-decoration: none; }
.rs-header-wa:hover, .rs-header-wa:focus-within { border-color: var(--rs-mint, #55e6a5); color: var(--rs-mint, #55e6a5); }
@media (min-width: 1280px) { .rs-header-wa { display: inline-flex; } }
@media (max-width: 768px) {
	.rs-nav { gap: .75rem; }
	.rs-nav > a.rs-header-cta { order: 1; padding-inline: 1rem; }
	.rs-nav-toggle { order: 2; }
	.rs-nav-item.rs-nav-contact { display: flex; padding-block: 1rem; font-size: 1.0625rem; }
}
@media (max-width: 479px) {
	.rs-nav > a.rs-header-cta { display: none; }
	.rs-nav-item.rs-nav-cta-li { display: flex; padding-block: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { a.rs-header-cta, a.rs-header-cta::after { transition: none !important; } }
