+page.svelte 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094
  1. <svelte:head>
  2. <title>Nosotros — Soluciones O.C.L | Construcción en Guanacaste</title>
  3. <meta name="description" content="Conoce a Soluciones O.C.L, empresa constructora especializada en Guanacaste, Costa Rica. Más de 10 años de experiencia en construcción residencial, comercial y servicios técnicos." />
  4. <link rel="preconnect" href="https://fonts.googleapis.com" />
  5. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" />
  6. <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=Montserrat:wght@300;400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap" rel="stylesheet" />
  7. </svelte:head>
  8. <script>
  9. import { onMount } from 'svelte';
  10. let scrolled = $state(false);
  11. let menuOpen = $state(false);
  12. const values = [
  13. {
  14. title: 'Calidad Sin Compromiso',
  15. desc: 'Utilizamos materiales de primera línea y técnicas constructivas de vanguardia para garantizar obras que perduran en el tiempo.',
  16. icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M18 3l3.8 7.7 8.5 1.2-6.15 6 1.45 8.4L18 22.4l-7.6 4-1.05-.6"/><path d="M4 4l28 28"/></svg>`
  17. },
  18. {
  19. title: 'Compromiso Total',
  20. desc: 'Cada proyecto es tratado con la misma dedicación e importancia que si fuera el único. El éxito del cliente es nuestro éxito.',
  21. icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M18 3l3.8 7.7 8.5 1.2-6.15 6 1.45 8.4L18 22.4l-7.6 4-1.45-8.4-6.15-6 8.5-1.2L18 3z"/></svg>`
  22. },
  23. {
  24. title: 'Transparencia',
  25. desc: 'Mantenemos comunicación abierta en cada etapa del proyecto: presupuestos claros, plazos definidos y actualizaciones constantes.',
  26. icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><circle cx="18" cy="18" r="14"/><path d="M18 12v8M18 24v1"/></svg>`
  27. },
  28. {
  29. title: 'Experiencia Local',
  30. desc: 'Conocemos el clima, los materiales y las regulaciones de Guanacaste. Esa experiencia local es una ventaja invaluable para cada proyecto.',
  31. icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M18 4C12.477 4 8 8.477 8 14c0 9.314 10 20 10 20s10-10.686 10-20c0-5.523-4.477-10-10-10z"/><circle cx="18" cy="14" r="4"/></svg>`
  32. }
  33. ];
  34. const team = [
  35. {
  36. name: 'Equipo de Construcción',
  37. role: 'Especialistas en Estructuras y Acabados',
  38. image: '/gallery/21.jpg'
  39. },
  40. {
  41. name: 'División Eléctrica',
  42. role: 'Técnicos Certificados en Instalaciones',
  43. image: '/gallery/25.jpg'
  44. },
  45. {
  46. name: 'División Plomería',
  47. role: 'Expertos en Sistemas Hidráulicos',
  48. image: '/gallery/4.jpg'
  49. }
  50. ];
  51. const milestones = [
  52. { year: '2012', event: 'Fundación de Soluciones O.C.L en Guanacaste' },
  53. { year: '2015', event: 'Expansión a servicios de instalaciones eléctricas y fontanería' },
  54. { year: '2018', event: 'Primeros 200 proyectos completados en la región' },
  55. { year: '2021', event: 'Incorporación de estructuras metálicas y paisajismo constructivo' },
  56. { year: '2025', event: 'Más de 500 proyectos y referentes de calidad en Guanacaste' }
  57. ];
  58. onMount(() => {
  59. const handleScroll = () => { scrolled = window.scrollY > 50; };
  60. window.addEventListener('scroll', handleScroll);
  61. const revealEls = document.querySelectorAll('.reveal');
  62. const observer = new IntersectionObserver((entries) => {
  63. entries.forEach(entry => {
  64. if (entry.isIntersecting) entry.target.classList.add('revealed');
  65. });
  66. }, { threshold: 0.12 });
  67. revealEls.forEach(el => observer.observe(el));
  68. return () => {
  69. window.removeEventListener('scroll', handleScroll);
  70. observer.disconnect();
  71. };
  72. });
  73. </script>
  74. <!-- NAV -->
  75. <nav class={scrolled || menuOpen ? 'nav-solid' : 'nav-transparent'} id="nav">
  76. <div class="nav-inner">
  77. <a href="/" class="nav-logo">
  78. <img src="/logo.png" alt="Soluciones O.C.L" class="h-12 w-auto" />
  79. </a>
  80. <div class="nav-links">
  81. <a href="/" class="nav-link">Inicio</a>
  82. <a href="/about" class="nav-link active-link">Nosotros</a>
  83. <a href="/#servicios" class="nav-link">Servicios</a>
  84. <a href="/#galeria" class="nav-link">Galería</a>
  85. <a href="/#contacto" class="nav-link">Contacto</a>
  86. <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="nav-cta">Cotizar</a>
  87. </div>
  88. <button class="hamburger" onclick={() => menuOpen = !menuOpen} aria-label="Menú">
  89. <span class={menuOpen ? 'bar bar-open-1' : 'bar'}></span>
  90. <span class={menuOpen ? 'bar bar-open-2' : 'bar'}></span>
  91. <span class={menuOpen ? 'bar bar-open-3' : 'bar'}></span>
  92. </button>
  93. </div>
  94. {#if menuOpen}
  95. <div class="mobile-menu">
  96. <a href="/" class="mobile-link" onclick={() => menuOpen = false}>Inicio</a>
  97. <a href="/about" class="mobile-link" onclick={() => menuOpen = false}>Nosotros</a>
  98. <a href="/#servicios" class="mobile-link" onclick={() => menuOpen = false}>Servicios</a>
  99. <a href="/#galeria" class="mobile-link" onclick={() => menuOpen = false}>Galería</a>
  100. <a href="/#contacto" class="mobile-link" onclick={() => menuOpen = false}>Contacto</a>
  101. <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="mobile-cta">Solicitar Cotización</a>
  102. </div>
  103. {/if}
  104. </nav>
  105. <!-- ABOUT HERO -->
  106. <section class="about-hero">
  107. <div class="about-hero-bg">
  108. <img src="/gallery/47.jpg" alt="Proyectos Soluciones OCL" />
  109. <div class="about-hero-overlay"></div>
  110. <div class="about-hero-radial"></div>
  111. </div>
  112. <div class="about-hero-content">
  113. <span class="section-eyebrow">Quiénes somos</span>
  114. <h1 class="about-hero-title">Sobre Nosotros</h1>
  115. <p class="about-hero-sub">Más de una década construyendo el Guanacaste del futuro con pasión, técnica y compromiso.</p>
  116. <div class="about-hero-divider">
  117. <span class="divider-line"></span>
  118. <span class="divider-icon">
  119. <svg width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="#C8A832" stroke-width="1.5"><path d="M9 1L3 9h5l-2 8 8-10H9l2-8z"/></svg>
  120. </span>
  121. <span class="divider-line"></span>
  122. </div>
  123. </div>
  124. </section>
  125. <!-- STORY -->
  126. <section class="story-section py-14 sm:py-24">
  127. <div class="section-container">
  128. <div class="story-grid gap-4 sm:gap-8">
  129. <div class="story-imgs reveal">
  130. <div class="story-img-main">
  131. <img src="/gallery/30.jpg" alt="Casa construida por Soluciones OCL" loading="lazy" />
  132. </div>
  133. <div class="story-img-badge">
  134. <span class="badge-number">10+</span>
  135. <span class="badge-label">Años de<br/>Experiencia</span>
  136. </div>
  137. <div class="story-img-accent">
  138. <img src="/gallery/17.jpg" alt="Construcción moderna Guanacaste" loading="lazy" />
  139. </div>
  140. </div>
  141. <div class="story-text reveal">
  142. <span class="section-eyebrow">Nuestra historia</span>
  143. <h2 class="section-title" style="text-align:left">De un Sueño a la Realidad Constructiva</h2>
  144. <p class="story-body">Soluciones O.C.L nació en el corazón de Guanacaste con una visión clara: ofrecer servicios de construcción y técnicos de alta calidad accesibles para los costarricenses. Lo que comenzó como un pequeño equipo de técnicos comprometidos, se ha convertido en una empresa de referencia en la región.</p>
  145. <p class="story-body">Hoy somos especialistas en construcción residencial y comercial, instalaciones eléctricas, fontanería, remodelaciones, estructuras metálicas y obras exteriores. Cada proyecto que emprendemos lleva el sello de nuestra pasión por el trabajo bien hecho.</p>
  146. <div class="story-stats">
  147. <div class="story-stat">
  148. <span class="stat-number">500+</span>
  149. <span class="stat-label">Proyectos</span>
  150. </div>
  151. <div class="story-stat">
  152. <span class="stat-number">100%</span>
  153. <span class="stat-label">Satisfacción</span>
  154. </div>
  155. <div class="story-stat">
  156. <span class="stat-number">6</span>
  157. <span class="stat-label">Especialidades</span>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. </section>
  164. <!-- VALUES -->
  165. <section class="values-section py-14 sm:py-24">
  166. <div class="section-container">
  167. <div class="section-header reveal">
  168. <span class="section-eyebrow">Lo que nos define</span>
  169. <h2 class="section-title">Nuestros Valores</h2>
  170. <p class="section-sub">Los principios que guían cada decisión, cada proyecto y cada relación con nuestros clientes.</p>
  171. </div>
  172. <div class="values-grid">
  173. {#each values as val, i}
  174. <div class="value-card reveal" style="animation-delay: {i * 0.1}s">
  175. <div class="value-icon-circle">
  176. {@html val.icon}
  177. </div>
  178. <h3 class="value-title">{val.title}</h3>
  179. <p class="value-desc">{val.desc}</p>
  180. </div>
  181. {/each}
  182. </div>
  183. </div>
  184. </section>
  185. <!-- TIMELINE -->
  186. <section class="timeline-section py-14 sm:py-24">
  187. <div class="section-container">
  188. <div class="section-header reveal">
  189. <span class="section-eyebrow">Nuestra trayectoria</span>
  190. <h2 class="section-title">Historia de Crecimiento</h2>
  191. </div>
  192. <div class="timeline">
  193. {#each milestones as item, i}
  194. <div class="timeline-item reveal" style="animation-delay: {i * 0.12}s">
  195. <div class="timeline-year">
  196. <span>{item.year}</span>
  197. </div>
  198. <div class="timeline-connector">
  199. <div class="timeline-dot"></div>
  200. {#if i < milestones.length - 1}
  201. <div class="timeline-line"></div>
  202. {/if}
  203. </div>
  204. <div class="timeline-content">
  205. <p>{item.event}</p>
  206. </div>
  207. </div>
  208. {/each}
  209. </div>
  210. </div>
  211. </section>
  212. <!-- TEAM -->
  213. <section class="team-section py-14 sm:py-24">
  214. <div class="section-container">
  215. <div class="section-header reveal">
  216. <span class="section-eyebrow">Nuestro equipo</span>
  217. <h2 class="section-title">Especialistas a Su Servicio</h2>
  218. <p class="section-sub">Contamos con profesionales capacitados en cada área para garantizar el más alto estándar en su proyecto.</p>
  219. </div>
  220. <div class="team-grid">
  221. {#each team as member, i}
  222. <div class="team-card reveal" style="animation-delay: {i * 0.12}s">
  223. <div class="team-img">
  224. <img src={member.image} alt={member.name} loading="lazy" />
  225. <div class="team-img-overlay"></div>
  226. </div>
  227. <div class="team-info">
  228. <h3 class="team-name">{member.name}</h3>
  229. <p class="team-role">{member.role}</p>
  230. </div>
  231. </div>
  232. {/each}
  233. </div>
  234. </div>
  235. </section>
  236. <!-- CTA SECTION -->
  237. <section class="cta-section reveal">
  238. <div class="cta-inner">
  239. <div class="cta-glow"></div>
  240. <span class="section-eyebrow">¿Listo para construir?</span>
  241. <h2 class="cta-title">Hablemos de su Proyecto</h2>
  242. <p class="cta-sub">Contáctenos hoy mismo y reciba una cotización personalizada sin compromiso. Estamos en Huaca, Guanacaste.</p>
  243. <div class="cta-btns">
  244. <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="btn-primary">
  245. <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path d="M10 0C4.477 0 0 4.373 0 9.765c0 1.717.463 3.325 1.27 4.716L0 20l5.688-1.483A10.06 10.06 0 0010 19.53c5.523 0 10-4.373 10-9.765S15.523 0 10 0zm5.193 13.764c-.217.603-1.27 1.154-1.742 1.226-.448.068-.998.097-1.61-.1-.37-.12-.846-.28-1.453-.548-2.56-1.098-4.229-3.644-4.357-3.814-.127-.17-1.043-1.373-1.043-2.617 0-1.244.659-1.856.893-2.107.233-.251.508-.314.677-.314.17 0 .339.002.487.008.156.007.366-.059.572.433.211.505.717 1.748.78 1.875.063.127.105.275.02.443-.085.17-.127.275-.254.424-.127.148-.266.33-.381.443-.127.12-.258.25-.111.49.148.238.657 1.075 1.41 1.74.97.862 1.787 1.128 2.027 1.255.24.127.38.106.52-.063.14-.17.593-.687.75-.924.158-.238.316-.198.532-.12.217.08 1.376.645 1.612.763.237.12.394.178.452.277.06.1.06.582-.157 1.185z"/></svg>
  246. Escribir por WhatsApp
  247. </a>
  248. <a href="tel:50688001130" class="btn-outline">
  249. Llamar Ahora
  250. </a>
  251. <a href="/" class="btn-ghost">
  252. Ver Servicios
  253. </a>
  254. </div>
  255. </div>
  256. </section>
  257. <!-- FOOTER -->
  258. <footer class="site-footer">
  259. <div class="footer-inner">
  260. <div class="footer-top">
  261. <div class="footer-brand">
  262. <img src="/logo.png" alt="Soluciones O.C.L" class="footer-logo" />
  263. <p class="footer-tagline">Construimos tus ideas con calidad y compromiso</p>
  264. </div>
  265. <div class="footer-links-col">
  266. <h4 class="footer-col-title">Navegación</h4>
  267. <a href="/" class="footer-link">Inicio</a>
  268. <a href="/about" class="footer-link">Nosotros</a>
  269. <a href="/#servicios" class="footer-link">Servicios</a>
  270. <a href="/#galeria" class="footer-link">Galería</a>
  271. <a href="/#contacto" class="footer-link">Contacto</a>
  272. </div>
  273. <div class="footer-links-col">
  274. <h4 class="footer-col-title">Contacto</h4>
  275. <a href="tel:50688001130" class="footer-link">+506 8800-1130</a>
  276. <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="footer-link">WhatsApp</a>
  277. <span class="footer-link-text">Huaca, Guanacaste</span>
  278. <span class="footer-link-text">Costa Rica</span>
  279. </div>
  280. </div>
  281. <div class="footer-bottom">
  282. <p class="footer-copy">© 2025 Soluciones O.C.L. Todos los derechos reservados.</p>
  283. <a href="https://digitalmar.dev" target="_blank" rel="noopener noreferrer" class="text-xs opacity-40 hover:opacity-70 transition-opacity" style="color: #9A8428;">Hecho por digitalmar.dev</a>
  284. </div>
  285. </div>
  286. </footer>
  287. <!-- FLOATING WHATSAPP -->
  288. <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="whatsapp-float" aria-label="WhatsApp">
  289. <div class="whatsapp-pulse"></div>
  290. <svg width="28" height="28" viewBox="0 0 28 28" fill="white"><path d="M14 1C6.82 1 1 6.71 1 13.765c0 2.4.647 4.654 1.778 6.602L1 27l6.851-1.749A13.094 13.094 0 0014 26.53C21.18 26.53 27 20.82 27 13.765S21.18 1 14 1zm7.27 19.27c-.304.844-1.778 1.616-2.438 1.716-.627.095-1.397.136-2.254-.14-.518-.168-1.184-.392-2.034-.767C11.962 19.54 9.59 16.07 9.41 15.83c-.18-.238-1.46-1.923-1.46-3.664 0-1.74.922-2.598 1.25-2.95.327-.351.712-.44.948-.44.238 0 .475.003.682.01.218.01.512-.082.8.607.295.707 1.004 2.447 1.092 2.625.088.178.147.385.029.62-.119.238-.178.385-.356.594-.178.207-.372.462-.534.62-.178.169-.362.35-.155.687.207.333.919 1.505 1.974 2.436 1.358 1.207 2.502 1.58 2.838 1.757.335.178.531.148.728-.089.196-.238.83-.961 1.05-1.293.222-.333.442-.277.745-.167.304.11 1.926.903 2.257 1.068.33.168.551.249.633.387.083.139.083.814-.22 1.659z"/></svg>
  291. </a>
  292. <style>
  293. :global(body) {
  294. background-color: #0A0A0A;
  295. color: #C8A832;
  296. font-family: 'Montserrat', sans-serif;
  297. overflow-x: hidden;
  298. }
  299. /* NAV */
  300. #nav {
  301. position: fixed;
  302. top: 0;
  303. left: 0;
  304. right: 0;
  305. z-index: 100;
  306. transition: all 0.4s ease;
  307. }
  308. .nav-transparent {
  309. background: transparent;
  310. border-bottom: 1px solid transparent;
  311. }
  312. .nav-solid {
  313. background: rgba(10, 10, 10, 0.97);
  314. border-bottom: 1px solid rgba(200, 168, 50, 0.2);
  315. backdrop-filter: blur(12px);
  316. }
  317. .nav-inner {
  318. max-width: 1100px;
  319. margin: 0 auto;
  320. padding: 0 1.25rem;
  321. height: 72px;
  322. display: flex;
  323. align-items: center;
  324. justify-content: space-between;
  325. }
  326. .nav-logo img {
  327. filter: drop-shadow(0 0 8px rgba(200, 168, 50, 0.4));
  328. }
  329. .nav-links {
  330. display: none;
  331. align-items: center;
  332. gap: 2rem;
  333. }
  334. @media (min-width: 900px) { .nav-links { display: flex; } }
  335. .nav-link {
  336. font-family: 'Montserrat', sans-serif;
  337. font-size: 0.8rem;
  338. font-weight: 500;
  339. letter-spacing: 0.1em;
  340. text-transform: uppercase;
  341. color: #C8A832;
  342. text-decoration: none;
  343. transition: color 0.3s ease;
  344. }
  345. .nav-link:hover { color: #E8C840; }
  346. .active-link { color: #E8C840; }
  347. .nav-cta {
  348. font-family: 'Montserrat', sans-serif;
  349. font-size: 0.75rem;
  350. font-weight: 700;
  351. letter-spacing: 0.12em;
  352. text-transform: uppercase;
  353. color: #fff;
  354. background: #E01020;
  355. padding: 10px 24px;
  356. border-radius: 4px;
  357. text-decoration: none;
  358. transition: all 0.3s ease;
  359. }
  360. .nav-cta:hover { background: #C8A832; color: #0A0A0A; }
  361. .hamburger {
  362. display: flex;
  363. flex-direction: column;
  364. gap: 5px;
  365. background: none;
  366. border: none;
  367. cursor: pointer;
  368. padding: 4px;
  369. }
  370. @media (min-width: 900px) { .hamburger { display: none; } }
  371. .bar {
  372. display: block;
  373. width: 26px;
  374. height: 2px;
  375. background: #C8A832;
  376. transition: all 0.3s ease;
  377. transform-origin: center;
  378. }
  379. .bar-open-1 { transform: rotate(45deg) translate(5px, 5px); }
  380. .bar-open-2 { opacity: 0; }
  381. .bar-open-3 { transform: rotate(-45deg) translate(5px, -5px); }
  382. .mobile-menu {
  383. background: rgba(10, 10, 10, 0.98);
  384. border-top: 1px solid rgba(200, 168, 50, 0.15);
  385. padding: 1.5rem 1.25rem;
  386. display: flex;
  387. flex-direction: column;
  388. gap: 0;
  389. }
  390. .mobile-link {
  391. font-family: 'Montserrat', sans-serif;
  392. font-size: 0.9rem;
  393. font-weight: 500;
  394. letter-spacing: 0.08em;
  395. text-transform: uppercase;
  396. color: #C8A832;
  397. text-decoration: none;
  398. padding: 0.85rem 0;
  399. border-bottom: 1px solid rgba(200, 168, 50, 0.1);
  400. transition: color 0.3s;
  401. }
  402. .mobile-link:hover { color: #E8C840; }
  403. .mobile-cta {
  404. display: inline-block;
  405. margin-top: 1rem;
  406. background: #E01020;
  407. color: #fff;
  408. text-align: center;
  409. padding: 14px 32px;
  410. border-radius: 4px;
  411. font-family: 'Montserrat', sans-serif;
  412. font-size: 0.85rem;
  413. font-weight: 700;
  414. letter-spacing: 0.1em;
  415. text-transform: uppercase;
  416. text-decoration: none;
  417. transition: all 0.3s ease;
  418. }
  419. .mobile-cta:hover { background: #C8A832; color: #0A0A0A; }
  420. /* ABOUT HERO */
  421. .about-hero {
  422. position: relative;
  423. height: 60vh;
  424. min-height: 420px;
  425. display: flex;
  426. align-items: center;
  427. justify-content: center;
  428. overflow: hidden;
  429. }
  430. .about-hero-bg {
  431. position: absolute;
  432. inset: 0;
  433. }
  434. .about-hero-bg img {
  435. width: 100%;
  436. height: 100%;
  437. object-fit: cover;
  438. }
  439. .about-hero-overlay {
  440. position: absolute;
  441. inset: 0;
  442. background: linear-gradient(180deg, rgba(10,10,10,0.6) 0%, rgba(10,10,10,0.88) 100%);
  443. }
  444. .about-hero-radial {
  445. position: absolute;
  446. inset: 0;
  447. background: radial-gradient(circle at 50% 50%, rgba(240,200,48,0.08) 0%, transparent 65%);
  448. }
  449. .about-hero-content {
  450. position: relative;
  451. z-index: 2;
  452. text-align: center;
  453. padding: 5rem 1.25rem 2rem;
  454. display: flex;
  455. flex-direction: column;
  456. align-items: center;
  457. }
  458. .about-hero-title {
  459. font-family: 'Cinzel', serif;
  460. font-size: clamp(2.2rem, 7vw, 4.5rem);
  461. font-weight: 900;
  462. letter-spacing: 0.15em;
  463. text-transform: uppercase;
  464. background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
  465. -webkit-background-clip: text;
  466. -webkit-text-fill-color: transparent;
  467. background-clip: text;
  468. margin: 0.5rem 0 0.75rem;
  469. line-height: 1.1;
  470. animation: fadeInDown 0.9s ease 0.1s both;
  471. }
  472. .about-hero-sub {
  473. font-family: 'Montserrat', sans-serif;
  474. font-size: clamp(0.85rem, 2.5vw, 1.05rem);
  475. font-weight: 400;
  476. color: #C8A832;
  477. max-width: 520px;
  478. margin-bottom: 1.5rem;
  479. line-height: 1.7;
  480. animation: fadeInDown 0.9s ease 0.2s both;
  481. }
  482. .about-hero-divider {
  483. display: flex;
  484. align-items: center;
  485. gap: 1rem;
  486. animation: fadeIn 0.9s ease 0.3s both;
  487. }
  488. .divider-line {
  489. display: block;
  490. width: 80px;
  491. height: 1px;
  492. background: linear-gradient(90deg, transparent, #C8A832);
  493. }
  494. .divider-line:last-child { background: linear-gradient(270deg, transparent, #C8A832); }
  495. /* SECTIONS COMMON */
  496. .section-container {
  497. max-width: 1100px;
  498. margin: 0 auto;
  499. padding: 0 1.25rem;
  500. }
  501. .section-header {
  502. text-align: center;
  503. margin-bottom: 3.5rem;
  504. }
  505. .section-eyebrow {
  506. display: block;
  507. font-family: 'Montserrat', sans-serif;
  508. font-size: 0.7rem;
  509. font-weight: 600;
  510. letter-spacing: 0.3em;
  511. text-transform: uppercase;
  512. color: #E01020;
  513. margin-bottom: 0.75rem;
  514. }
  515. .section-title {
  516. font-family: 'Cinzel', serif;
  517. font-size: clamp(1.6rem, 4vw, 2.8rem);
  518. font-weight: 700;
  519. letter-spacing: 0.12em;
  520. text-transform: uppercase;
  521. background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
  522. -webkit-background-clip: text;
  523. -webkit-text-fill-color: transparent;
  524. background-clip: text;
  525. margin: 0 0 1rem;
  526. text-align: center;
  527. }
  528. .section-sub {
  529. font-family: 'Montserrat', sans-serif;
  530. font-size: 0.95rem;
  531. font-weight: 400;
  532. color: #9A8428;
  533. max-width: 560px;
  534. margin: 0 auto;
  535. line-height: 1.7;
  536. }
  537. /* STORY */
  538. .story-section {
  539. background: #0A0A0A;
  540. }
  541. .story-grid {
  542. display: grid;
  543. grid-template-columns: 1fr;
  544. align-items: center;
  545. }
  546. @media (min-width: 768px) {
  547. .story-grid { grid-template-columns: 1fr 1fr; }
  548. }
  549. .story-imgs {
  550. position: relative;
  551. min-height: 340px;
  552. padding-bottom: 3rem;
  553. }
  554. .story-img-main {
  555. width: 85%;
  556. height: 320px;
  557. border-radius: 6px;
  558. overflow: hidden;
  559. border: 2px solid rgba(200, 168, 50, 0.3);
  560. box-shadow: 0 0 30px rgba(200,168,50,0.1);
  561. }
  562. .story-img-main img {
  563. width: 100%;
  564. height: 100%;
  565. object-fit: cover;
  566. }
  567. .story-img-badge {
  568. position: absolute;
  569. bottom: 0;
  570. right: 0;
  571. width: 110px;
  572. height: 110px;
  573. border-radius: 50%;
  574. background: #111111;
  575. border: 2px solid #C8A832;
  576. box-shadow: 0 0 30px rgba(200,168,50,0.3);
  577. display: flex;
  578. flex-direction: column;
  579. align-items: center;
  580. justify-content: center;
  581. text-align: center;
  582. }
  583. .badge-number {
  584. font-family: 'Oswald', sans-serif;
  585. font-size: 1.8rem;
  586. font-weight: 700;
  587. background: linear-gradient(180deg, #E8C840, #9A8428);
  588. -webkit-background-clip: text;
  589. -webkit-text-fill-color: transparent;
  590. background-clip: text;
  591. line-height: 1;
  592. }
  593. .badge-label {
  594. font-family: 'Montserrat', sans-serif;
  595. font-size: 0.6rem;
  596. font-weight: 600;
  597. letter-spacing: 0.05em;
  598. color: #9A8428;
  599. text-transform: uppercase;
  600. line-height: 1.3;
  601. }
  602. .story-img-accent {
  603. position: absolute;
  604. top: 2.5rem;
  605. right: 0;
  606. width: 50%;
  607. height: 150px;
  608. border-radius: 6px;
  609. overflow: hidden;
  610. border: 2px solid #C8A832;
  611. box-shadow: 0 0 15px rgba(200,168,50,0.2);
  612. }
  613. .story-img-accent img {
  614. width: 100%;
  615. height: 100%;
  616. object-fit: cover;
  617. }
  618. .story-text {}
  619. .story-body {
  620. font-family: 'Montserrat', sans-serif;
  621. font-size: 0.9rem;
  622. color: #9A8428;
  623. line-height: 1.85;
  624. margin-bottom: 1rem;
  625. }
  626. .story-stats {
  627. display: flex;
  628. gap: 2rem;
  629. margin-top: 2rem;
  630. flex-wrap: wrap;
  631. }
  632. .story-stat {
  633. display: flex;
  634. flex-direction: column;
  635. align-items: flex-start;
  636. }
  637. .stat-number {
  638. font-family: 'Oswald', sans-serif;
  639. font-size: 2rem;
  640. font-weight: 700;
  641. background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
  642. -webkit-background-clip: text;
  643. -webkit-text-fill-color: transparent;
  644. background-clip: text;
  645. line-height: 1;
  646. }
  647. .stat-label {
  648. font-family: 'Montserrat', sans-serif;
  649. font-size: 0.68rem;
  650. font-weight: 600;
  651. letter-spacing: 0.1em;
  652. text-transform: uppercase;
  653. color: #9A8428;
  654. margin-top: 0.3rem;
  655. }
  656. /* VALUES */
  657. .values-section {
  658. background: #0D0D0D;
  659. border-top: 1px solid rgba(200,168,50,0.1);
  660. border-bottom: 1px solid rgba(200,168,50,0.1);
  661. }
  662. .values-grid {
  663. display: grid;
  664. grid-template-columns: 1fr;
  665. gap: 1.5rem;
  666. }
  667. @media (min-width: 640px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
  668. @media (min-width: 900px) { .values-grid { grid-template-columns: repeat(4, 1fr); } }
  669. .value-card {
  670. background: #111111;
  671. border: 1px solid rgba(154, 132, 40, 0.3);
  672. border-radius: 6px;
  673. padding: 2rem 1.5rem;
  674. box-shadow: 0 0 15px rgba(200,168,50,0.07);
  675. text-align: center;
  676. transition: all 0.4s ease;
  677. }
  678. .value-card:hover {
  679. border-color: #C8A832;
  680. box-shadow: 0 0 25px rgba(200,168,50,0.2);
  681. transform: translateY(-4px);
  682. }
  683. .value-icon-circle {
  684. width: 72px;
  685. height: 72px;
  686. border-radius: 50%;
  687. border: 2px solid #C8A832;
  688. display: flex;
  689. align-items: center;
  690. justify-content: center;
  691. background: rgba(200,168,50,0.04);
  692. margin: 0 auto 1.25rem;
  693. box-shadow: 0 0 20px rgba(200,168,50,0.12);
  694. }
  695. .value-title {
  696. font-family: 'Cinzel', serif;
  697. font-size: 0.85rem;
  698. font-weight: 700;
  699. letter-spacing: 0.08em;
  700. text-transform: uppercase;
  701. color: #C8A832;
  702. margin: 0 0 0.75rem;
  703. line-height: 1.4;
  704. }
  705. .value-desc {
  706. font-family: 'Montserrat', sans-serif;
  707. font-size: 0.82rem;
  708. color: #9A8428;
  709. line-height: 1.7;
  710. margin: 0;
  711. }
  712. /* TIMELINE */
  713. .timeline-section {
  714. background: #0A0A0A;
  715. }
  716. .timeline {
  717. max-width: 700px;
  718. margin: 0 auto;
  719. display: flex;
  720. flex-direction: column;
  721. gap: 0;
  722. }
  723. .timeline-item {
  724. display: grid;
  725. grid-template-columns: 100px 40px 1fr;
  726. align-items: flex-start;
  727. gap: 1rem;
  728. }
  729. .timeline-year {
  730. text-align: right;
  731. padding-top: 2px;
  732. }
  733. .timeline-year span {
  734. font-family: 'Oswald', sans-serif;
  735. font-size: 1.1rem;
  736. font-weight: 700;
  737. background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
  738. -webkit-background-clip: text;
  739. -webkit-text-fill-color: transparent;
  740. background-clip: text;
  741. }
  742. .timeline-connector {
  743. display: flex;
  744. flex-direction: column;
  745. align-items: center;
  746. }
  747. .timeline-dot {
  748. width: 14px;
  749. height: 14px;
  750. border-radius: 50%;
  751. border: 2px solid #C8A832;
  752. background: #0A0A0A;
  753. flex-shrink: 0;
  754. box-shadow: 0 0 10px rgba(200,168,50,0.4);
  755. margin-top: 2px;
  756. }
  757. .timeline-line {
  758. width: 2px;
  759. flex: 1;
  760. min-height: 48px;
  761. background: linear-gradient(180deg, #C8A832, rgba(200,168,50,0.15));
  762. margin: 6px 0;
  763. }
  764. .timeline-content {
  765. padding-bottom: 2.5rem;
  766. }
  767. .timeline-content p {
  768. font-family: 'Montserrat', sans-serif;
  769. font-size: 0.9rem;
  770. color: #9A8428;
  771. line-height: 1.6;
  772. margin: 0;
  773. padding-top: 2px;
  774. }
  775. /* TEAM */
  776. .team-section {
  777. background: #0D0D0D;
  778. border-top: 1px solid rgba(200,168,50,0.1);
  779. }
  780. .team-grid {
  781. display: grid;
  782. grid-template-columns: 1fr;
  783. gap: 1.5rem;
  784. }
  785. @media (min-width: 640px) { .team-grid { grid-template-columns: repeat(3, 1fr); } }
  786. .team-card {
  787. background: #111111;
  788. border: 1px solid rgba(154,132,40,0.3);
  789. border-radius: 6px;
  790. overflow: hidden;
  791. box-shadow: 0 0 15px rgba(200,168,50,0.07);
  792. transition: all 0.4s ease;
  793. }
  794. .team-card:hover {
  795. border-color: #C8A832;
  796. box-shadow: 0 0 25px rgba(200,168,50,0.2);
  797. transform: translateY(-4px);
  798. }
  799. .team-img {
  800. position: relative;
  801. height: 220px;
  802. overflow: hidden;
  803. }
  804. .team-img img {
  805. width: 100%;
  806. height: 100%;
  807. object-fit: cover;
  808. transition: transform 0.6s ease;
  809. }
  810. .team-card:hover .team-img img { transform: scale(1.06); }
  811. .team-img-overlay {
  812. position: absolute;
  813. inset: 0;
  814. background: linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.8) 100%);
  815. }
  816. .team-info {
  817. padding: 1.25rem 1.5rem;
  818. }
  819. .team-name {
  820. font-family: 'Cinzel', serif;
  821. font-size: 0.85rem;
  822. font-weight: 700;
  823. letter-spacing: 0.08em;
  824. text-transform: uppercase;
  825. color: #C8A832;
  826. margin: 0 0 0.35rem;
  827. }
  828. .team-role {
  829. font-family: 'Montserrat', sans-serif;
  830. font-size: 0.75rem;
  831. color: #9A8428;
  832. margin: 0;
  833. }
  834. /* CTA */
  835. .cta-section {
  836. background: #111111;
  837. border-top: 1px solid rgba(200,168,50,0.2);
  838. padding: 5rem 1.25rem;
  839. position: relative;
  840. overflow: hidden;
  841. }
  842. .cta-inner {
  843. max-width: 700px;
  844. margin: 0 auto;
  845. text-align: center;
  846. position: relative;
  847. z-index: 1;
  848. }
  849. .cta-glow {
  850. position: absolute;
  851. top: 50%;
  852. left: 50%;
  853. transform: translate(-50%, -50%);
  854. width: 500px;
  855. height: 500px;
  856. background: radial-gradient(circle, rgba(240,200,48,0.07) 0%, transparent 70%);
  857. pointer-events: none;
  858. }
  859. .cta-title {
  860. font-family: 'Cinzel', serif;
  861. font-size: clamp(1.6rem, 4vw, 2.8rem);
  862. font-weight: 700;
  863. letter-spacing: 0.12em;
  864. text-transform: uppercase;
  865. background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
  866. -webkit-background-clip: text;
  867. -webkit-text-fill-color: transparent;
  868. background-clip: text;
  869. margin: 0.5rem 0 1rem;
  870. }
  871. .cta-sub {
  872. font-family: 'Montserrat', sans-serif;
  873. font-size: 0.92rem;
  874. color: #9A8428;
  875. line-height: 1.7;
  876. margin-bottom: 2.5rem;
  877. }
  878. .cta-btns {
  879. display: flex;
  880. gap: 1rem;
  881. flex-wrap: wrap;
  882. justify-content: center;
  883. }
  884. .btn-primary {
  885. display: inline-flex;
  886. align-items: center;
  887. gap: 0.5rem;
  888. background: #E01020;
  889. color: #fff;
  890. font-family: 'Montserrat', sans-serif;
  891. font-size: 0.85rem;
  892. font-weight: 700;
  893. letter-spacing: 0.1em;
  894. text-transform: uppercase;
  895. text-decoration: none;
  896. padding: 14px 32px;
  897. border-radius: 4px;
  898. transition: all 0.3s ease;
  899. box-shadow: 0 0 20px rgba(224, 16, 32, 0.3);
  900. }
  901. .btn-primary:hover { background: #C8A832; color: #0A0A0A; box-shadow: 0 0 30px rgba(200,168,50,0.4); }
  902. .btn-outline {
  903. display: inline-flex;
  904. align-items: center;
  905. gap: 0.5rem;
  906. background: transparent;
  907. color: #C8A832;
  908. font-family: 'Montserrat', sans-serif;
  909. font-size: 0.85rem;
  910. font-weight: 700;
  911. letter-spacing: 0.1em;
  912. text-transform: uppercase;
  913. text-decoration: none;
  914. padding: 13px 32px;
  915. border-radius: 4px;
  916. border: 2px solid #C8A832;
  917. transition: all 0.3s ease;
  918. }
  919. .btn-outline:hover { background: #C8A832; color: #0A0A0A; }
  920. .btn-ghost {
  921. display: inline-flex;
  922. align-items: center;
  923. gap: 0.5rem;
  924. background: transparent;
  925. color: #9A8428;
  926. font-family: 'Montserrat', sans-serif;
  927. font-size: 0.85rem;
  928. font-weight: 600;
  929. letter-spacing: 0.1em;
  930. text-transform: uppercase;
  931. text-decoration: none;
  932. padding: 13px 24px;
  933. border-radius: 4px;
  934. border: 1px solid rgba(154,132,40,0.4);
  935. transition: all 0.3s ease;
  936. }
  937. .btn-ghost:hover { color: #C8A832; border-color: #C8A832; }
  938. /* FOOTER */
  939. .site-footer {
  940. background: #060606;
  941. border-top: 1px solid rgba(200, 168, 50, 0.2);
  942. padding: 4rem 1.25rem 2rem;
  943. }
  944. .footer-inner {
  945. max-width: 1100px;
  946. margin: 0 auto;
  947. }
  948. .footer-top {
  949. display: grid;
  950. grid-template-columns: 1fr;
  951. gap: 2.5rem;
  952. margin-bottom: 3rem;
  953. }
  954. @media (min-width: 640px) {
  955. .footer-top { grid-template-columns: 1.5fr 1fr 1fr; }
  956. }
  957. .footer-logo {
  958. height: 64px;
  959. width: auto;
  960. margin-bottom: 1rem;
  961. filter: drop-shadow(0 0 8px rgba(200,168,50,0.3));
  962. }
  963. .footer-tagline {
  964. font-family: 'Montserrat', sans-serif;
  965. font-size: 0.82rem;
  966. color: #9A8428;
  967. line-height: 1.6;
  968. max-width: 260px;
  969. font-style: italic;
  970. }
  971. .footer-col-title {
  972. font-family: 'Cinzel', serif;
  973. font-size: 0.7rem;
  974. font-weight: 700;
  975. letter-spacing: 0.2em;
  976. text-transform: uppercase;
  977. color: #C8A832;
  978. margin: 0 0 1rem;
  979. }
  980. .footer-links-col {
  981. display: flex;
  982. flex-direction: column;
  983. gap: 0.6rem;
  984. }
  985. .footer-link {
  986. font-family: 'Montserrat', sans-serif;
  987. font-size: 0.82rem;
  988. color: #9A8428;
  989. text-decoration: none;
  990. transition: color 0.3s ease;
  991. }
  992. .footer-link:hover { color: #C8A832; }
  993. .footer-link-text {
  994. font-family: 'Montserrat', sans-serif;
  995. font-size: 0.82rem;
  996. color: #9A8428;
  997. }
  998. .footer-bottom {
  999. border-top: 1px solid rgba(200, 168, 50, 0.1);
  1000. padding-top: 1.5rem;
  1001. display: flex;
  1002. flex-direction: column;
  1003. gap: 0.5rem;
  1004. align-items: center;
  1005. text-align: center;
  1006. }
  1007. @media (min-width: 640px) {
  1008. .footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; }
  1009. }
  1010. .footer-copy {
  1011. font-family: 'Montserrat', sans-serif;
  1012. font-size: 0.75rem;
  1013. color: #9A8428;
  1014. opacity: 0.6;
  1015. margin: 0;
  1016. }
  1017. /* WHATSAPP */
  1018. .whatsapp-float {
  1019. position: fixed;
  1020. bottom: 1.5rem;
  1021. right: 1.5rem;
  1022. width: 58px;
  1023. height: 58px;
  1024. border-radius: 50%;
  1025. background: linear-gradient(135deg, #25D366, #128C7E);
  1026. display: flex;
  1027. align-items: center;
  1028. justify-content: center;
  1029. z-index: 200;
  1030. box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
  1031. transition: transform 0.3s ease;
  1032. }
  1033. .whatsapp-float:hover { transform: scale(1.1); }
  1034. .whatsapp-pulse {
  1035. position: absolute;
  1036. inset: 0;
  1037. border-radius: 50%;
  1038. background: rgba(37, 211, 102, 0.4);
  1039. animation: waPulse 2s ease-out infinite;
  1040. }
  1041. @keyframes waPulse {
  1042. 0% { transform: scale(1); opacity: 0.7; }
  1043. 100% { transform: scale(1.7); opacity: 0; }
  1044. }
  1045. /* REVEAL */
  1046. .reveal {
  1047. opacity: 0;
  1048. transform: translateY(28px);
  1049. transition: opacity 0.7s ease, transform 0.7s ease;
  1050. }
  1051. .revealed {
  1052. opacity: 1;
  1053. transform: translateY(0);
  1054. }
  1055. @keyframes fadeInDown {
  1056. from { opacity: 0; transform: translateY(-20px); }
  1057. to { opacity: 1; transform: translateY(0); }
  1058. }
  1059. @keyframes fadeIn {
  1060. from { opacity: 0; }
  1061. to { opacity: 1; }
  1062. }
  1063. </style>