body{
margin:0;
font-family:Arial,sans-serif;
background:white;
color:#111;

overflow-x:hidden;
width:100%;
max-width:100vw;
}

@keyframes appFade{

from{
opacity:0;
transform:translateY(10px);
}

to{
opacity:1;
transform:translateY(0);
}

}

/* MOBILE MAP SCROLL FIX */

.leaflet-container{
touch-action:pan-y;
}

/* HERO COPY */

.hero-copy{

text-align:center;

padding:40px 25px 40px;

max-width:800px;

margin:-70px auto 0;

position:relative;
z-index:2;

}

.hero-label{

font-size:12px;

font-weight:700;

letter-spacing:4px;

color:#17c7d1;

margin-bottom:18px;

}

.hero-copy h1{

font-size:clamp(42px,8vw,68px);

line-height:1.02;

font-weight:800;

letter-spacing:-2px;

margin:0 0 20px;

color:#111;

}

.hero-copy p{

font-size:20px;

line-height:1.7;

color:#5c5c5c;

max-width:650px;

margin:auto;

}

/* TURQUOISE ACCENT */

.hero-copy::after{

content:"";

display:block;

width:90px;

height:4px;

background:#17c7d1;

margin:35px auto 0;

border-radius:999px;

}

/* HEADER */

.header{
display:flex;
justify-content:space-between;
align-items:center;
padding:15px 20px;
background:white;
position:sticky;
top:0;
z-index:1000;
box-shadow:0 2px 10px rgba(0,0,0,0.06);
}

.logo{
height:90px;
object-fit:contain;
}

.menu-btn{
background:black;
color:white;
padding:10px 15px;
border-radius:8px;
cursor:pointer;
font-weight:bold;
transition:0.2s;
}

.menu-btn:hover{
opacity:0.9;
}

/* MENU */

#menu{

position:fixed;

top:90px;

right:0;

width:260px;

max-width:85vw;

background:white;

padding:20px;

border-radius:20px 0 0 20px;

box-shadow:0 0 20px rgba(0,0,0,0.15);

z-index:9999;

display:flex;

flex-direction:column;

gap:15px;

transform:translateX(110%);

transition:transform 0.3s ease;

overflow:hidden;

}

#menu.open{

transform:translateX(0);

}

#menu a{

display:flex;

align-items:center;
justify-content:center;

height:56px;

border:none;

border-radius:14px;

background:black;

color:white;

text-decoration:none;

font-size:16px;

font-weight:700;

cursor:pointer;

box-sizing:border-box;

}

.app-menu{

position:fixed;

top:90px;

right:0;

width:260px;

max-width:85vw;

background:white;

padding:20px;

border-radius:20px 0 0 20px;

box-shadow:0 0 20px rgba(0,0,0,0.15);

z-index:9999;

display:flex;

flex-direction:column;

gap:15px;

transform:translateX(110%);

transition:transform 0.3s ease;

overflow:hidden;

}

html{

overflow-x:hidden;
max-width:100vw;

}

.app-menu.open{

transform:translateX(0);

}

.app-menu button{

border:none;
padding:18px;
border-radius:14px;
font-size:16px;
font-weight:700;
cursor:pointer;

}

#installBtn{

display:none;
background:#0f9fa8;
color:white;

}

#installBtn:hover{

background:#12b3bc;

}

.app-menu button:not(#installBtn){

background:black;
color:white;

}

/* HERO */

.hero{
width:100%;
height:540px;
background-color:#111;
background-image:url('hero.webp');
background-size:cover;
background-position:center;
border-radius:0 0 30px 30px;
position:relative;
overflow:hidden;
}

.hero-copy{
position:relative;
z-index:2;
max-width:900px;
margin:40px auto 0 auto;
background:white;
padding:50px 35px;
border-radius:30px;
text-align:center;
box-shadow:0 10px 35px rgba(0,0,0,0.08);
}

.hero-copy h1{
font-size:64px;
line-height:0.95;
font-weight:900;
margin-bottom:25px;
letter-spacing:-2px;
}

.hero-copy p{
font-size:24px;
line-height:1.7;
color:#666;
max-width:800px;
margin:auto;
}

@media(max-width:768px){

.hero{
height:220px;
border-radius:0 0 24px 24px;
}

.hero-copy{
margin:-20px 20px 0 20px;
padding:30px 22px;
border-radius:24px;
}

.hero-copy h1{
font-size:52px;
line-height:0.95;
}

.hero-copy p{
font-size:18px;
line-height:1.8;
}

}

/* SECTIONS */

.section{
padding:35px 20px;
max-width:1600px;
margin:auto;
}

.section h2{
font-size:32px;
margin-bottom:25px;
}

/* SEARCH */

.search-wrap{
margin-bottom:25px;
}

#searchInput{
width:100%;
padding:16px;
border:none;
border-radius:14px;
font-size:16px;
box-sizing:border-box;
box-shadow:0 4px 14px rgba(0,0,0,0.06);
}

/* FILTERS */

.filters{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-top:15px;
}

.filter-btn{
background:#222;
color:white;
border:none;
padding:10px 16px;
border-radius:999px;
cursor:pointer;
font-size:14px;
transition:0.2s;
}

.filter-btn:hover{
opacity:0.9;
}

.filter-btn.active{
background:#0f9fa8;
color:white;
}

/* SEO TEXT */

.seo-text{
background:white;
border-radius:20px;
padding:40px;
box-shadow:0 8px 25px rgba(0,0,0,0.06);
margin-top:30px;
}

.seo-text p{
font-size:18px;
line-height:1.8;
color:#444;
max-width:900px;
}

/* GRID */

.grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
gap:30px;
align-items:start;
}

/* CARD */

.card{
background:white;
padding:18px;
border-radius:18px;
display:flex;
flex-direction:column;
justify-content:flex-start;
box-shadow:0 8px 25px rgba(0,0,0,0.06);
transition:0.25s ease;
height:100%;
}

.card:hover{
transform:translateY(-4px);
box-shadow:0 14px 35px rgba(0,0,0,0.12);
}

.card-link{
text-decoration:none;
color:inherit;
}

.card h3{
margin-bottom:14px;
font-size:22px;
line-height:1.4;
color:#111;
min-height:95px;
display:flex;
align-items:flex-start;
}

/* VIDEO */

.video-wrapper{
position:relative;
padding-bottom:56.25%;
height:0;
overflow:hidden;
border-radius:14px;
margin-bottom:15px;
background:#000;
}

.video-wrapper iframe{
position:absolute;
width:100%;
height:100%;
top:0;
left:0;
border:none;
}

/* DESCRIPTION */

.desc{
font-size:16px;
line-height:1.7;
color:#444;
margin-top:8px;
}

/* READ MORE */

.read-more{
color:#17c7d1;
cursor:pointer;
font-weight:bold;
display:inline-block;
margin-top:10px;
font-size:16px;
transition:0.2s;
}

.read-more:hover{
opacity:0.7;
}

/* CATEGORY */

.category-header{
cursor:pointer;
background:white;
padding:18px 22px;
border-radius:16px;
margin-bottom:18px;
font-weight:bold;
display:flex;
justify-content:space-between;
align-items:center;
font-size:20px;
box-shadow:0 6px 20px rgba(0,0,0,0.05);
transition:0.2s;
}

.category-header:hover{
transform:translateY(-2px);
}

.category-left{
display:flex;
align-items:center;
gap:12px;
}

.category-left i{
font-size:20px;
}

.toggle-icon{
font-size:24px;
font-weight:bold;
}

/* CATEGORY CONTENT */

.category-content{
max-height:0;
overflow:hidden;
transition:max-height 0.4s ease;
}

.category-content.open{
max-height:99999px;
padding-bottom:10px;
}

/* EMPTY */

.no-results{
background:white;
padding:25px;
border-radius:18px;
text-align:center;
font-size:18px;
box-shadow:0 6px 20px rgba(0,0,0,0.05);
}

/* AWARDS */

.awards-section{
display:grid;
grid-template-columns:1fr 1fr;
gap:28px;
align-items:center;
background:linear-gradient(
145deg,
#ffffff,
#f5f7f8
);
padding:28px;
border-radius:30px;
box-shadow:
0 10px 35px rgba(0,0,0,0.05),
0 2px 10px rgba(0,0,0,0.04);
overflow:hidden;
margin-top:-30px;
position:relative;
z-index:5;

backdrop-filter:blur(10px);
border:1px solid rgba(255,255,255,0.6);
}

.awards-left h2{
font-size:52px;
line-height:1.05;
margin-bottom:18px;
font-weight:900;
letter-spacing:-1px;
}

.awards-left p{
font-size:18px;
line-height:1.9;
color:#555;
max-width:95%;
}

.award-images{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:15px;
}

.award-images img{
width:100%;
max-width:500px;
height:auto;
display:block;
border-radius:24px;
box-shadow:
0 15px 40px rgba(0,0,0,0.16);
}

.award-badges{
display:flex;
gap:14px;
margin-top:32px;
flex-wrap:wrap;
align-items:center;
}

.award-badges span{
display:inline-flex;
align-items:center;
justify-content:center;
padding:14px 22px;
background:white;
border-radius:999px;
font-size:14px;
font-weight:800;
line-height:1;
white-space:nowrap;
box-shadow:0 6px 16px rgba(0,0,0,0.06);
}

.featured-award{

width:100%;

height:auto;

display:block;

border-radius:24px;

object-fit:cover;

box-shadow:
0 15px 40px rgba(0,0,0,0.16);

transition:0.3s ease;

}

.featured-award:hover{
transform:scale(1.02);
}

.award-small-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:14px;
margin-top:14px;
}

.award-small-grid img{
width:100%;
height:180px;
object-fit:cover;
border-radius:18px;
transition:0.25s ease;
box-shadow:0 8px 20px rgba(0,0,0,0.08);
background:white;
}

.award-small-grid img:hover{
transform:translateY(-4px);
}

@media(max-width:900px){

.awards-section{
grid-template-columns:1fr;
padding:22px;
margin-top:-20px;
}

.awards-left h2{
font-size:34px;
line-height:1;
margin-bottom:20px;
}

.awards-left p{
font-size:15px;
}

.featured-award{
border-radius:20px;
}

.award-small-grid img{
height:160px;
}

.award-images{
flex-direction:column;
align-items:center;
}

.award-images img{
width:70%;
max-width:240px;
margin:auto;
}

}

/* FOOTER */

footer{
text-align:center;
padding:50px 20px;
background:white;
margin-top:60px;
border-top-left-radius:24px;
border-top-right-radius:24px;
}

footer p{
font-size:22px;
font-weight:bold;
margin-bottom:20px;
}

.footer-icons{
display:flex;
justify-content:center;
gap:30px;
margin-top:15px;
font-size:30px;
}

.footer-icons a{
color:black;
text-decoration:none;
transition:0.2s;
}

.footer-icons a:hover{
transform:scale(1.15);
}

/* POPUP */

.popup{
display:none;
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.7);
justify-content:center;
align-items:center;
z-index:9999;
backdrop-filter:blur(4px);
}

.popup-content{
background:white;
padding:25px;
border-radius:18px;
width:90%;
max-width:420px;
box-shadow:0 15px 50px rgba(0,0,0,0.25);
}

.popup-content h3{
margin-top:0;
font-size:28px;
}

.popup-content input{
width:100%;
padding:14px;
margin:10px 0;
box-sizing:border-box;
border:1px solid #ddd;
border-radius:10px;
font-size:15px;
}

.popup-content button{
width:100%;
padding:14px;
background:black;
color:white;
border:none;
border-radius:10px;
cursor:pointer;
margin-top:10px;
font-size:16px;
font-weight:bold;
transition:0.2s;
}

/* RESPONSIVE */

@media (max-width:600px){

.logo{
height:75px;
}

.hero{
height:220px;
border-radius:0;
}

.card h3{
font-size:18px;
min-height:auto;
display:block;
}

.desc{
font-size:14px;
line-height:1.5;
}

}

/* CONTACT PAGE */

.contact-container{
text-align:center;
padding:40px 20px;
max-width:1000px;
margin:auto;
}

.contact-actions{
display:flex;
gap:15px;
margin-top:20px;
flex-wrap:wrap;
justify-content:center;
}

.contact-btn{
flex:1;
min-width:220px;
background:#17c7d1;
padding:18px;
border-radius:14px;
text-decoration:none;
color:white;
font-weight:bold;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
transition:0.3s ease;
box-sizing:border-box;
}

.contact-btn:hover{
transform:translateY(-3px);
background:#12b3bc;
}

.contact-section{
margin-top:60px;
}

.contact-section p{
font-size:18px;
line-height:1.7;
color:#444;
max-width:700px;
margin:auto;
}

@media(max-width:768px){

.contact-actions{
flex-direction:column;
}

.contact-btn{
width:100%;
}

}

/* =========================
   EVENTS
========================= */

.event-card{
background:white;
border-radius:18px;
padding:20px;
box-shadow:0 4px 14px rgba(0,0,0,0.08);
display:flex;
flex-direction:column;
gap:12px;
}

.event-date{
background:#0f172a;
color:white;
display:inline-block;
padding:8px 14px;
border-radius:12px;
font-size:14px;
font-weight:bold;
width:max-content;
}

.event-title{
font-size:24px;
font-weight:700;
color:#111827;
margin:0;
}

.event-meta{
color:#475569;
font-size:15px;
line-height:1.6;
}

.event-description{
color:#444;
line-height:1.7;
font-size:16px;
}

.event-btn{
margin-top:10px;
background:#25D366;
color:white;
text-decoration:none;
padding:14px;
border-radius:12px;
text-align:center;
font-weight:bold;
transition:0.3s ease;
}

.event-btn:hover{
transform:translateY(-2px);
opacity:0.9;
}

/* CONTACT FORM */

.contact-form{
display:flex;
flex-direction:column;
gap:15px;
margin-top:20px;
max-width:700px;
margin-left:auto;
margin-right:auto;
width:100%;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
width:100%;
padding:15px;
font-size:16px;
border:1px solid #ddd;
border-radius:10px;
box-sizing:border-box;
font-family:inherit;
display:block;
background:white;
}

.contact-form textarea{
min-height:180px;
resize:vertical;
}

.contact-form button{
width:100%;
border:none;
cursor:pointer;
}

@media(max-width:768px){

.contact-form{
padding:0 10px;
}

}

/* =========================
   BACK TO TOP BUTTON
========================= */

#scrollTopBtn{
  position:fixed;
  bottom:20px;
  right:20px;

  width:60px;
  height:60px;

  border-radius:50%;

  background:rgba(15,159,168,.9);
  backdrop-filter:blur(6px);

  color:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  cursor:pointer;

  z-index:9999;

  opacity:0;
  visibility:hidden;

  transition:all .3s ease;

  box-shadow:
  0 6px 18px rgba(0,0,0,.25);
}

#scrollTopBtn.show{
  opacity:1;
  visibility:visible;
}

#scrollTopBtn span{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-55%);
  font-size:36px;
  font-weight:900;
  line-height:1;
}

.progress-ring{
  fill:none;
  stroke:#ffffff;
  stroke-width:4;
  stroke-linecap:round;

  transform:rotate(-90deg);
  transform-origin:center;

  stroke-dasharray:163.36;
  stroke-dashoffset:163.36;
}

.maps-help{
text-align:center;
margin-top:-8px;
margin-bottom:15px;
}

.maps-btn{
background:#25c3cf;
color:#fff;
border:none;
padding:12px 20px;
border-radius:10px;
font-size:16px;
font-weight:600;
cursor:pointer;
display:inline-block;
margin-bottom:8px;
}

.maps-btn:active{
transform:scale(.98);
}

.mobile-badge{
display:inline-block;
background:#ff5a00;
color:white;
padding:6px 12px;
border-radius:50px;
font-size:12px;
font-weight:bold;
margin-bottom:10px;
}

/* WHATSAPP COMMUNITY */

.community-hero{
position:relative;
height:70vh;
background:
linear-gradient(
rgba(0,0,0,.55),
rgba(0,0,0,.55)
),
url('hero.webp') center/cover;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
padding:20px;
}

.community-overlay{
max-width:700px;
color:white;
}

.community-overlay h1{
font-size:56px;
margin-bottom:20px;
line-height:1.1;
}

.community-overlay p{
font-size:20px;
line-height:1.7;
margin-bottom:35px;
}

.join-btn{
display:inline-flex;
align-items:center;
gap:12px;
background:#25D366;
color:white;
padding:18px 28px;
border-radius:16px;
font-size:20px;
font-weight:700;
text-decoration:none;
}

.community-section{
padding:70px 20px;
max-width:1200px;
margin:auto;
}

.community-section h2{
text-align:center;
font-size:40px;
margin-bottom:40px;
}

.community-grid{
display:grid;
grid-template-columns:
repeat(auto-fit,minmax(260px,1fr));
gap:25px;
}

.community-card{
background:white;
padding:35px;
border-radius:24px;
text-align:center;
box-shadow:0 4px 15px rgba(0,0,0,.08);
}

.community-card i{
font-size:42px;
color:#25D366;
margin-bottom:20px;
}

.community-card h3{
font-size:24px;
margin-bottom:15px;
}

.community-card p{
font-size:16px;
line-height:1.7;
color:#555;
}

@media(max-width:768px){

.community-overlay h1{
font-size:40px;
}

.community-overlay p{
font-size:18px;
}

.join-btn{
font-size:18px;
width:100%;
justify-content:center;
}

}

/* BUSINESS HERO */

.business-hero{
background:white;
padding:40px 20px;
text-align:center;
max-width:900px;
margin:0 auto 40px;
}

.business-hero h1{
font-size:clamp(36px,6vw,60px);
line-height:1.05;
font-weight:900;
margin-bottom:20px;
letter-spacing:-1px;
color:#111;
}

.business-hero p{
font-size:20px;
line-height:1.8;
color:#666;
max-width:700px;
margin:0 auto 30px;
}

.business-cta{

display:flex;
align-items:center;
justify-content:center;

width:100%;
max-width:320px;

margin:0 auto;

background:#17c7d1;
color:white;

padding:18px 32px;

border-radius:14px;

text-decoration:none;

font-size:18px;
font-weight:700;

text-align:center;

box-sizing:border-box;

transition:.3s ease;

}

.business-cta:hover{
background:#12b3bc;
transform:translateY(-2px);
}

@media(max-width:768px){

.business-hero{
padding:20px 10px 30px;
}

.business-hero h1{
font-size:42px;
}

.business-hero p{
font-size:18px;
}

.business-cta{
width:100%;
max-width:320px;
}

}

/* WHY LIST */

.benefit-card{

text-align:center;

padding:30px;

}

.benefit-card h3{

font-size:24px;

margin-bottom:15px;

min-height:auto;

display:block;

}

.benefit-card p{

font-size:16px;

line-height:1.8;

color:#555;

margin:0;

}

@media(max-width:768px){

.benefit-card{

padding:25px;

}

.benefit-card h3{

font-size:20px;

}

}

/* OUR REACH */

.reach-grid{
margin-top:20px;
}

.reach-card{
text-align:center;
padding:35px 25px;
}

.reach-number{
font-size:42px;
font-weight:900;
line-height:1;
color:#17c7d1;
margin-bottom:12px;
}

.reach-label{
font-size:18px;
font-weight:700;
color:#111;
}

@media(max-width:768px){

.reach-number{
font-size:34px;
}

.reach-label{
font-size:16px;
}

}

/* FEATURED BUSINESSES */

.section-intro{
text-align:center;
font-size:18px;
line-height:1.8;
color:#666;
max-width:700px;
margin:0 auto 30px;
}

.listing-link{
display:inline-block;
margin-top:15px;
font-weight:700;
color:#17c7d1;
}

/* HOW IT WORKS */

.section h2{
text-align:center;
margin-left:auto;
margin-right:auto;
}

.process-card{
text-align:center;
padding:30px;
}

.step-number{
font-size:42px;
margin-bottom:15px;
}

.process-card h3{
font-size:22px;
margin-bottom:15px;
min-height:auto;
display:block;
}

.process-card p{
color:#555;
line-height:1.8;
margin:0;
}

@media(max-width:768px){

.step-number{
font-size:34px;
}

.process-card h3{
font-size:20px;
}

}

/* FINAL CTA */

.final-cta{

background:linear-gradient(
135deg,
#17c7d1,
#0f9fa8
);

padding:60px 30px;

border-radius:30px;

text-align:center;

color:white;

box-shadow:
0 10px 35px rgba(0,0,0,0.08);

}

.final-cta h2{

font-size:42px;

margin-bottom:20px;

color:white;

}

.final-cta p{

font-size:18px;

line-height:1.8;

max-width:800px;

margin:0 auto 20px;

color:white;

}

.final-cta .business-cta{

background:white;
color:#0f9fa8;

margin:20px auto 0;

}

.final-cta .business-cta:hover{

background:#f4f4f4;

}

@media(max-width:768px){

.final-cta{

padding:40px 20px;

border-radius:24px;

}

.final-cta h2{

font-size:32px;

}

.final-cta p{

font-size:16px;

}

}

/* FLOAT TO FORM BUTTON */

#formFloatBtn{

position:fixed;

bottom:20px;
right:16px;

width:auto;
min-width:60px;
height:48px;

padding:0 14px;

border-radius:999px;

background:#17c7d1;
color:white;

display:flex;
align-items:center;
justify-content:center;

text-decoration:none;

font-size:15px;
font-weight:600;

opacity:.92;

z-index:9998;

box-shadow:
0 4px 12px rgba(0,0,0,.18);

transition:.3s ease;

}

#formFloatBtn:hover{

transform:scale(1.08);

}

html{
scroll-behavior:smooth;
}

.center-heading{
text-align:center;
width:100%;
margin:0 auto 25px;
}