/*!
Theme Name: RRO Advocacia
Theme URI: https://rroadvocacia.com.br/
Author: RRO Advocacia
Author URI: https://rroadvocacia.com.br/
Description: Tema institucional do escritório Rodrigues, Rodrigues & Oliveira (RRO Advocacia). Página inicial e landing page de Direito Previdenciário, com conteúdo editável via ACF Pro (exposto à REST API). Baseado no Underscores e estilizado com Tailwind CSS.
Version: 1.0.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: rro-advocacia
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

RRO Advocacia is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
/* Link colours are driven by Tailwind utility classes throughout this theme,
   so the generic Underscores defaults (royal-blue link / purple :visited /
   midnight hover) are intentionally dropped — they only ever fought the design
   and turned visited links purple. Unstyled links inherit the text colour. */
a {
	color: inherit;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

/*
 * Form fields are styled with Tailwind utilities on the markup (see
 * template-parts/component/contact-form.php) and normalized by the
 * @tailwindcss/forms plugin. The default _s cosmetics (border / padding /
 * color) are intentionally omitted here: their `input[type="…"]` attribute
 * selectors have higher specificity (0,1,1) than utility classes (0,1,0) and
 * would override `px-4`/`py-4`/`border-b-2` — crushing inputs to 3px padding
 * while leaving textareas (lower specificity) untouched.
 */
textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation ul a {
	display: block;
	text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/*--------------------------------------------------------------
# RRO Advocacia — theme-specific styles
# (animations, navigation, FAQ accordion, WhatsApp float)
# Utility/layout styling is handled by Tailwind; this file covers
# the bits Tailwind utilities can't express on dynamic markup.
--------------------------------------------------------------*/

/* Reset _s defaults that fight the Tailwind design */
body.font-display {
	margin: 0;
	font-family: "Public Sans", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Material Symbols icon helper (guarantees ligature rendering) */
.material-symbols-outlined {
	font-family: "Material Symbols Outlined";
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-feature-settings: "liga";
	-webkit-font-smoothing: antialiased;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

/* --- Primary navigation (wp_nav_menu output) --- */
.main-navigation {
	/* Undo Underscores' width: 100% so the header's flex `justify-between`
	   can size the nav to its content and align it to the right edge. */
	width: auto;
}

.main-navigation ul {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Scoped to the menu list (ul) so these link styles don't bleed onto the
   "Agendar Consulta" CTA button, which is a sibling of the <ul> and is styled
   entirely by its own Tailwind utilities (bg-accent / text-white / font-bold). */
.main-navigation ul a {
	color: #475569; /* slate-600 */
	font-weight: 500;
	font-size: 0.875rem;
	letter-spacing: 0.025em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.2s ease;
}

.main-navigation ul a:hover {
	color: #022359; /* primary */
}

/* Mobile menu list */
#mobile-menu .menu,
#mobile-menu .mobile-menu-list {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}

#mobile-menu li {
	margin-bottom: 1rem;
}

#mobile-menu ul a {
	display: block;
	color: #475569;
	font-weight: 500;
	font-size: 0.875rem;
	letter-spacing: 0.025em;
	text-transform: uppercase;
	text-decoration: none;
}

#mobile-menu ul a:hover {
	color: #022359;
}

/* --- Article typography (single-post content) --------------------------- */
/* Tailwind's Preflight zeroes element margins, so post content needs explicit
   typographic styles. Scoped to .rro-prose to avoid touching utility markup. */
.rro-prose {
	color: #475569; /* slate-600 */
	font-size: 1.0625rem;
	line-height: 1.85;
}

.rro-prose > :first-child {
	margin-top: 0;
}

.rro-prose p {
	margin: 1.5em 0;
}

.rro-prose h2,
.rro-prose h3,
.rro-prose h4 {
	font-family: "Playfair Display", serif;
	color: #022359; /* primary */
	font-weight: 700;
	line-height: 1.25;
	margin: 2.25em 0 0.6em;
}

.rro-prose h2 { font-size: 1.875rem; }
.rro-prose h3 { font-size: 1.5rem; }
.rro-prose h4 { font-size: 1.25rem; }

.rro-prose a {
	color: #f28c31; /* accent */
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s ease;
}

.rro-prose a:hover {
	color: #022359;
}

.rro-prose strong,
.rro-prose b {
	color: #022359;
	font-weight: 700;
}

.rro-prose ul,
.rro-prose ol {
	margin: 1.5em 0;
	padding-left: 1.5em;
}

.rro-prose ul { list-style: disc; }
.rro-prose ol { list-style: decimal; }

.rro-prose li {
	margin: 0.5em 0;
	padding-left: 0.25em;
}

.rro-prose li::marker {
	color: #f28c31;
}

.rro-prose blockquote {
	border-left: 3px solid #f28c31;
	padding: 0.25em 0 0.25em 1.5em;
	margin: 2em 0;
	font-family: "Playfair Display", serif;
	font-style: italic;
	font-size: 1.375rem;
	line-height: 1.5;
	color: #022359;
}

.rro-prose blockquote p {
	margin: 0.5em 0;
}

.rro-prose img,
.rro-prose figure {
	margin: 2em 0;
	max-width: 100%;
	height: auto;
}

.rro-prose figure img {
	margin: 0;
}

.rro-prose figcaption {
	margin-top: 0.75em;
	font-size: 0.8125rem;
	color: #94a3b8;
	text-align: center;
}

.rro-prose hr {
	border: 0;
	border-top: 1px solid #e2e8f0;
	margin: 3em 0;
}

.rro-prose code {
	background: #f1f5f9;
	padding: 0.15em 0.4em;
	font-size: 0.9em;
	color: #022359;
}

.rro-prose pre {
	background: #0f1723;
	color: #e2e8f0;
	padding: 1.5em;
	overflow-x: auto;
	margin: 2em 0;
	font-size: 0.9rem;
	line-height: 1.6;
}

.rro-prose pre code {
	background: transparent;
	color: inherit;
	padding: 0;
}

.rro-prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 2em 0;
	font-size: 0.95rem;
}

.rro-prose th,
.rro-prose td {
	border: 1px solid #e2e8f0;
	padding: 0.75em 1em;
	text-align: left;
}

.rro-prose th {
	background: #f8fafc;
	color: #022359;
	font-weight: 700;
}

.rro-prose .aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.rro-prose .alignright {
	float: right;
	margin: 0.5em 0 1.5em 1.5em;
}

.rro-prose .alignleft {
	float: left;
	margin: 0.5em 1.5em 1.5em 0;
}

/* --- Post tags --- */
.rro-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid #e2e8f0;
}

.rro-tags a {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #475569;
	background: #f1f5f9;
	padding: 0.4rem 0.9rem;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.rro-tags a:hover {
	background: #f28c31;
	color: #fff;
}

/* --- Numbered pagination (the_posts_pagination) --- */
.pagination {
	margin-top: 4rem;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.5rem;
	font-weight: 700;
	font-size: 0.875rem;
	color: #022359;
	background: #fff;
	border: 1px solid #e2e8f0;
	text-decoration: none;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.pagination .page-numbers:hover {
	border-color: #f28c31;
	color: #f28c31;
}

.pagination .page-numbers.current {
	background: #022359;
	border-color: #022359;
	color: #fff;
}

.pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

/* --- Scroll-triggered reveal animations --- */
.reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.visible {
	opacity: 1;
	transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }
.reveal-delay-5 { transition-delay: 0.40s; }
.reveal-delay-6 { transition-delay: 0.48s; }
.reveal-delay-7 { transition-delay: 0.56s; }
.reveal-delay-8 { transition-delay: 0.64s; }
.reveal-delay-9 { transition-delay: 0.72s; }

/* --- Hero entrance --- */
.hero-text {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-text.visible {
	opacity: 1;
	transform: translateX(0);
}

.hero-image {
	opacity: 0;
	transform: scale(1.05);
	transition: opacity 1.2s ease, transform 1.2s ease;
}

.hero-image.visible {
	opacity: 1;
	transform: scale(1);
}

/* --- Step counter pulse --- */
.step-number {
	position: relative;
}

.step-number::after {
	content: "";
	position: absolute;
	inset: -6px;
	border: 1px solid #f28c31;
	opacity: 0;
	transition: opacity 0.4s ease, inset 0.4s ease;
}

.group:hover .step-number::after {
	opacity: 0.4;
	inset: -10px;
}

/* --- FAQ accordion --- */
.faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.45s cubic-bezier(0.22, 1, 0.36, 1), padding 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	padding-top: 0;
	padding-bottom: 0;
}

.faq-answer.open {
	max-height: 600px;
	padding-top: 1rem;
	padding-bottom: 1.5rem;
}

.faq-icon {
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq-item.active .faq-icon {
	transform: rotate(45deg);
}

/* --- Diagonal accent stripe behind hero --- */
.hero-stripe {
	position: absolute;
	right: -5%;
	top: -20%;
	width: 40%;
	height: 140%;
	background: #f28c31;
	opacity: 0.04;
	transform: skewX(-8deg);
	pointer-events: none;
}

/* --- WhatsApp floating button --- */
.rro-whatsapp-float {
	position: fixed;
	bottom: 20px;
	right: 20px;
	width: 70px;
	height: 70px;
	background-color: #25d366;
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
	text-decoration: none;
	z-index: 50;
}

.rro-whatsapp-float:hover {
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
	transform: scale(1.1);
}

@media (prefers-reduced-motion: reduce) {
	.reveal,
	.hero-text,
	.hero-image {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

/*--------------------------------------------------------------
# Contact Form 7
--------------------------------------------------------------*/
/**
 * Reproduces the static contact form look (template-parts/component/contact-form.php)
 * for Contact Form 7 output. Tailwind utility classes that contain ":" or "/"
 * (focus:border-accent, etc.) can't be passed through CF7 form-tag "class:"
 * options, so the field controls are styled here instead. The wrapper markup in
 * the CF7 form template keeps using plain Tailwind utilities directly.
 * Tokens mirror the Tailwind theme: primary #022359, accent #f28c31,
 * slate-200 #e2e8f0, slate-300 #cbd5e1, slate-800 #1e293b.
 */
.rro-cf7 .wpcf7-form-control-wrap {
	display: block;
}

.rro-cf7 input.rro-cf7-input,
.rro-cf7 textarea.rro-cf7-input,
.rro-cf7 select.rro-cf7-input {
	width: 100%;
	padding: 1rem;
	background: transparent;
	border: 1px solid #e2e8f0;
	border-radius: 0;
	color: #022359;
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.rro-cf7 input.rro-cf7-input::placeholder,
.rro-cf7 textarea.rro-cf7-input::placeholder {
	color: #cbd5e1;
}

.rro-cf7 input.rro-cf7-input:focus,
.rro-cf7 textarea.rro-cf7-input:focus,
.rro-cf7 select.rro-cf7-input:focus {
	border-bottom-color: #f28c31;
	box-shadow: none;
}

.rro-cf7 textarea.rro-cf7-input {
	min-height: 6rem;
	resize: none;
}

.rro-cf7 .rro-cf7-submit {
	width: 100%;
	margin-top: 1rem;
	padding: 1.25rem 2.5rem;
	background: #022359;
	border: 0;
	border-radius: 0;
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.rro-cf7 .rro-cf7-submit:hover {
	background: #1e293b;
}

@media (min-width: 768px) {
	.rro-cf7 .rro-cf7-submit {
		width: auto;
	}
}

/**
 * Response messages. CF7 prints .wpcf7-response-output as a sibling that sits
 * AFTER (outside) the centered .rro-cf7 wrapper, so it's scoped to the .wpcf7
 * container instead and re-centered to the form column width. State classes
 * (sent / invalid / failed …) live on the <form> element.
 */
.wpcf7 .wpcf7-response-output {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	max-width: 42rem; /* match the form column (max-w-2xl) */
	margin: 1.5rem auto 0;
	padding: 1rem 1.25rem;
	border: 0;
	border-left: 4px solid #94a3b8; /* slate-400 — neutral default */
	border-radius: 0;
	background: #f1f5f9; /* slate-100 */
	color: #0f172a; /* slate-900 */
	font-size: 0.9375rem;
	line-height: 1.5;
}

.wpcf7 .wpcf7-response-output::before {
	font-family: "Material Symbols Outlined";
	font-weight: normal;
	font-style: normal;
	font-size: 1.25rem;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	direction: ltr;
	flex-shrink: 0;
	-webkit-font-feature-settings: "liga";
	font-feature-settings: "liga";
	content: "info";
	color: #64748b; /* slate-500 */
}

/* Success — selectors carry an extra class so they outrank CF7's own state CSS. */
.wpcf7 form.wpcf7-form.sent .wpcf7-response-output {
	border: 0;
	border-left: 4px solid #16a34a; /* green-600 */
	background: #f0fdf4; /* green-50 */
	color: #166534; /* green-800 */
}

.wpcf7 form.sent .wpcf7-response-output::before {
	content: "check_circle";
	color: #16a34a;
}

/* Validation / not accepted — uses the brand accent */
.wpcf7 form.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7 form.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7 form.wpcf7-form.payment-required .wpcf7-response-output {
	border: 0;
	border-left: 4px solid #f28c31; /* accent */
	background: #fff7ed; /* orange-50 */
	color: #9a3412; /* orange-800 */
}

.wpcf7 form.invalid .wpcf7-response-output::before,
.wpcf7 form.unaccepted .wpcf7-response-output::before,
.wpcf7 form.payment-required .wpcf7-response-output::before {
	content: "warning";
	color: #f28c31;
}

/* Submission/mail failure, spam, aborted */
.wpcf7 form.wpcf7-form.failed .wpcf7-response-output,
.wpcf7 form.wpcf7-form.spam .wpcf7-response-output,
.wpcf7 form.wpcf7-form.aborted .wpcf7-response-output {
	border: 0;
	border-left: 4px solid #dc2626; /* red-600 */
	background: #fef2f2; /* red-50 */
	color: #991b1b; /* red-800 */
}

.wpcf7 form.failed .wpcf7-response-output::before,
.wpcf7 form.spam .wpcf7-response-output::before,
.wpcf7 form.aborted .wpcf7-response-output::before {
	content: "error";
	color: #dc2626;
}

/* Per-field validation: red outline on the offending control + its tip. */
.rro-cf7 .wpcf7-not-valid {
	border-color: #dc2626 !important;
}

.rro-cf7 .wpcf7-not-valid-tip {
	margin-top: 0.375rem;
	color: #dc2626;
	font-size: 0.75rem;
}

.rro-cf7 .wpcf7-spinner {
	margin: 0 0 0 0.5rem;
}
