/*
Theme Name:  Repagify Base
Theme URI:   https://repagify.com
Description: Parent theme for Repagify-generated websites. Provides section components, typography, and layout. Activated via the Repagify child theme.
Author:      Repagify
Author URI:  https://repagify.com
Version:     1.0.0
License:     GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags:        custom-colors, custom-logo, custom-menu, full-width-template, responsive-layout
Text Domain: repagify-base
*/

/* =============================================================================
   DESIGN TOKENS  —  child theme overrides these in :root
   ============================================================================= */
:root {
	/* Brand palette */
	--rp-primary:       #e8470a;
	--rp-primary-dk:    #c73a08;
	--rp-accent:        #e8470a;

	/* Neutrals */
	--rp-dark:          #111110;
	--rp-dark-2:        #1a1a18;
	--rp-mid:           #6b6b68;
	--rp-light:         #f5f4f0;
	--rp-border:        #e2e0da;
	--rp-white:         #ffffff;

	/* Typography */
	--rp-font-body:     'Inter', system-ui, -apple-system, sans-serif;
	--rp-font-heading:  'Inter', system-ui, -apple-system, sans-serif;
	--rp-font-size:     17px;
	--rp-line-height:   1.65;

	/* Heading sizes — desktop */
	--rp-h1:            clamp(2.4rem, 5vw, 4.2rem);
	--rp-h2:            clamp(1.8rem, 3.5vw, 2.8rem);
	--rp-h3:            clamp(1.2rem, 2vw, 1.5rem);

	/* Layout */
	--rp-container:     1200px;
	--rp-gap:           24px;
	--rp-section-py:    96px;
	--rp-radius:        8px;
	--rp-radius-lg:     16px;
	--rp-radius-xl:     24px;

	/* Shadows */
	--rp-shadow-sm:     0 2px 8px rgba(0,0,0,.06);
	--rp-shadow:        0 4px 24px rgba(0,0,0,.10);
	--rp-shadow-lg:     0 8px 48px rgba(0,0,0,.16);

	/* Transitions */
	--rp-transition:    .2s ease;
}

/* =============================================================================
   RESET & BASE
   ============================================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: var(--rp-font-size); scroll-behavior: smooth; }

body {
	font-family:  var(--rp-font-body);
	line-height:  var(--rp-line-height);
	color:        var(--rp-dark);
	background:   var(--rp-white);
	-webkit-font-smoothing: antialiased;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--rp-primary); text-decoration: none; transition: color var(--rp-transition); }
a:hover { color: var(--rp-primary-dk); }
ul, ol { list-style: none; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }

h1, h2, h3, h4, h5, h6 {
	font-family:   var(--rp-font-heading);
	line-height:   1.15;
	letter-spacing: -.02em;
	color:         var(--rp-dark);
}
h1 { font-size: var(--rp-h1); }
h2 { font-size: var(--rp-h2); }
h3 { font-size: var(--rp-h3); }

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

/* =============================================================================
   LAYOUT UTILITIES
   ============================================================================= */
.rp-container {
	width: 100%;
	max-width: var(--rp-container);
	margin-inline: auto;
	padding-inline: clamp(20px, 5vw, 48px);
}

.rp-section {
	padding-block: var(--rp-section-py);
}

.rp-section-sm { padding-block: calc(var(--rp-section-py) * .6); }
.rp-section-lg { padding-block: calc(var(--rp-section-py) * 1.4); }

/* Grid helpers */
.rp-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--rp-gap); }
.rp-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rp-gap); }
.rp-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--rp-gap); }
.rp-grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--rp-gap); }

.rp-flex-center { display: flex; align-items: center; justify-content: center; }
.rp-flex-between { display: flex; align-items: center; justify-content: space-between; }
.rp-text-center { text-align: center; }

/* Background variants */
.rp-bg-dark  { background: var(--rp-dark-2); color: var(--rp-white); }
.rp-bg-dark  h1, .rp-bg-dark  h2, .rp-bg-dark  h3 { color: var(--rp-white); }
.rp-bg-light { background: var(--rp-light); }
.rp-bg-primary { background: var(--rp-primary); color: var(--rp-white); }
.rp-bg-primary h1, .rp-bg-primary h2, .rp-bg-primary h3 { color: var(--rp-white); }

/* =============================================================================
   BUTTONS
   ============================================================================= */
.rp-btn {
	display:         inline-flex;
	align-items:     center;
	gap:             8px;
	padding:         14px 28px;
	border-radius:   var(--rp-radius);
	font-size:       .9rem;
	font-weight:     700;
	letter-spacing:  .04em;
	text-transform:  uppercase;
	transition:      background var(--rp-transition), transform var(--rp-transition), box-shadow var(--rp-transition);
	white-space:     nowrap;
}

.rp-btn:hover { transform: translateY(-1px); }

.rp-btn-primary {
	background:   var(--rp-primary);
	color:        var(--rp-white);
	box-shadow:   0 4px 16px rgba(0,0,0,.18);
}
.rp-btn-primary:hover {
	background: var(--rp-primary-dk);
	color:      var(--rp-white);
	box-shadow: 0 6px 24px rgba(0,0,0,.24);
}

.rp-btn-secondary {
	background:  transparent;
	color:       currentColor;
	border:      2px solid currentColor;
	opacity:     .85;
}
.rp-btn-secondary:hover { opacity: 1; background: rgba(255,255,255,.1); color: currentColor; }

.rp-btn-ghost {
	background:  transparent;
	color:       var(--rp-primary);
	padding-inline: 0;
}
.rp-btn-ghost:hover { color: var(--rp-primary-dk); }

.rp-btn-group { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* =============================================================================
   EYEBROW LABEL
   ============================================================================= */
.rp-eyebrow {
	display:        inline-block;
	font-size:      .72rem;
	font-weight:    700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color:          var(--rp-primary);
	margin-bottom:  14px;
}
.rp-bg-dark .rp-eyebrow { color: var(--rp-primary); opacity: .9; }

/* =============================================================================
   SECTION HEADER (eyebrow + heading + subtext)
   ============================================================================= */
.rp-section-header {
	margin-bottom: clamp(36px, 5vw, 56px);
}
.rp-section-header.center { text-align: center; max-width: 680px; margin-inline: auto; }

.rp-section-header h2 { margin-bottom: 16px; }

.rp-section-header .rp-subtext {
	font-size:  1.05rem;
	color:      var(--rp-mid);
	max-width:  520px;
	line-height: 1.6;
}
.rp-bg-dark .rp-section-header .rp-subtext { color: rgba(255,255,255,.65); }

/* =============================================================================
   ── SECTION: NAV / HEADER
   ============================================================================= */
.rp-nav {
	position:    sticky;
	top:         0;
	z-index:     100;
	background:  var(--rp-white);
	border-bottom: 1px solid var(--rp-border);
	height:      68px;
}

.rp-nav.dark {
	background:    var(--rp-dark-2);
	border-color:  rgba(255,255,255,.08);
}

.rp-nav-inner {
	height:     100%;
	display:    flex;
	align-items: center;
	justify-content: space-between;
	gap:        24px;
}

.rp-nav-logo {
	display:     flex;
	align-items: center;
	gap:         10px;
	font-size:   1.1rem;
	font-weight: 800;
	letter-spacing: -.02em;
	color:       var(--rp-dark);
	flex-shrink: 0;
}
.rp-nav.dark .rp-nav-logo { color: var(--rp-white); }

.rp-nav-logo img { height: 36px; width: auto; object-fit: contain; }

.rp-nav-links {
	display:     flex;
	align-items: center;
	gap:         28px;
}

.rp-nav-link {
	font-size:   .88rem;
	font-weight: 500;
	color:       var(--rp-mid);
	letter-spacing: .01em;
	transition:  color var(--rp-transition);
}
.rp-nav.dark .rp-nav-link { color: rgba(255,255,255,.7); }
.rp-nav-link:hover,
.rp-nav.dark .rp-nav-link:hover { color: var(--rp-primary); }

.rp-nav-cta { margin-left: 8px; }

.rp-nav-hamburger {
	display:  none;
	flex-direction: column;
	gap:      5px;
	padding:  6px;
}
.rp-nav-hamburger span {
	display:    block;
	width:      22px;
	height:     2px;
	background: currentColor;
	transition: var(--rp-transition);
}

.rp-mobile-menu {
	display:    none;
	position:   fixed;
	inset:      0;
	z-index:    200;
	background: var(--rp-dark-2);
	padding:    24px;
	flex-direction: column;
	gap:        24px;
}
.rp-mobile-menu.open { display: flex; }

.rp-mobile-menu-close {
	align-self: flex-end;
	font-size:  1.6rem;
	color:      var(--rp-white);
	padding:    4px 8px;
}

.rp-mobile-menu .rp-nav-links {
	flex-direction: column;
	align-items:    flex-start;
	gap:            20px;
	flex: 1;
}
.rp-mobile-menu .rp-nav-link {
	font-size: 1.2rem;
	color:     rgba(255,255,255,.85);
}

/* =============================================================================
   ── SECTION: HERO
   ============================================================================= */
.rp-hero {
	min-height: 88vh;
	display:    flex;
	align-items: center;
	position:   relative;
	overflow:   hidden;
}

.rp-hero-inner {
	display:   grid;
	grid-template-columns: 1fr 1fr;
	gap:       clamp(40px, 6vw, 80px);
	align-items: center;
	width:     100%;
}

.rp-hero-inner.full-width {
	grid-template-columns: 1fr;
	max-width:  760px;
	text-align: center;
	margin-inline: auto;
}

.rp-hero-inner.full-width .rp-btn-group { justify-content: center; }

.rp-hero-content { position: relative; z-index: 1; }

.rp-hero-title {
	font-size:      var(--rp-h1);
	font-weight:    900;
	margin-bottom:  20px;
	line-height:    1.05;
}

.rp-hero-subtitle {
	font-size:   1.1rem;
	line-height: 1.65;
	margin-bottom: 36px;
	max-width:   520px;
}
.rp-bg-dark .rp-hero-subtitle { color: rgba(255,255,255,.7); }

.rp-hero-badge {
	display:      inline-flex;
	align-items:  center;
	gap:          8px;
	padding:      6px 14px;
	border-radius: 50px;
	border:       1px solid rgba(255,255,255,.2);
	font-size:    .8rem;
	font-weight:  600;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: 20px;
	color:        var(--rp-primary);
}
.rp-bg-dark .rp-hero-badge { border-color: rgba(255,255,255,.15); color: rgba(255,255,255,.8); }

.rp-hero-media {
	position: relative;
}
.rp-hero-media img {
	width:         100%;
	height:        520px;
	object-fit:    cover;
	border-radius: var(--rp-radius-xl);
	box-shadow:    var(--rp-shadow-lg);
}

/* Hero with background image */
.rp-hero.has-bg-image {
	background-size:     cover;
	background-position: center;
	background-repeat:   no-repeat;
}
.rp-hero.has-bg-image::before {
	content:  '';
	position: absolute;
	inset:    0;
	background: linear-gradient(135deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.3) 100%);
}

/* Hero mini-stats strip */
.rp-hero-stats {
	display:    flex;
	gap:        clamp(24px, 4vw, 48px);
	margin-top: 44px;
	padding-top: 32px;
	border-top: 1px solid rgba(255,255,255,.15);
	flex-wrap:  wrap;
}
.rp-hero-stat-num {
	font-size:   clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 900;
	color:       var(--rp-primary);
	line-height: 1;
}
.rp-hero-stat-label {
	font-size:  .78rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color:      rgba(255,255,255,.55);
	margin-top: 4px;
}

/* =============================================================================
   ── SECTION: FEATURES / SERVICES
   ============================================================================= */
.rp-features-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(20px, 3vw, 32px);
}

.rp-feature-card {
	padding:       clamp(24px, 3vw, 36px);
	border-radius: var(--rp-radius-lg);
	border:        1px solid var(--rp-border);
	background:    var(--rp-white);
	transition:    box-shadow var(--rp-transition), transform var(--rp-transition);
}

.rp-feature-card:hover {
	box-shadow: var(--rp-shadow);
	transform:  translateY(-3px);
}

.rp-bg-dark .rp-feature-card {
	background: rgba(255,255,255,.04);
	border-color: rgba(255,255,255,.08);
}

.rp-feature-card:hover { border-color: var(--rp-primary); }

.rp-feature-icon {
	width:         48px;
	height:        48px;
	border-radius: var(--rp-radius);
	background:    rgba(var(--rp-primary-rgb, 232,71,10), .1);
	display:       flex;
	align-items:   center;
	justify-content: center;
	margin-bottom: 18px;
	font-size:     1.4rem;
}

.rp-feature-title {
	font-size:   1.05rem;
	font-weight: 700;
	margin-bottom: 10px;
}

.rp-feature-body {
	font-size:  .9rem;
	line-height: 1.6;
	color:      var(--rp-mid);
}
.rp-bg-dark .rp-feature-body { color: rgba(255,255,255,.6); }

/* =============================================================================
   ── SECTION: SPLIT (text + image, alternating sides)
   ============================================================================= */
.rp-split {
	display:     grid;
	grid-template-columns: 1fr 1fr;
	gap:         clamp(40px, 6vw, 80px);
	align-items: center;
}

.rp-split.reverse .rp-split-media { order: -1; }

.rp-split-content .rp-subtext {
	font-size:    1rem;
	color:        var(--rp-mid);
	margin-block: 16px 28px;
	line-height:  1.7;
	max-width:    480px;
}
.rp-bg-dark .rp-split-content .rp-subtext { color: rgba(255,255,255,.65); }

.rp-split-media img {
	width:         100%;
	height:        440px;
	object-fit:    cover;
	border-radius: var(--rp-radius-xl);
	box-shadow:    var(--rp-shadow-lg);
}

/* =============================================================================
   ── SECTION: STATS BAR
   ============================================================================= */
.rp-stats-grid {
	display:  grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap:      1px;
	background: var(--rp-border);
	border-radius: var(--rp-radius-lg);
	overflow: hidden;
}

.rp-bg-dark .rp-stats-grid { background: rgba(255,255,255,.08); }

.rp-stat-item {
	background:  var(--rp-white);
	padding:     clamp(24px, 3vw, 40px);
	text-align:  center;
}

.rp-bg-dark .rp-stat-item { background: transparent; }

.rp-stat-number {
	font-size:   clamp(2rem, 4vw, 3rem);
	font-weight: 900;
	color:       var(--rp-primary);
	line-height: 1;
	display:     block;
}
.rp-bg-dark .rp-stat-number { color: var(--rp-primary); }

.rp-stat-label {
	font-size:   .8rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color:       var(--rp-mid);
	margin-top:  6px;
}
.rp-bg-dark .rp-stat-label { color: rgba(255,255,255,.55); }

/* =============================================================================
   ── SECTION: TESTIMONIALS
   ============================================================================= */
.rp-testimonials-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: clamp(20px, 3vw, 28px);
}

.rp-testimonial-card {
	background:    var(--rp-white);
	border:        1px solid var(--rp-border);
	border-radius: var(--rp-radius-lg);
	padding:       clamp(24px, 3vw, 36px);
}

.rp-bg-dark .rp-testimonial-card {
	background:  rgba(255,255,255,.04);
	border-color: rgba(255,255,255,.08);
}

.rp-testimonial-stars {
	color:         var(--rp-primary);
	font-size:     1rem;
	margin-bottom: 14px;
	letter-spacing: 2px;
}

.rp-testimonial-quote {
	font-size:    .95rem;
	line-height:  1.7;
	color:        var(--rp-mid);
	font-style:   italic;
	margin-bottom: 20px;
}
.rp-bg-dark .rp-testimonial-quote { color: rgba(255,255,255,.65); }

.rp-testimonial-author {
	display:     flex;
	align-items: center;
	gap:         12px;
	border-top:  1px solid var(--rp-border);
	padding-top: 16px;
}
.rp-bg-dark .rp-testimonial-author { border-color: rgba(255,255,255,.08); }

.rp-testimonial-avatar {
	width:         40px;
	height:        40px;
	border-radius: 50%;
	background:    var(--rp-light);
	display:       flex;
	align-items:   center;
	justify-content: center;
	font-weight:   700;
	font-size:     .9rem;
	color:         var(--rp-primary);
	flex-shrink:   0;
}

.rp-testimonial-name {
	font-size:  .9rem;
	font-weight: 700;
}
.rp-bg-dark .rp-testimonial-name { color: var(--rp-white); }

.rp-testimonial-company {
	font-size: .8rem;
	color:     var(--rp-mid);
}
.rp-bg-dark .rp-testimonial-company { color: rgba(255,255,255,.45); }

/* =============================================================================
   ── SECTION: CTA STRIP
   ============================================================================= */
.rp-cta-strip {
	display:     flex;
	align-items: center;
	justify-content: space-between;
	gap:         clamp(24px, 4vw, 48px);
	flex-wrap:   wrap;
}

.rp-cta-strip-content .rp-cta-title {
	font-size:   clamp(1.5rem, 3vw, 2.2rem);
	font-weight: 800;
}
.rp-bg-primary .rp-cta-strip-content .rp-cta-title,
.rp-bg-dark    .rp-cta-strip-content .rp-cta-title { color: var(--rp-white); }

.rp-cta-strip-content .rp-cta-sub {
	font-size:  1rem;
	margin-top: 6px;
	opacity:    .75;
}

.rp-cta-strip-actions { flex-shrink: 0; }

/* Full-width centered CTA */
.rp-cta-centered {
	text-align:  center;
	max-width:   640px;
	margin-inline: auto;
}
.rp-cta-centered .rp-cta-title {
	font-size:     clamp(1.8rem, 3.5vw, 2.8rem);
	font-weight:   800;
	margin-bottom: 16px;
}
.rp-cta-centered .rp-cta-sub {
	font-size:     1.05rem;
	opacity:       .75;
	margin-bottom: 32px;
}
.rp-cta-centered .rp-btn-group { justify-content: center; }

/* =============================================================================
   ── SECTION: CONTACT FORM
   ============================================================================= */
.rp-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: start;
}

.rp-contact-info .rp-contact-detail {
	display:      flex;
	align-items:  flex-start;
	gap:          14px;
	margin-bottom: 20px;
}

.rp-contact-info .rp-contact-detail-icon {
	width:         36px;
	height:        36px;
	background:    rgba(var(--rp-primary-rgb, 232,71,10), .1);
	border-radius: var(--rp-radius);
	display:       flex;
	align-items:   center;
	justify-content: center;
	font-size:     1rem;
	flex-shrink:   0;
}

.rp-contact-info .rp-contact-detail-text strong {
	display:    block;
	font-size:  .85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color:      var(--rp-mid);
	margin-bottom: 2px;
}

.rp-contact-form-wrap {
	background:    var(--rp-white);
	border-radius: var(--rp-radius-xl);
	padding:       clamp(28px, 4vw, 48px);
	box-shadow:    var(--rp-shadow);
}

.rp-bg-dark .rp-contact-form-wrap {
	background: rgba(255,255,255,.05);
	box-shadow: none;
	border:     1px solid rgba(255,255,255,.08);
}

.rp-form-row { margin-bottom: 18px; }
.rp-form-row label {
	display:       block;
	font-size:     .82rem;
	font-weight:   700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color:         var(--rp-mid);
	margin-bottom: 6px;
}

.rp-form-row input,
.rp-form-row textarea,
.rp-form-row select {
	width:         100%;
	padding:       12px 16px;
	border:        1.5px solid var(--rp-border);
	border-radius: var(--rp-radius);
	font-family:   inherit;
	font-size:     .95rem;
	color:         var(--rp-dark);
	background:    var(--rp-white);
	transition:    border-color var(--rp-transition);
}
.rp-form-row input:focus,
.rp-form-row textarea:focus { outline: none; border-color: var(--rp-primary); }
.rp-form-row textarea { resize: vertical; min-height: 130px; }

.rp-form-row input::placeholder,
.rp-form-row textarea::placeholder { color: var(--rp-border); }

/* =============================================================================
   ── SECTION: LOGO BAR / MARQUEE
   ============================================================================= */
.rp-logobar {
	overflow: hidden;
	padding-block: 32px;
	border-top:    1px solid var(--rp-border);
	border-bottom: 1px solid var(--rp-border);
}
.rp-bg-dark .rp-logobar { border-color: rgba(255,255,255,.08); }

.rp-logobar-track {
	display:   flex;
	gap:       clamp(32px, 5vw, 64px);
	align-items: center;
	animation: rp-scroll 24s linear infinite;
	width:     max-content;
}

@keyframes rp-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.rp-logobar-item {
	font-size:  1rem;
	font-weight: 700;
	opacity:    .5;
	white-space: nowrap;
	letter-spacing: .04em;
}
.rp-bg-dark .rp-logobar-item { color: var(--rp-white); }
.rp-logobar-item img { height: 28px; width: auto; opacity: .5; }

/* =============================================================================
   ── SECTION: CARDS GRID (products, items, gallery)
   ============================================================================= */
.rp-cards-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: clamp(16px, 2.5vw, 24px);
}

.rp-card {
	background:    var(--rp-white);
	border-radius: var(--rp-radius-lg);
	overflow:      hidden;
	border:        1px solid var(--rp-border);
	transition:    box-shadow var(--rp-transition), transform var(--rp-transition);
}
.rp-card:hover { box-shadow: var(--rp-shadow); transform: translateY(-3px); }
.rp-card:hover { border-color: var(--rp-primary); }

.rp-card-image {
	width:       100%;
	aspect-ratio: 4/3;
	object-fit:  cover;
}

.rp-card-body {
	padding: 16px 20px 20px;
}
.rp-card-title {
	font-size:   1rem;
	font-weight: 700;
	margin-bottom: 6px;
}
.rp-card-sub {
	font-size: .85rem;
	color:     var(--rp-mid);
}

/* =============================================================================
   ── SECTION: FOOTER
   ============================================================================= */
.rp-footer {
	background: var(--rp-dark-2);
	color:      rgba(255,255,255,.65);
	padding-top: clamp(48px, 6vw, 72px);
}

.rp-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, 1fr);
	gap: clamp(24px, 4vw, 48px);
	padding-bottom: clamp(48px, 6vw, 64px);
}

.rp-footer-brand .rp-nav-logo { color: var(--rp-white); margin-bottom: 16px; }
.rp-footer-brand p { font-size: .88rem; line-height: 1.7; max-width: 280px; }

.rp-footer-col-title {
	font-size:   .82rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color:       var(--rp-white);
	margin-bottom: 16px;
}

.rp-footer-links { display: flex; flex-direction: column; gap: 10px; }
.rp-footer-link {
	font-size:  .88rem;
	color:      rgba(255,255,255,.55);
	transition: color var(--rp-transition);
}
.rp-footer-link:hover { color: var(--rp-white); }

.rp-footer-bottom {
	border-top:  1px solid rgba(255,255,255,.08);
	padding-block: 20px;
	display:     flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap:   wrap;
	gap:         12px;
	font-size:   .82rem;
	color:       rgba(255,255,255,.35);
}

/* =============================================================================
   SCROLL-REVEAL ANIMATION (applied by JS on scroll)
   ============================================================================= */
.rp-reveal {
	opacity:    0;
	transform:  translateY(28px);
	transition: opacity .5s ease, transform .5s ease;
}
.rp-reveal.visible {
	opacity:   1;
	transform: translateY(0);
}

/* =============================================================================
   WORDPRESS CORE
   ============================================================================= */
.wp-caption { max-width: 100%; }
.alignnone, .alignleft, .alignright { margin-bottom: 1.5em; }
.aligncenter { display: block; margin-inline: auto; }
.alignleft { float: left; margin-right: 1.5em; }
.alignright { float: right; margin-left: 1.5em; }

.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; width: 1px; word-wrap: normal;
}

/* =============================================================================
   RESPONSIVE
   ============================================================================= */
@media (max-width: 900px) {
	.rp-hero-inner,
	.rp-split,
	.rp-contact-grid { grid-template-columns: 1fr; }

	.rp-split.reverse .rp-split-media { order: 0; }

	.rp-hero-media { display: none; }

	.rp-footer-grid { grid-template-columns: 1fr 1fr; }

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

	.rp-cta-strip { flex-direction: column; text-align: center; }
	.rp-cta-strip .rp-btn-group { justify-content: center; }

	.rp-nav-links { display: none; }
	.rp-nav-hamburger { display: flex; }
}

@media (max-width: 600px) {
	:root {
		--rp-section-py: 64px;
	}

	.rp-footer-grid { grid-template-columns: 1fr; }

	.rp-grid-2,
	.rp-grid-3,
	.rp-grid-4 { grid-template-columns: 1fr; }

	.rp-hero { min-height: 70vh; }

	.rp-hero-stats { flex-direction: column; gap: 16px; }
}
