PageSourceSearch

https://ramonamma.com/contact

html ramonamma.com collected 2026-10-04 13:43:10 UTC 59,199 bytes, 949 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1.0">
6<title>Contact Us · Visit · Hours | Ramona MMA Center, Ramona CA</title>
7<meta name="description" content="Visit Ramona MMA Center at 2102 Main Street, Suite 2, Ramona, CA 92065. Call (760) 787-5855 or email [email protected]. View hours, get directions, or send us a message.">
8<link rel="preconnect" href="https://fonts.googleapis.com">
9<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
11<link rel="stylesheet" href="assets/css/styles.css">
12<style>.nav{display:flex;gap:32px;align-items:center;}
13.nav a{color:var(--white);font-weight:600;font-size:0.85rem;letter-spacing:0.02em;position:relative;padding:6px 0;}
14.nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--action);transition:width 0.25s var(--ease);}
15.nav a:hover::after,.nav a.active::after{width:100%;}
16.nav{gap:28px;}
17.nav-item{position:relative;}
18.nav-item::after{content:'';position:absolute;top:100%;left:0;right:0;height:18px;background:transparent;}
19.nav-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
20.nav-trigger .chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-bottom:3px;transition:transform 0.25s var(--ease);}
21.nav-item:hover .nav-trigger .chev,.nav-item:focus-within .nav-trigger .chev{transform:rotate(225deg);margin-bottom:-3px;}
22.nav-dropdown{position:absolute;top:100%;left:-16px;min-width:210px;background:var(--black-soft);border:1px solid rgba(255,255,255,0.10);border-radius:var(--radius-lg);padding:22px 0 10px;margin-top:0;box-shadow:0 12px 30px rgba(0,0,0,0.5);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity 0.18s var(--ease) 0s,transform 0.18s var(--ease) 0s,visibility 0s 0.35s;visibility:hidden;z-index:50;}
23.nav-item:hover .nav-dropdown,.nav-item:focus-within .nav-dropdown{opacity:1;pointer-events:auto;transform:translateY(0);visibility:visible;transition:opacity 0.18s var(--ease),transform 0.18s var(--ease),visibility 0s;}
24.nav-dropdown a{display:block;padding:10px 18px;font-size:0.82rem;letter-spacing:0.02em;font-weight:600;color:var(--white);white-space:nowrap;}
25.nav-dropdown a::after{display:none;}
26.nav-dropdown a:hover{background:rgba(255,255,255,0.06);color:var(--action);}
27.m-nav a.sub{font-size:1.05rem;padding:12px 0 12px 22px;font-weight:600;text-transform:none;letter-spacing:0.01em;color:rgba(255,255,255,0.82);border-bottom:1px solid rgba(255,255,255,0.05);}
28.hamburger{display:none;flex-direction:column;justify-content:center;width:40px;height:40px;gap:5px;padding:0;background:transparent !important;border:0;outline:0;-webkit-appearance:none;appearance:none;cursor:pointer;}
29.hamburger span{display:block;width:24px;height:2px;background:var(--white);transition:all 0.2s ease;}
30.m-nav{position:fixed;inset:0;background:rgba(11,11,15,0.98);backdrop-filter:blur(20px);z-index:200;padding:80px 28px 40px;overflow-y:auto;display:none;}
31.m-nav.open{display:block;}
32.m-nav-close{position:absolute;top:20px;right:20px;color:white;font-size:30px;width:44px;height:44px;line-height:1;}
33.m-nav a{display:block;color:var(--white);font-weight:800;font-size:1.6rem;padding:18px 0;border-bottom:1px solid rgba(255,255,255,0.08);letter-spacing:-0.01em;text-transform:uppercase;}
34.m-nav .btn{margin-top:28px;width:100%;}
35
36.page-hero{background:var(--black);color:var(--white);padding:90px 0 70px;position:relative;overflow:hidden;}
37.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(185,28,28,0.18) 0%,transparent 50%),radial-gradient(circle at 15% 80%,rgba(27,58,111,0.22) 0%,transparent 50%);pointer-events:none;}
38.page-hero .container{position:relative;}
39.page-hero .hero-eyebrow{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.18);backdrop-filter:blur(8px);padding:8px 14px;border-radius:100px;color:var(--white);font-size:0.72rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:22px;}
40.page-hero h1{color:var(--white);font-size:clamp(2.4rem,5.5vw,4.4rem);font-weight:900;letter-spacing:-0.03em;line-height:0.98;margin-bottom:22px;max-width:920px;text-transform:uppercase;}
41.page-hero-grid{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;}
42.page-hero-grid > .reveal{min-width:0;}
43.page-hero-logo{display:flex;justify-content:flex-end;align-items:center;}
44.page-hero-logo img{width:min(360px,38vw);height:auto;display:block;background:transparent;}
45@media (max-width:767px){
46  .page-hero-grid{grid-template-columns:1fr;gap:24px;}
47  .page-hero-logo{justify-content:center;order:-1;}
48  .page-hero-logo img{width:200px;}
49}
50.page-hero h1 .accent{color:var(--white);position:relative;}
51.page-hero h1 .accent::after{content:'';position:absolute;left:0;bottom:6px;width:100%;height:14%;background:var(--action);z-index:-1;opacity:0.85;}
52.page-hero p.lede{color:rgba(255,255,255,0.78);font-size:1.08rem;max-width:640px;}
53
54section{padding:90px 0;}
55.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px;flex-wrap:wrap;}
56.section-head .title-block{max-width:760px;}
57.section-head h2{margin-bottom:8px;}
58
59.overview{background:var(--white);}
60.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}
61.overview-grid .lede{font-size:1.08rem;}
62.overview-points{list-style:none;padding:0;margin-top:18px;}
63.overview-points li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:start;font-size:0.96rem;color:var(--text-1);line-height:1.55;}
64.overview-points li:last-child{border-bottom:0;}
65.overview-points li::before{content:'';flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--action);margin-top:7px;}
66.overview-photo{aspect-ratio:4/5;border-radius:var(--radius-lg);position:relative;overflow:hidden;}
67
68.who{background:var(--bg-soft);}
69.who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
70.who-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px 26px;}
71.who-card .ico{width:46px;height:46px;background:rgba(185,28,28,0.1);color:var(--action);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:16px;font-weight:800;}
72.who-card h3{font-size:1.2rem;margin-bottom:8px;letter-spacing:-0.02em;text-transform:uppercase;}
73.who-card p{font-size:0.92rem;color:var(--text-2);line-height:1.6;}
74
75.coach-feature{background:var(--black);color:var(--white);}
76.coach-feature h2{color:var(--white);}
77.coach-feature .lede{color:rgba(255,255,255,0.7);}
78.coach-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px;}
79.coach-feature-grid.single{grid-template-columns:1fr 2fr;max-width:900px;}
80.coach-spotlight{background:var(--black-soft);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);overflow:hidden;display:grid;grid-template-columns:200px 1fr;}
81.coach-spotlight .ph{position:relative;}
82.coach-spotlight .body{padding:28px;display:flex;flex-direction:column;justify-content:center;}
83.coach-spotlight .role{color:var(--gold);font-size:0.7rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:6px;}
84.coach-spotlight h3{color:var(--white);font-size:1.4rem;margin-bottom:8px;letter-spacing:-0.02em;text-transform:uppercase;}
85.coach-spotlight p{color:rgba(255,255,255,0.7);font-size:0.92rem;line-height:1.6;margin-bottom:14px;}
86.coach-spotlight .read{color:var(--white);font-size:0.72rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;border-bottom:2px solid var(--action);padding-bottom:3px;align-self:flex-start;}
87
88.levels{background:var(--white);}
89.levels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
90.level-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px 28px;position:relative;}
91.level-card .num{font-size:0.7rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--action);margin-bottom:8px;}
92.level-card h3{font-size:1.4rem;margin-bottom:10px;letter-spacing:-0.02em;text-transform:uppercase;}
93.level-card p{font-size:0.92rem;color:var(--text-2);line-height:1.6;}
94
95.schedule-cta{background:var(--bg-soft);}
96.schedule-cta .container{text-align:center;}
97.schedule-cta h2{margin-bottom:14px;}
98.schedule-cta p{color:var(--text-2);max-width:580px;margin:0 auto 24px;font-size:1.02rem;}
99
100.final-cta{background:var(--navy-dark);color:var(--white);padding:110px 0;text-align:center;position:relative;overflow:hidden;}
101.final-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(185,28,28,0.15) 0%,transparent 45%),radial-gradient(circle at 70% 50%,rgba(212,162,76,0.18) 0%,transparent 45%);}
102.final-cta .container{position:relative;}
103.final-cta h2{color:var(--white);font-size:clamp(2.2rem,5.5vw,3.6rem);font-weight:900;letter-spacing:-0.03em;line-height:1;margin-bottom:20px;text-transform:uppercase;}
104.final-cta p{color:rgba(255,255,255,0.78);font-size:1.05rem;max-width:560px;margin:0 auto 30px;}
105
106.footer{background:#050507;color:rgba(255,255,255,0.6);padding:70px 0 0;}
107.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,0.08);}
108.footer h5{color:var(--white);font-size:0.78rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;margin-bottom:20px;}
109.footer ul{list-style:none;}
110.footer ul li{margin-bottom:10px;}
111.footer ul li a{color:rgba(255,255,255,0.55);font-size:0.88rem;}
112.footer ul li a:hover{color:var(--white);}
113.footer-about p{font-size:0.9rem;line-height:1.7;margin-bottom:16px;max-width:360px;}
114.footer-contact-item{margin-bottom:14px;font-size:0.88rem;line-height:1.6;}
115.footer-contact-item strong{color:var(--white);display:block;font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;margin-bottom:4px;font-weight:800;}
116.social-icons-big{display:flex;gap:12px;align-items:center;margin-top:18px;flex-wrap:wrap;}
117.social-icons-big .follow-label{font-size:0.7rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--white);margin-right:6px;}
118.social-icons-big a{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform 0.25s var(--ease),box-shadow 0.25s var(--ease);color:var(--white);}
119.social-icons-big a:hover{transform:translateY(-3px) scale(1.06);}
120.social-icons-big a svg{width:22px;height:22px;fill:white;}
121.social-icons-big .ig{background:linear-gradient(135deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%);}
122.social-icons-big .ig:hover{box-shadow:0 12px 32px rgba(220,39,67,0.45);}
123.social-icons-big .fb{background:#1877F2;}
124.social-icons-big .fb:hover{box-shadow:0 12px 32px rgba(24,119,242,0.45);}
125.social-icons-big .yt{background:#FF0000;}
126.social-icons-big .yt:hover{box-shadow:0 12px 32px rgba(255,0,0,0.45);}
127.footer-bottom{padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:0.78rem;color:rgba(255,255,255,0.4);}
128.footer-bottom a{color:rgba(255,255,255,0.5);margin-left:16px;}
129
130.m-sticky{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--black);border-top:1px solid var(--line-dark);padding:10px 12px;z-index:90;gap:8px;}
131.m-sticky .btn{flex:1;padding:14px;font-size:0.82rem;}
132.m-sticky .btn-call{background:rgba(255,255,255,0.1);color:var(--white);flex:0 0 auto;width:50px;padding:14px 0;border-radius:var(--radius);}
133
134.modal{position:fixed;inset:0;background:rgba(11,11,15,0.85);backdrop-filter:blur(10px);z-index:300;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;opacity:0;transition:opacity 0.25s ease;overflow-y:auto;}
135.modal.open{display:flex;opacity:1;}
136.modal-card{background:var(--white);width:100%;max-width:560px;border-radius:var(--radius-lg);padding:0;position:relative;animation:modalSlide 0.35s var(--ease);margin:auto;}
137@keyframes modalSlide{from{transform:translateY(30px);opacity:0;}to{transform:translateY(0);opacity:1;}}
138.modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,0.05);font-size:22px;color:var(--text-1);z-index:5;}
139.modal-top{background:var(--black);color:var(--white);padding:36px 40px 30px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:relative;overflow:hidden;}
140.modal-top::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 90% 0%,rgba(185,28,28,0.3) 0%,transparent 50%);}
141.modal-top > *{position:relative;}
142.modal-top .pill{display:inline-flex;align-items:center;gap:8px;background:rgba(185,28,28,0.18);border:1px solid rgba(185,28,28,0.45);color:#FF8888;padding:6px 12px;border-radius:100px;font-size:0.68rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:14px;}
143.modal-top .pill .dot{width:7px;height:7px;border-radius:50%;background:var(--action);animation:pulse 2s infinite;}
144@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(185,28,28,0.7);}50%{box-shadow:0 0 0 8px rgba(185,28,28,0);}}
144
145.modal-top h3{color:var(--white);font-size:1.7rem;letter-spacing:-0.025em;text-transform:uppercase;margin-bottom:8px;}
146.modal-top p{color:rgba(255,255,255,0.78);font-size:0.95rem;}
147.modal-form{padding:32px 40px;background:var(--white);}
148.modal-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
149.field{margin-bottom:14px;}
150.field label{display:block;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:6px;}
151.field input,.field select{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:var(--radius);font-size:0.95rem;font-family:inherit;background:var(--bg-soft);transition:all 0.2s ease;}
152.field input:focus,.field select:focus{outline:0;border-color:var(--navy);background:var(--white);}
153.form-fine{font-size:0.72rem;color:var(--text-3);margin-top:12px;line-height:1.5;text-align:center;}
154
155@media (max-width:1023px){
156  .overview-grid{grid-template-columns:1fr;gap:30px;}
157  .who-grid{grid-template-columns:repeat(2,1fr);}
158  .coach-feature-grid{grid-template-columns:1fr;}
159  .coach-feature-grid.single{grid-template-columns:1fr;}
160  .coach-spotlight{grid-template-columns:1fr;}
161  .coach-spotlight .ph{aspect-ratio:16/9;}
162  .levels-grid{grid-template-columns:1fr;}
163  .footer-grid{grid-template-columns:1fr 1fr;}
164  .head-action{padding:14px 10px;gap:6px;}
165  .nav{display:none;}
166  .hamburger{display:flex;}
167  .head-action .ic{width:32px;height:32px;}
168}
169@media (max-width:767px){
170  body{padding-bottom:70px;}
171  .nav{display:none;}
172  .hamburger{display:flex;}
173  .util-left{font-size:0.74rem;}
174  section{padding:70px 0;}
175  .page-hero{padding:60px 0 50px;}
176  .head-actions-grid{grid-template-columns:repeat(3,1fr);}
177  .head-action{padding:10px 4px;gap:4px;}
178  .head-action .ic{width:26px;height:26px;}
179  .head-action .ic svg{width:14px;height:14px;}
180  .head-action .lbl{font-size:0.7rem;letter-spacing:0.02em;}
181  .who-grid{grid-template-columns:1fr;}
182  .footer-grid{grid-template-columns:1fr;}
183  .footer{padding-bottom:80px;}
184  .m-sticky{display:flex;}
185  .modal{padding:16px;}
186  .modal-top,.modal-form{padding-left:24px;padding-right:24px;}
187  .modal-form .form-row{grid-template-columns:1fr;}
188}
189
190/* === ABOUT PAGE === */
191.story{background:var(--white);padding:90px 0;}
192.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:60px;}
193.story-grid:last-child{margin-bottom:0;}
194.story-grid.flip{direction:rtl;}.story-grid.flip > *{direction:ltr;}
195.story-photo{aspect-ratio:4/5;border-radius:var(--radius-lg);position:relative;overflow:hidden;}
196.story-text h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:18px;letter-spacing:-0.02em;text-transform:uppercase;}
197.story-text p{font-size:1rem;color:var(--text-1);line-height:1.7;margin-bottom:14px;}
198.story-stats{background:var(--bg-soft);padding:80px 0;}
199.story-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
200.story-stat .num{font-size:2.4rem;font-weight:900;letter-spacing:-0.025em;line-height:1;color:var(--text-1);}
201.story-stat .lbl{font-size:0.7rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-2);margin-top:8px;}
202
203/* === CONTACT PAGE === */
204.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;}
205.contact-info{}
206.contact-block{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;margin-bottom:18px;}
207.contact-block .label{font-size:0.7rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--action);margin-bottom:8px;}
208.contact-block h3{font-size:1.15rem;margin-bottom:6px;letter-spacing:-0.015em;text-transform:uppercase;}
209.contact-block p,.contact-block a{font-size:0.95rem;color:var(--text-1);line-height:1.6;}
210.contact-block a:hover{color:var(--action);}
211.contact-hours-list{list-style:none;padding:0;font-size:0.9rem;color:var(--text-1);line-height:1.8;}
212.contact-hours-list li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:6px 0;}
213.contact-hours-list li:last-child{border-bottom:0;}
214.contact-hours-list .day{font-weight:700;}
215.contact-form{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px;}
216.contact-form h2{font-size:1.6rem;margin-bottom:8px;letter-spacing:-0.02em;text-transform:uppercase;}
217.contact-form p.lede-sm{color:var(--text-2);font-size:0.95rem;margin-bottom:24px;}
218.contact-form .field textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:var(--radius);font-size:0.95rem;font-family:inherit;background:var(--bg-soft);min-height:120px;resize:vertical;}
219.map-block{aspect-ratio:16/10;border-radius:var(--radius-lg);overflow:hidden;margin-top:18px;}
220
221/* === SCHEDULE PAGE === */
222.sched-filters{background:var(--bg-soft);padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;}
223.sched-filters-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center;}
224.sched-filters-row .label{font-size:0.7rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-2);margin-right:6px;}
225.sched-pill{padding:9px 18px;border-radius:100px;border:1.5px solid var(--line);background:var(--white);color:var(--text-1);font-size:0.82rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;cursor:pointer;transition:all 0.2s var(--ease);}
226.sched-pill:hover{border-color:var(--text-1);}
227.sched-pill.active{background:var(--action);border-color:var(--action);color:var(--white);}
228.sched-day{padding:24px 0;border-bottom:1px solid var(--line);}
229.sched-day:last-child{border-bottom:0;}
230.sched-day-head{font-size:0.78rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--action);margin-bottom:14px;}
231.sched-day-head .day-name{color:var(--text-1);font-size:1.4rem;letter-spacing:-0.02em;text-transform:uppercase;display:block;font-weight:900;margin-bottom:2px;}
232.sched-classes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
233.sched-class{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;transition:all 0.2s var(--ease);}
234.sched-class:hover{border-color:var(--text-1);}
235.sched-class.hidden{display:none;}
236.sched-class .time{font-weight:800;font-size:0.92rem;color:var(--text-1);font-variant-numeric:tabular-nums;flex-shrink:0;}
237.sched-class .info{flex:1;}
238.sched-class .name{font-size:0.92rem;font-weight:700;color:var(--text-1);}
239.sched-class .tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
240.sched-class .tag{font-size:0.65rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-3);background:var(--bg-soft);padding:3px 8px;border-radius:3px;}
241.sched-closed{padding:24px;text-align:center;color:var(--text-3);font-style:italic;font-size:0.95rem;background:var(--bg-soft);border-radius:var(--radius);}
242
243/* === RULES PAGE === */
244.rules-section{background:var(--white);padding:90px 0;}
245.rules-list{max-width:780px;}
246.rule-item{padding:28px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:60px 1fr;gap:24px;align-items:start;}
247.rule-item:last-child{border-bottom:0;}
248.rule-num{font-size:2.2rem;font-weight:900;letter-spacing:-0.04em;color:var(--action);line-height:1;}
249.rule-text h3{font-size:1.2rem;margin-bottom:8px;letter-spacing:-0.015em;text-transform:uppercase;}
250.rule-text p{font-size:0.96rem;color:var(--text-2);line-height:1.7;}
251
252/* === FOUNDATION PAGE === */
253.fnd-mission{background:var(--bg-soft);padding:90px 0;}
254.fnd-mission .container{max-width:820px;text-align:center;}
255.fnd-mission h2{font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:20px;letter-spacing:-0.02em;text-transform:uppercase;}
256.fnd-mission p{font-size:1.1rem;color:var(--text-1);line-height:1.75;margin-bottom:14px;}
257.fnd-categories{padding:90px 0;background:var(--white);}
258.fnd-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
259.fnd-cat{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px 26px;}
260.fnd-cat .ico{width:48px;height:48px;border-radius:8px;background:var(--action);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;margin-bottom:14px;}
261.fnd-cat h3{font-size:1.15rem;margin-bottom:8px;letter-spacing:-0.015em;text-transform:uppercase;}
262.fnd-cat p{font-size:0.92rem;color:var(--text-2);line-height:1.6;}
263
264@media (max-width:1023px){
265  .story-grid,.story-grid.flip{grid-template-columns:1fr;direction:ltr;gap:30px;}
266  .story-stats-grid{grid-template-columns:repeat(2,1fr);gap:18px;}
267  .contact-grid{grid-template-columns:1fr;}
268  .fnd-cat-grid{grid-template-columns:repeat(2,1fr);}
269}
270@media (max-width:767px){
271  .story-stats-grid{grid-template-columns:1fr;}
272  .fnd-cat-grid{grid-template-columns:1fr;}
273  .rule-item{grid-template-columns:48px 1fr;gap:16px;}
274  .rule-num{font-size:1.7rem;}
275  .sched-class{flex-direction:column;align-items:flex-start;}
276}
277
278@keyframes pulse-call-ring{0%{box-shadow:0 0 0 0 rgba(220,39,67,0.32);}70%{box-shadow:0 0 0 9px rgba(220,39,67,0);}100%{box-shadow:0 0 0 0 rgba(220,39,67,0);}}
279@keyframes pulse-call-scale{0%,100%{transform:scale(1);}50%{transform:scale(1.03);}}
280.m-sticky .btn-call,.btn-call{animation:pulse-call-ring 2s infinite ease-out,pulse-call-scale 2s infinite ease-in-out;}
281.m-sticky .btn-call:hover,.btn-call:hover{animation:none;}
282</style>
283<link rel="canonical" href="https://www.ramonamma.com/contact/">
284<meta property="og:type" content="article">
285<meta property="og:title" content="Contact Us · Visit · Hours | Ramona MMA Center, Ramona CA">
286<meta property="og:description" content="Visit Ramona MMA Center at 2102 Main Street, Suite 2, Ramona, CA 92065. Call (760) 787-5855 or email [email protected]. View hours, get directions, or send us a message.">
287<meta property="og:url" content="https://www.ramonamma.com/contact/">
288<meta property="og:image" content="https://www.ramonamma.com/images/og-default.jpg">
289<meta property="og:site_name" content="Ramona MMA Center">
290<meta name="twitter:card" content="summary_large_image">
291<meta name="twitter:title" content="Contact Us · Visit · Hours | Ramona MMA Center, Ramona CA">
292<meta name="twitter:description" content="Visit Ramona MMA Center at 2102 Main Street, Suite 2, Ramona, CA 92065. Call (760) 787-5855 or email [email protected]. View hours, get directions, or send us a message.">
293<meta name="twitter:image" content="https://www.ramonamma.com/images/og-default.jpg">
294<script type="application/ld+json">{"@context":"https://schema.org","@type":"MartialArtsSchool","@id":"https://www.ramonamma.com/#organization","name":"Ramona MMA Center","alternateName":["Ramona Brazilian Jiu Jitsu","Ramona MMA","RBJJ"],"url":"https://www.ramonamma.com","logo":"https://www.ramonamma.com/logo.png","image":"https://www.ramonamma.com/images/gym-exterior.jpg","telephone":"+1-760-787-5855","email":"[email protected]","priceRange":"$$","address":{"@type":"PostalAddress","streetAddress":"2102 Main Street, Suite 2","addressLocality":"Ramona","addressRegion":"CA","postalCode":"92065","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":"33.0414","longitude":"-116.8676"},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"15:25","closes":"20:15"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"15:45","closes":"20:15"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"15:25","closes":"20:15"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"15:45","closes":"20:15"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"15:45","closes":"19:30"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"08:45","closes":"11:45"}],"sameAs":["https://www.facebook.com/ramonamma","https://www.instagram.com/ramonamma","https://www.youtube.com/@ramonamma"],"areaServed":[{"@type":"City","name":"Ramona"},{"@type":"City","name":"Poway"},{"@type":"City","name":"Escondido"},{"@type":"AdministrativeArea","name":"San Diego County"}],"founder":{"@type":"Person","name":"Kevin Hosseini","jobTitle":"Head Coach and Owner","description":"4th-degree Brazilian Jiu-Jitsu black belt under Fabio Santos in the Rickson Gracie lineage."}}</script>
vendor: 1 bytes, line 294
294
295<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.ramonamma.com/"},{"@type":"ListItem","position":2,"name":"Contact"}]}</script>
295
296  <!-- Google tag (gtag.js) -->
vendor: 66 bytes, lines 296-297
296
297  <script async src="https://www.googletagmanager.com/gtag/js?id=
297AW-16569339031
vendor: 14 bytes, lines 297-298
297"></script>
298  
298<script>
299    
vendor: 140 bytes, lines 299-303
299window.dataLayer = window.dataLayer || [];
300    function gtag(){dataLayer.push(arguments);}
301    gtag('js', new Date());
302
303    gtag('config', '
303AW-16569339031
vendor: 6 bytes, lines 303-304
303');
304  
304</script>
304
305</head>
306<body>
307
308<div class="head-actions">
309  <div class="head-actions-grid">
310    <a href="tel:7607875855" class="head-action">
311      <span class="ic"><svg viewBox="0 0 24 24"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57a1 1 0 00-1.02.24l-2.2 2.2a15.07 15.07 0 01-6.59-6.58l2.2-2.21a1 1 0 00.25-1A11.36 11.36 0 018.5 4a1 1 0 00-1-1H4a1 1 0 00-1 1c0 9.39 7.61 17 17 17a1 1 0 001-1v-3.5a1 1 0 00-1-1z"/></svg></span>
312      <span class="lbl">Call Us</span>
313    </a>
314    <a href="schedule.html" class="head-action">
315      <span class="ic"><svg viewBox="0 0 24 24"><path d="M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V6a2 2 0 00-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z"/></svg></span>
316      <span class="lbl">Schedule</span>
317    </a>
318    <button class="head-action" onclick="openModal()">
319      <span class="ic"><svg viewBox="0 0 24 24"><path d="M12 1L3 5v6c0 5.5 3.8 10.7 9 12 5.2-1.3 9-6.5 9-12V5l-9-4zm0 6c1.4 0 2.5 1.1 2.5 2.5S13.4 12 12 12s-2.5-1.1-2.5-2.5S10.6 7 12 7zm0 12c-2.1 0-4-1.6-4.5-3.7C7.7 14 9.7 13 12 13s4.3 1 4.5 2.3C16 17.4 14.1 19 12 19z"/></svg></span>
320      <span class="lbl">Web Special</span>
321    </button>
322  </div>
323</div>
324
325<div class="header-wrap">
326  <header class="header">
327    <div class="container">
328      <a href="index.html" class="logo">
329        <span class="logo-mark"><img src="media/logo/ramona-mma-logo.png" alt="Ramona MMA Center logo"></span>
330        <span class="logo-text"><span class="top">RAMONA MMA</span><span class="bottom">Center · Since 2010</span></span>
331      </a>
332      <nav class="nav">
333        <a href="index.html">Home</a>
334        <span class="nav-item">
335          <a href="index.html#programs" class="nav-trigger">Training<span class="chev"></span></a>
336          <div class="nav-dropdown">
337            <a href="index.html#programs">Styles We Offer</a>
338            <a href="index.html#kids-teens">Kids &amp; Teens</a>
339            <a href="index.html#adults">Adults</a>
340            <a href="index.html#specialty">Specialty Classes</a>
341          </div>
342        </span>
343        <span class="nav-item">
344          <a href="index.html#facility" class="nav-trigger">Facility<span class="chev"></span></a>
345          <div class="nav-dropdown">
346            <a href="index.html#facility">Our Facility</a>
347            <a href="academy-rules.html">Academy Rules &amp; Gear</a>
348            <a href="waiver.html">Sign Waiver</a>
349          </div>
350        </span>
351        <a href="index.html#memberships">Memberships</a>
352        <a href="schedule.html">Schedule</a>
353        <span class="nav-item">
354          <a href="about.html" class="nav-trigger">About<span class="chev"></span></a>
355          <div class="nav-dropdown">
356            <a href="about.html">Our Story</a>
357            <a href="coaches.html">Coaches</a>
358            <a href="foundation.html">Scholarships</a>
359          </div>
360        </span>
361        <a href="refer.html">Refer a Friend</a>
362        <a href="contact.html" class="active">Contact</a>
363      </nav>
364      <button class="hamburger" onclick="document.getElementById('mNav').classList.add('open')"><span></span><span></span><span></span></button>
365    </div>
366  </header>
367</div>
368
369<nav class="m-nav" id="mNav">
370  <button class="m-nav-close" aria-label="Close menu" onclick="document.getElementById('mNav').classList.remove('open')">×</button>
371  <a href="index.html" onclick="document.getElementById('mNav').classList.remove('open')">Home</a>
372  <a href="index.html#programs" onclick="document.getElementById('mNav').classList.remove('open')">Training</a>
373  <a href="index.html#programs" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Styles We Offer</a>
374  <a href="index.html#kids-teens" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Kids &amp; Teens</a>
375  <a href="index.html#adults" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Adults</a>
376  <a href="index.html#specialty" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Specialty Classes</a>
377  <a href="index.html#facility" onclick="document.getElementById('mNav').classList.remove('open')">Facility</a>
378  <a href="index.html#facility" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Our Facility</a>
379  <a href="academy-rules.html" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Academy Rules &amp; Gear</a>
380  <a href="waiver.html" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Sign Waiver</a>
381  <a href="index.html#memberships" onclick="document.getElementById('mNav').classList.remove('open')">Memberships</a>
382  <a href="schedule.html" onclick="document.getElementById('mNav').classList.remove('open')">Schedule</a>
383  <a href="about.html" onclick="document.getElementById('mNav').classList.remove('open')">About</a>
384  <a href="about.html" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Our Story</a>
385  <a href="coaches.html" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Coaches</a>
386  <a href="foundation.html" class="sub" onclick="document.getElementById('mNav').classList.remove('open')">— Scholarships</a>
387  <a href="refer.html" onclick="document.getElementById('mNav').classList.remove('open')">Refer a Friend</a>
388  <a href="contact.html" onclick="document.getElementById('mNav').classList.remove('open')">Contact</a>
389  <button class="btn btn-primary" onclick="document.getElementById('mNav').classList.remove('open');openModal();">Reserve My Spot</button>
390</nav>
391
392<section class="page-hero">
393  <div class="container">
394    <div class="page-hero-grid">
395      <div class="reveal in">
396        <span class="hero-eyebrow">Visit · Call · Email</span>
397        <h1>Find Us On <span class="accent">Main Street.</span></h1>
398        <p class="lede">2102 Main Street, Suite 2, Ramona, CA 92065. Family-owned since 2010. The original Brazilian Jiu-Jitsu and MMA academy in Ramona.</p>
399      </div>
400      <div class="page-hero-logo reveal in" aria-hidden="true">
401        <img src="media/logo/ramona-mma-logo-banner.png" alt="" width="700" height="700" loading="lazy">
402      </div>
403    </div>
404  </div>
405</section>
406
407<section class="story">
408  <div class="container">
409    <div class="contact-grid">
410
411      <div class="contact-info reveal">
412        <div class="contact-block">
413          <div class="label">Visit Us</div>
414          <h3>Ramona MMA Center</h3>
415          <p>2102 Main Street, Suite 2<br>Ramona, CA 92065</p>
416          <div class="map-block" style="margin-top:18px;">
417            <iframe
418              src="https://maps.google.com/maps?q=2102+Main+Street+Suite+2+Ramona+CA+92065&t=&z=15&ie=UTF8&iwloc=&output=embed"
419              width="100%" height="100%"
420              style="border:0;display:block;"
421              allowfullscreen=""
422              loading="lazy"
423              referrerpolicy="no-referrer-when-downgrade"
424              title="Ramona MMA Center location map — 2102 Main Street, Suite 2, Ramona, CA 92065">
425            </iframe>
426          </div>
427        </div>
428
429        <div class="contact-block">
430          <div class="label">Call Us</div>
431          <h3>(760) 787-5855</h3>
432          <p>Reach out by phone — we&rsquo;ll text you with available trial times and answer any program questions. If you&rsquo;ve been searching for martial arts near you in Ramona, we&rsquo;re happy to help you find the right starting point.</p>
433        </div>
434
435        <div class="contact-block">
436          <div class="label">Email Us</div>
437          <h3><a href="mailto:[email protected]">[email protected]</a></h3>
438          <p>Best for non-urgent questions or detailed program inquiries.</p>
439        </div>
440
441      </div>
442
443      <div class="reveal">
444        <div class="contact-form">
445          <span class="eyebrow">Send Us A Message</span>
446          <h2>Have a Question?</h2>
447          <p class="lede-sm">For the fastest response, reserve your private trial , a coach will follow up directly. For non-urgent questions, fill out the form below.</p>
448          <form action="https://formspree.io/f/mpqnprng" method="POST">
449            <input type="hidden" name="_subject" value="New message from Ramona MMA contact page">
450            <input type="text" name="_gotcha" tabindex="-1" autocomplete="off" style="display:none">
451            <div class="form-row" style="display:grid;grid-template-columns:1fr 1fr;gap:12px;">
452              <div class="field"><label for="contact-first-name">First Name</label><input id="contact-first-name" type="text" name="first_name" required placeholder="First"></div>
453              <div class="field"><label for="contact-last-name">Last Name</label><input id="contact-last-name" type="text" name="last_name" required placeholder="Last"></div>
454            </div>
455            <div class="field"><label for="contact-email">Email</label><input id="contact-email" type="email" name="email" required placeholder="[email protected]"></div>
456            <div class="field"><label for="contact-phone">Phone (optional)</label><input id="contact-phone" type="tel" name="phone" placeholder="(555) 555-5555"></div>
457            <div class="field"><label for="contact-message">Message</label><textarea id="contact-message" name="message" required placeholder="How can we help?"></textarea></div>
458            <button type="submit" class="btn btn-primary btn-block btn-lg">Send Message</button>
459            <p class="form-fine">For fastest response, reserve a private trial instead , coaches respond same day.</p>
460          </form>
461        </div>
462      </div>
463
464    </div>
465  </div>
466</section>
467
468<section class="final-cta">
469  <div class="container">
470    <h2 class="reveal">Step On The Mat. <span style="color:var(--gold);">By Appointment.</span></h2>
471    <p class="reveal">A private session and walk-through of the Center is the fastest way to see the gym.</p>
472    <button class="btn btn-primary btn-lg reveal" onclick="openModal()">Reserve Your Private Trial</button>
473  </div>
474</section>
475
476<footer class="footer">
477  <div class="container">
478    <div class="footer-grid">
479      <div class="footer-about">
480        <a href="index.html" class="logo" style="margin-bottom:18px;">
481          <span class="logo-mark"><img src="media/logo/ramona-mma-logo.png" alt="Ramona MMA Center logo"></span>
482          <span class="logo-text"><span class="top">RAMONA MMA</span><span class="bottom">Center · Since 2010</span></span>
483        </a>
484        <p>Ramona's original Brazilian Jiu-Jitsu and MMA academy. Family-owned since 2010. Programs for kids, teens, adults, women and 40+.</p>
485        <div class="social-icons-big">
486          <span class="follow-label">Follow Us</span>
487          <a href="https://instagram.com/ramona.mma" target="_blank" rel="noopener" aria-label="Instagram" class="ig"><svg viewBox="0 0 24 24"><path d="M12 2.16c3.2 0 3.58.01 4.85.07 3.25.15 4.77 1.69 4.92 4.92.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.15 3.23-1.66 4.77-4.92 4.92-1.27.06-1.64.07-4.85.07s-3.58-.01-4.85-.07c-3.26-.15-4.77-1.7-4.92-4.92C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85C2.38 3.92 3.9 2.38 7.15 2.23 8.42 2.18 8.8 2.16 12 2.16zM12 0C8.74 0 8.33.01 7.05.07 2.7.27.27 2.69.07 7.05.01 8.33 0 8.74 0 12s.01 3.67.07 4.95c.2 4.36 2.62 6.78 6.98 6.98C8.33 23.99 8.74 24 12 24s3.67-.01 4.95-.07c4.35-.2 6.78-2.62 6.98-6.98.06-1.28.07-1.69.07-4.95s-.01-3.67-.07-4.95c-.2-4.35-2.62-6.78-6.98-6.98C15.67.01 15.26 0 12 0zm0 5.84c-3.4 0-6.16 2.76-6.16 6.16s2.76 6.16 6.16 6.16 6.16-2.76 6.16-6.16S15.4 5.84 12 5.84zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm6.4-11.85c-.79 0-1.44.65-1.44 1.44s.65 1.44 1.44 1.44 1.44-.65 1.44-1.44-.65-1.44-1.44-1.44z"/></svg></a>
488          <a href="https://www.facebook.com/people/Ramona-Brazilian-Jiu-JitsuMMA-Center/100034850330443/" target="_blank" rel="noopener" aria-label="Facebook" class="fb"><svg viewBox="0 0 24 24"><path d="M24 12.07C24 5.41 18.63 0 12 0S0 5.4 0 12.07C0 18.1 4.39 23.1 10.13 24v-8.44H7.08v-3.49h3.04V9.41c0-3.02 1.79-4.69 4.53-4.69 1.31 0 2.68.24 2.68.24v2.97h-1.5c-1.49 0-1.96.93-1.96 1.89v2.26h3.32l-.53 3.49h-2.79V24C19.61 23.1 24 18.1 24 12.07z"/></svg></a>
489          <a href="#" target="_blank" rel="noopener" aria-label="YouTube" class="yt"><svg viewBox="0 0 24 24"><path d="M23.5 6.2c-.3-1-1.1-1.8-2-2.1C19.7 3.5 12 3.5 12 3.5s-7.7 0-9.5.6c-1 .3-1.8 1.1-2 2.1C0 8 0 12 0 12s0 4 .5 5.8c.3 1 1.1 1.8 2 2.1C4.3 20.5 12 20.5 12 20.5s7.7 0 9.5-.6c1-.3 1.8-1.1 2-2.1.5-1.8.5-5.8.5-5.8s0-4-.5-5.8zM9.5 15.5v-7l6.5 3.5-6.5 3.5z"/></svg></a>
490        </div>
491      </div>
492      <div>
493        <h5>Training</h5>
494        <ul>
495          <li><a href="brazilian-jiu-jitsu.html">Brazilian Jiu-Jitsu</a></li>
496          <li><a href="submission-wrestling-and-grappling.html">No-Gi / Submission Grappling</a></li>
497          <li><a href="striking-muay-thai-kickboxing-boxing.html">Boxing &amp; Muay Thai</a></li>
498          <li><a href="mma.html">MMA</a></li>
499          <li><a href="wrestling.html">Wrestling</a></li>
500          <li><a href="self-defense.html">Self-Defense</a></li>
501        </ul>
502      </div>
503      <div>
504        <h5>The Gym</h5>
505        <ul>
506          <li><a href="index.html#memberships">Three Paths</a></li>
507          <li><a href="about.html">Our Story</a></li>
508          <li><a href="coaches.html">Coaches</a></li>
509          <li><a href="schedule.html">Schedule</a></li>
510          <li><a href="#" onclick="openModal();return false;">Reserve Trial</a></li>
511          <li><a href="academy-rules.html">Academy Rules</a></li>
512          <li><a href="https://rtownmartialarts.foundation" target="_blank" rel="noopener">R-Town Foundation</a></li>
513        </ul>
514      </div>
515            <div>
516        <h5>Areas We Serve</h5>
517        <ul>
518          <li><a href="areas-we-serve.html">All Areas</a></li>
519          <li><a href="index.html">Ramona, CA (Home Gym)</a></li>
520          <li><a href="martial-arts-poway-ca.html">Poway, CA</a></li>
521          <li><a href="martial-arts-lakeside-ca.html">Lakeside, CA</a></li>
522          <li><a href="martial-arts-julian-ca.html">Julian, CA</a></li>
523          <li><a href="martial-arts-santa-ysabel-ca.html">Santa Ysabel</a></li>
524          <li><a href="martial-arts-borrego-springs-ca.html">Borrego Springs</a></li>
525          <li><a href="martial-arts-wynola-ca.html">Wynola</a></li>
526          <li><a href="martial-arts-lake-henshaw-ca.html">Lake Henshaw</a></li>
527          <li><a href="martial-arts-shelter-valley-ca.html">Shelter Valley</a></li>
528        </ul>
529      </div>
530<div>
531        <h5>Get In Touch</h5>
532        <div class="footer-contact-item">
533          <strong>Visit Us</strong>
534          2102 Main Street, Suite 2<br>Ramona, CA 92065
535        </div>
536        <div class="footer-contact-item">
537          <strong>Call</strong>
538          <a href="tel:7607875855" style="color:rgba(255,255,255,0.85);">(760) 787-5855</a>
539        </div>
540        <div class="footer-contact-item">
541          <strong>Email</strong>
542          <a href="mailto:[email protected]" style="color:rgba(255,255,255,0.85);">[email protected]</a>
543        </div>
544        <div class="footer-contact-item">
545          <strong>Hours</strong>
546          Mon: 3:25–8:15 PM<br>
547          Tue: 3:45–8:15 PM<br>
548          Wed: 3:25–8:15 PM<br>
549          Thu: 3:45–8:15 PM<br>
550          Fri: 3:45–7:30 PM<br>
551          Sat: 8:45–11:45 AM<br>
552          Sun: Closed
553        </div>
554      </div>
555    </div>
556    <div class="footer-bottom">
557      <div>© 2026 Ramona Brazilian Jiu Jitsu and MMA Center, Inc.  ·  All rights reserved.</div>
558      <div><a href="#">Privacy</a><a href="#">Terms</a><a href="#">Sitemap</a></div>
559    </div>
560  </div>
561</footer>
562
563<div class="m-sticky">
564  <a href="tel:7607875855" class="btn btn-call" aria-label="Call gym">📞</a>
565  <button class="btn btn-primary" onclick="openModal()">Reserve My Spot</button>
566</div>
567
568<div class="modal" id="leadModal" onclick="if(event.target===this)closeModal()">
569  <div class="modal-card">
570    <button class="modal-close" onclick="closeModal()" aria-label="Close">×</button>
571
572    <div class="modal-top">
573      <span class="pill"><span class="dot"></span>Limited-Time Offer · Locked In When You Reserve</span>
574      <h3>Reserve Your Private Trial &mdash; Lock In Your Offer</h3>
575      <p>One private session with a black belt. One walk-through of the Center. Zero pressure. Reserve before the timer ends and your offer is held if you decide to join.</p>
576      <div class="countdown" id="countdown">
577        <div class="unit"><div class="num" id="cdDays">06</div><div class="lbl">Days</div></div>
578        <div class="unit"><div class="num" id="cdHours">14</div><div class="lbl">Hours</div></div>
579        <div class="unit"><div class="num" id="cdMinutes">22</div><div class="lbl">Minutes</div></div>
580        <div class="unit"><div class="num" id="cdSeconds">39</div><div class="lbl">Seconds</div></div>
581      </div>
582    </div>
583
584    <form class="modal-form" action="https://formspree.io/f/mpqnprng" method="POST">
585      <input type="text" name="_gotcha" tabindex="-1" autocomplete="off" style="display:none">
586      <div class="form-row">
587        <div class="field"><label>First Name</label><input type="text" name="first_name" required placeholder="First"></div>
588        <div class="field"><label>Last Name</label><input type="text" name="last_name" required placeholder="Last"></div>
589      </div>
590      <div class="form-row">
591        <div class="field"><label>Phone</label><input type="tel" name="phone" required placeholder="(555) 555-5555"></div>
592        <div class="field"><label>Email</label><input type="email" name="email" required placeholder="[email protected]"></div>
593      </div>
594      <div class="field"><label>Who's training?</label>
595        <select name="student_type" required>
596          <option value="">Select one...</option>
597          <option>My child (3.5–12)</option>
598          <option>My teen (13–16)</option>
599          <option>Myself (Adult)</option>
600          <option>Whole family</option>
601          <option>40+ Program</option>
602          <option>Women's Program</option>
603        </select>
604      </div>
605      <button type="submit" class="btn btn-primary btn-block btn-lg">Reserve My Trial</button>
606      <p class="form-fine">No spam. We'll text you to schedule your visit. Standard message rates apply.</p>
607    </form>
608
609    <div class="modal-reviews">
610      <div class="modal-reviews-head">
611        <div class="stars-line">
612          <span class="stars">★★★★★</span>
613          <span>Hundreds of <strong>perfect</strong> ratings.</span>
614        </div>
615        <div style="display:flex;gap:8px;align-items:center;font-size:0.78rem;color:var(--text-3);">
616          <a href="https://share.google/6l8d2iKQuOwfnLbMC" target="_blank" rel="noopener noreferrer" aria-label="See Google reviews"><span class="gtrust-google">Google</span></a>
617          <span>·</span>
618          <a href="https://www.yelp.com/biz/ramona-brazilian-jiu-jitsu-mma-ramona-2?utm_campaign=www_business_share_popup&utm_medium=copy_link&utm_source=(direct)" target="_blank" rel="noopener noreferrer" aria-label="See Yelp reviews"><span class="gtrust-yelp">Yelp</span></a>
619          <span>·</span>
620          <a href="https://www.facebook.com/people/Ramona-Brazilian-Jiu-JitsuMMA-Center/100034850330443/" target="_blank" rel="noopener noreferrer" aria-label="See Facebook reviews"><span class="gtrust-fb">Facebook</span></a>
621        </div>
622      </div>
623      <div class="modal-review-list">
624        <div class="modal-review">
625          <div class="top-row"><div class="stars">★★★★★</div><div class="src">Google</div></div>
626          <div class="quote">"My family has attended here for over a year now and I could not be more impressed. Excellent instruction. They actually LEARN here. The coaches are good with kids. I mean GOOD with kids. They're patient and firm and they have fun."</div>
627          <div class="name">— Jessica McInnis · Google</div>
628        </div>
629        <div class="modal-review">
630          <div class="top-row"><div class="stars">★★★★★</div><div class="src">Yelp</div></div>
631          <div class="quote">"Kevin and his team are absolutely amazing. The gym is well equipped and the staff is knowledgeable. The community feels like a fam
631ily, everyone is encouraging and supportive. I cannot recommend this gym enough. 10/10!"</div>
632          <div class="name">— Michael D. · Yelp</div>
633        </div>
634        <div class="modal-review">
635          <div class="top-row"><div class="stars">★★★★★</div><div class="src">Google</div></div>
636          <div class="quote">"Ramona MMA has been welcoming and supportive from DAY ONE. The coaches here are fantastic and handle my kids incredibly. My kids are learning so many great skills. I would recommend it to everyone!"</div>
637          <div class="name">— Chelsea Betancourt · Google</div>
638        </div>
639        <div class="modal-review">
640          <div class="top-row"><div class="stars">★★★★★</div><div class="src">Facebook</div></div>
641          <div class="quote">"Best martial arts school in Ramona area. Coaches Kevin and Cameron are professional and invest in each student meeting them where they're at with excellent instruction. Give it a shot."</div>
642          <div class="name">— Loren Fernandez · Facebook</div>
643        </div>
644      </div>
645    </div>
646
647  </div>
648</div>
649
650<script src="assets/js/main.js"></script>
650
651
652<div style="text-align:center;padding:14px 24px;font-size:0.74rem;color:rgba(255,255,255,0.4);background:#050507;border-top:1px solid rgba(255,255,255,0.04);">Serving <a href="areas-we-serve.html" style="color:rgba(255,255,255,0.55);">Ramona, San Diego, Poway, Lakeside, Julian, Santa Ysabel, Borrego Springs, Wynola, Lake Henshaw, and Shelter Valley</a>.</div>
653<div class="last-updated" style="text-align:center;padding:14px 24px;font-size:0.78rem;color:rgba(255,255,255,0.45);background:#050507;border-top:1px solid rgba(255,255,255,0.06);"><time datetime="2026-05-02">Last Updated: May 02, 2026</time></div>
654
655<script>
656/* Web Special countdown — persists per-visitor via localStorage so repeat visits don't reset the timer.
657   First visit: sets target to end of current month at 23:59:59.
658   Repeat visits within the same window: reuses the stored target.
659   When the stored target expires, a new window begins (next month-end).
660   Safe fallback if localStorage is unavailable: uses month-end logic only. */
661(function(){
662  var KEY = 'rmma_webspecial_target_v1';
663  function computeFreshTarget() {
664    var now = new Date();
665    return new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59).getTime();
666  }
667  var targetTs;
668  try {
669    var stored = window.localStorage && window.localStorage.getItem(KEY);
670    var nowTs = Date.now();
671    if (stored && Number(stored) > nowTs) {
672      targetTs = Number(stored);
673    } else {
674      targetTs = computeFreshTarget();
675      if (window.localStorage) window.localStorage.setItem(KEY, String(targetTs));
676    }
677  } catch(e) {
678    targetTs = computeFreshTarget();
679  }
680  function setEl(id, v){ var el = document.getElementById(id); if (el) el.textContent = String(v).padStart(2,'0'); }
681  function tick() {
682    var diff = targetTs - Date.now();
683    if (diff <= 0) {
684      setEl('cdDays', 0); setEl('cdHours', 0); setEl('cdMinutes', 0); setEl('cdSeconds', 0);
685      return;
686    }
687    var d = Math.floor(diff / 86400000);
688    var h = Math.floor((diff % 86400000) / 3600000);
689    var m = Math.floor((diff % 3600000) / 60000);
690    var s = Math.floor((diff % 60000) / 1000);
691    setEl('cdDays', d); setEl('cdHours', h); setEl('cdMinutes', m); setEl('cdSeconds', s);
692  }
693  tick();
694  setInterval(tick, 1000);
695})();
696</script>
696
697
698<!-- RMMA: cross-page dropdown state (Task 3, isolated) -->
699<style>
700/* Temporary highlight after dropdown-driven navigation. Desktop only. */
701@media (hover: hover) and (pointer: fine) and (min-width: 769px) {
702  .nav-item.is-open-from-navigation > .nav-dropdown,
703  .nav-item.is-open-from-navigation > div.nav-dropdown {
704    opacity: 1;
705    pointer-events: auto;
706    transform: translateY(0);
707    visibility: visible;
708    transition: opacity 0.18s var(--ease), transform 0.18s var(--ease), visibility 0s;
709  }
710  .nav-item.is-open-from-navigation > .nav-trigger .chev {
711    transform: rotate(225deg);
712    margin-bottom: -3px;
713  }
714}
715</style>
716<script>
717/* RMMA Task 3 — desktop dropdown state persistence (isolated, non-breaking) */
718(function(){
719  try {
720    if (!('matchMedia' in window)) return;
721    var mq = window.matchMedia('(hover: hover) and (pointer: fine) and (min-width: 769px)');
722    if (!mq.matches) return;
723    var KEY = 'rmma_nav_open_dropdown_v1';
724    /* On dropdown child link click: identify parent .nav-item and persist its label */
725    document.addEventListener('click', function(e){
726      var a = e.target && e.target.closest ? e.target.closest('.nav-dropdown a') : null;
727      if (!a) return;
728      var href = a.getAttribute('href') || '';
729      /* Same-page anchor links — do not persist state */
730      if (href.indexOf('#') === 0) return;
731      var item = a.closest('.nav-item');
732      if (!item) return;
733      var trigger = item.querySelector('.nav-trigger');
734      if (!trigger) return;
735      var id = (trigger.textContent || '').trim().toLowerCase();
736      if (!id) return;
737      try { sessionStorage.setItem(KEY, id); } catch(_){}
738    }, true);
739    /* On page load: read stored label, find matching dropdown, open briefly, then clear */
740    function init(){
741      var stored;
742      try { stored = sessionStorage.getItem(KEY); } catch(_){ return; }
743      if (!stored) return;
744      try { sessionStorage.removeItem(KEY); } catch(_){}
745      var items = document.querySelectorAll('.nav-item');
746      var matched = null;
747      for (var i = 0; i < items.length; i++) {
748        var t = items[i].querySelector('.nav-trigger');
749        if (!t) continue;
750        var id = (t.textContent || '').trim().toLowerCase();
751        if (id === stored) { matched = items[i]; break; }
752      }
753      if (!matched) return;
754      matched.classList.add('is-open-from-navigation');
755      var cleared = false;
756      function clear(){
757        if (cleared) return;
758        cleared = true;
759        matched.classList.remove('is-open-from-navigation');
760      }
761      var timer = setTimeout(clear, 2800);
762      matched.addEventListener('mouseleave', function(){ clearTimeout(timer); clear(); }, { once: true });
763      document.addEventListener('keydown', function(){ clearTimeout(timer); clear(); }, { once: true });
764      document.addEventListener('focusin', function(e){
765        if (matched && !matched.contains(e.target)) { clearTimeout(timer); clear(); }
766      });
767    }
768    if (document.readyState === 'loading') {
769      document.addEventListener('DOMContentLoaded', init);
770    } else {
771      init();
772    }
773  } catch(_){}
774})();
775</script>
775
776
777
778<!-- RMMA: mobile horizontal overflow safety net (Task 4, isolated) -->
779<style>
780/* Root-cause guards: lock html/body to viewport width and disable horizontal overscroll */
781html { overflow-x: hidden; max-width: 100%; }
782body { overflow-x: hidden; max-width: 100%; position: relative; overscroll-behavior-x: none; }
783@media (max-width: 768px) {
784  html, body { overscroll-behavior-x: none; }
785  /* Media defensive caps */
786  img, picture, video, iframe, svg, canvas { max-width: 100%; }
787  iframe { max-width: 100%; }
788  /* Containers should respect viewport on small screens */
789  .container { max-width: 100%; }
790  /* Long URLs / words shouldn't push width */
791  body { overflow-wrap: break-word; word-wrap: break-word; }
792  /* Modals must lock to viewport */
793  .modal { max-width: 100vw; overflow-x: hidden; }
794  .modal-card { max-width: calc(100vw - 24px); }
795  /* Reveal transforms must not paint outside viewport */
796  .reveal { will-change: opacity, transform; }
797}
798</style>
799
800
801<!-- RMMA: review expand/collapse (Task 6, isolated) -->
802<style>
803/* Compact-by-default review quote with smooth max-height transition. ~3 lines preview. */
804.review-card .quote.is-clampable,
805.modal-review .quote.is-clampable {
806  max-height: calc(1.6em * 3);
807  overflow: hidden;
808  position: relative;
809  min-height: 0;
810  transition: max-height 0.4s var(--ease, ease);
811}
812/* White fade at the bottom while collapsed */
813.review-card .quote.is-clampable::after,
814.modal-review .quote.is-clampable::after {
815  content: '';
816  position: absolute;
817  left: 0; right: 0; bottom: 0;
818  height: 1.6em;
819  background: linear-gradient(to bottom, rgba(255,255,255,0), #ffffff 90%);
820  pointer-events: none;
821  transition: opacity 0.25s ease;
822}
823.review-card.review-expanded .quote.is-clampable,
824.modal-review.review-expanded .quote.is-clampable {
825  max-height: 120em;
826}
827.review-card.review-expanded .quote.is-clampable::after,
828.modal-review.review-expanded .quote.is-clampable::after {
829  opacity: 0;
830}
831/* Read-more toggle button */
832.review-card .read-more-toggle,
833.modal-review .read-more-toggle {
834  display: inline-block;
835  margin: 8px 0 14px;
836  padding: 6px 0;
837  font-size: 0.82rem;
838  font-weight: 700;
839  color: var(--action);
840  background: transparent;
841  border: 0;
842  cursor: pointer;
843  font-family: inherit;
844  letter-spacing: 0.02em;
845  text-align: left;
846}
847.review-card .read-more-toggle:hover,
848.modal-review .read-more-toggle:hover {
849  color: var(--action-hover);
850  text-decoration: underline;
851}
852.review-card .read-more-toggle:focus-visible,
853.modal-review .read-more-toggle:focus-visible {
854  outline: 2px solid var(--action);
855  outline-offset: 2px;
856  border-radius: 2px;
857}
858.modal-review .read-more-toggle {
859  font-size: 0.74rem;
860  margin: 4px 0 0;
861}
862/* Larger touch target on mobile */
863@media (max-width: 767px) {
864  .review-card .read-more-toggle,
865  .modal-review .read-more-toggle { padding: 10px 0; min-height: 32px; }
866}
867</style>
868<script>
869/* RMMA Task 6 — review card expand/collapse (isolated, accessible) */
870(function(){
871  var LINES = 3;
872  function setup(quoteEl, parentSel){
873    if (quoteEl.dataset.rmmaClamp) return;
874    quoteEl.dataset.rmmaClamp = '1';
875    var parent = quoteEl.closest(parentSel);
876    if (!parent) return;
877    /* Apply clamp class */
878    quoteEl.classList.add('is-clampable');
879    /* Measure overflow on next frame */
880    requestAnimationFrame(function(){
881      /* If element is hidden (modal closed), defer — re-setup on modal open will retry */
882      if (!quoteEl.offsetParent && !quoteEl.getClientRects().length) {
883        quoteEl.classList.remove('is-clampable');
884        delete quoteEl.dataset.rmmaClamp;
885        return;
886      }
887      var clientH = quoteEl.clientHeight;
888      var scrollH = quoteEl.scrollHeight;
889      /* No real overflow — remove clamp + don't add button */
890      if (scrollH <= clientH + 2) {
891        quoteEl.classList.remove('is-clampable');
892        return;
893      }
894      /* Build button */
895      var btn = document.createElement('button');
896      btn.type = 'button';
897      btn.className = 'read-more-toggle';
898      btn.setAttribute('aria-expanded', 'false');
899      btn.textContent = 'Read more';
900      /* Insert immediately after the quote */
901      quoteEl.parentNode.insertBefore(btn, quoteEl.nextSibling);
902      btn.addEventListener('click', function(){
903        var willExpand = !parent.classList.contains('review-expanded');
904        parent.classList.toggle('review-expanded', willExpand);
905        btn.setAttribute('aria-expanded', willExpand ? 'true' : 'false');
906        btn.textContent = willExpand ? 'Show less' : 'Read more';
907      });
908    });
909  }
910  function initAll(){
911    var reviewQuotes = document.querySelectorAll('.review-card .quote');
912    reviewQuotes.forEach(function(q){ setup(q, '.review-card'); });
913    var modalQuotes = document.querySelectorAll('.modal-review .quote');
914    modalQuotes.forEach(function(q){ setup(q, '.modal-review'); });
915  }
916  if (document.readyState === 'loading') {
917    document.addEventListener('DOMContentLoaded', initAll);
918  } else {
919    initAll();
920  }
921  /* Hook openModal so modal review quotes get measured once the modal is visible */
922  if (typeof window.openModal === 'function') {
923    var orig = window.openModal;
924    window.openModal = function(){
925      var r = orig.apply(this, arguments);
926      requestAnimationFrame(function(){
927        setTimeout(function(){
928          document.querySelectorAll('.modal-review .quote').forEach(function(q){
929            setup(q, '.modal-review');
930          });
931        }, 60);
932      });
933      return r;
934    };
935  }
936})();
937</script>
937
938
939<script>
940window.onbeforeunload = () => {
941  for(const form of document.getElementsByTagName('form')) {
942    form.reset();
943  }
944}
945</script>
945
946
947<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"04acbfd0f9f64e1d8644f511fecd221e","r":1,"spa":2}' crossorigin="anonymous"></script>
947
948</body>
949</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.