<!DOCTYPE html>
<html lang="hr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sportsko društvo Kočerin — Ulaganje u sportsku infrastrukturu</title>
<meta name="description" content="Sportsko društvo Kočerin ulaže u razvoj i izgradnju sportske infrastrukture, igrališta, dvorana i prostora od značaja za lokalnu zajednicu.">
<!-- Google Fonts: Space Grotesk for display, Inter for body text -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
/* ============================================
DESIGN TOKENS
A sport-field motif runs through the site:
center-circle + halfway-line marks are used
as section dividers, echoing pitch markings.
============================================ */
:root{
--bg-0: #070f1e; /* deepest background */
--bg-1: #0c1830; /* panel / card background */
--bg-2: #122346; /* raised panel background */
--line: rgba(139, 164, 204, 0.16);
--blue-500: #2f80ed; /* primary accent */
--blue-400: #5b9bf5;
--blue-300: #8fc1ff;
--blue-glow: rgba(47, 128, 237, 0.35);
--white: #f4f8fd;
--muted: #92a4c2;
--muted-dim: #64789c;
--radius-lg: 20px;
--radius-md: 14px;
--radius-sm: 8px;
--shadow-soft: 0 20px 60px -20px rgba(0, 0, 0, 0.6);
--ease: cubic-bezier(0.22, 1, 0.36, 1);
}
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
margin: 0;
background: var(--bg-0);
color: var(--white);
font-family: 'Inter', system-ui, sans-serif;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4{
font-family: 'Space Grotesk', 'Inter', sans-serif;
font-weight: 700;
line-height: 1.15;
margin: 0 0 0.5em 0;
letter-spacing: -0.01em;
}
p{ margin: 0 0 1em 0; color: var(--muted); }
a{ color: inherit; text-decoration: none; }
img{ max-width: 100%; display: block; }
::selection{ background: var(--blue-500); color: var(--white); }
/* Focus visibility for keyboard users */
a:focus-visible, button:focus-visible{
outline: 2px solid var(--blue-300);
outline-offset: 3px;
border-radius: 4px;
}
.container{
max-width: 1140px;
margin: 0 auto;
padding: 0 24px;
}
/* A small reusable "pitch mark" divider — a line with a
hollow center circle, evoking a halfway line on a field. */
.pitch-divider{
display:flex;
align-items:center;
gap: 14px;
margin: 0 0 28px 0;
width: 100%;
}
.pitch-divider::before,
.pitch-divider::after{
content:'';
flex:1;
height:1px;
background: linear-gradient(90deg, transparent, var(--line), transparent);
}
.pitch-divider .dot{
width: 14px; height: 14px;
border: 2px solid var(--blue-400);
border-radius: 50%;
flex-shrink: 0;
}
.eyebrow{
display:inline-flex;
align-items:center;
gap:8px;
font-family:'Space Grotesk', sans-serif;
font-size: 0.78rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--blue-300);
margin-bottom: 14px;
}
.eyebrow::before{
content:'';
width: 8px; height: 8px;
background: var(--blue-400);
border-radius: 50%;
box-shadow: 0 0 12px var(--blue-glow);
}
/* ============================================
NAVIGATION — sticky, glass panel
============================================ */
header.site-nav{
position: sticky;
top: 0;
z-index: 100;
backdrop-filter: blur(14px) saturate(140%);
-webkit-backdrop-filter: blur(14px) saturate(140%);
background: rgba(7, 15, 30, 0.78);
border-bottom: 1px solid var(--line);
}
.nav-inner{
max-width: 1140px;
margin: 0 auto;
padding: 16px 24px;
display:flex;
align-items:center;
justify-content:space-between;
}
.brand{
display:flex;
align-items:center;
gap:12px;
font-family:'Space Grotesk', sans-serif;
font-weight:700;
font-size: 1.08rem;
letter-spacing: -0.01em;
cursor:pointer;
}
.brand .mark{
width: 38px; height: 38px;
border-radius: 10px;
background: linear-gradient(145deg, var(--blue-500), #1c5fc4);
display:flex; align-items:center; justify-content:center;
box-shadow: 0 6px 20px -6px var(--blue-glow);
flex-shrink:0;
}
.brand .mark svg{ width: 20px; height: 20px; }
.brand small{
display:block;
font-family:'Inter', sans-serif;
font-weight: 500;
font-size: 0.68rem;
color: var(--muted-dim);
letter-spacing: 0.02em;
}
nav.nav-links{
display:flex;
align-items:center;
gap: 6px;
}
nav.nav-links a{
position: relative;
padding: 9px 18px;
font-size: 0.94rem;
font-weight: 500;
color: var(--muted);
border-radius: 999px;
transition: color 0.25s var(--ease), background 0.25s var(--ease);
}
nav.nav-links a:hover{
color: var(--white);
background: rgba(255,255,255,0.05);
}
nav.nav-links a.active{
color: var(--white);
background: rgba(47, 128, 237, 0.16);
}
nav.nav-links a.active::after{
content:'';
position:absolute;
left: 18px; right: 18px; bottom: 4px;
height: 2px;
background: var(--blue-400);
border-radius: 2px;
}
/* Hamburger — mobile only */
.menu-toggle{
display:none;
background:none;
border: 1px solid var(--line);
border-radius: 10px;
width: 42px; height: 42px;
cursor:pointer;
align-items:center;
justify-content:center;
flex-direction:column;
gap: 5px;
}
.menu-toggle span{
width: 18px; height: 2px;
background: var(--white);
border-radius: 2px;
transition: transform 0.25s var(--ease), opacity 0.25s var(--ease);
}
.menu-toggle.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.menu-toggle.open span:nth-child(2){ opacity: 0; }
.menu-toggle.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
/* ============================================
PAGES / SECTIONS
============================================ */
.page{
display: none;
animation: fadeUp 0.55s var(--ease);
}
.page.active{ display: block; }
@keyframes fadeUp{
from{ opacity: 0; transform: translateY(14px); }
to{ opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce){
html{ scroll-behavior: auto; }
.page{ animation: none; }
*{ transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
/* ---------- HOME / HERO ---------- */
.hero{
position: relative;
min-height: 86vh;
display:flex;
align-items:center;
overflow:hidden;
border-bottom: 1px solid var(--line);
}
.hero-bg{
position:absolute; inset:0;
background-image:
linear-gradient(180deg, rgba(7,15,30,0.55) 0%, rgba(7,15,30,0.86) 62%, var(--bg-0) 100%),
linear-gradient(100deg, rgba(7,15,30,0.92) 15%, rgba(7,15,30,0.35) 60%),
url('https://images.unsplash.com/photo-1508098682722-e99c43a406b2?w=1600&fit=crop&q=80');
background-size: cover;
background-position: center;
z-index: 0;
}
.hero-content{
position:relative;
z-index: 1;
max-width: 1140px;
margin: 0 auto;
padding: 100px 24px 80px;
width: 100%;
}
.hero-content .lede{
max-width: 620px;
}
.hero h1{
font-size: clamp(2.2rem, 5vw, 3.6rem);
margin-bottom: 0.4em;
}
.hero h1 .accent{ color: var(--blue-300); }
.hero p.desc{
font-size: 1.08rem;
max-width: 520px;
color: #c3d0e6;
}
.cta-row{ display:flex; gap: 16px; flex-wrap: wrap; margin-top: 32px; }
.btn{
display:inline-flex;
align-items:center;
gap: 10px;
padding: 14px 28px;
border-radius: 999px;
font-weight: 600;
font-size: 0.96rem;
font-family: 'Inter', sans-serif;
border: 1px solid transparent;
cursor: pointer;
transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background 0.25s var(--ease), border-color 0.25s var(--ease);
}
.btn-primary{
background: linear-gradient(135deg, var(--blue-500), #1c5fc4);
color: var(--white);
box-shadow: 0 12px 30px -10px var(--blue-glow);
}
.btn-primary:hover{
transform: translateY(-2px);
box-shadow: 0 16px 38px -8px var(--blue-glow);
}
.btn-ghost{
background: rgba(255,255,255,0.03);
border-color: var(--line);
color: var(--white);
}
.btn-ghost:hover{
background: rgba(255,255,255,0.07);
border-color: var(--blue-400);
transform: translateY(-2px);
}
/* Stat strip under hero */
.stat-strip{
padding: 44px 0;
border-bottom: 1px solid var(--line);
}
.stat-grid{
display:grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.stat{
text-align:center;
padding: 18px 12px;
}
.stat .num{
font-family:'Space Grotesk', sans-serif;
font-size: clamp(1.8rem, 3vw, 2.4rem);
font-weight: 700;
color: var(--blue-300);
}
.stat .label{
color: var(--muted);
font-size: 0.88rem;
margin-top: 4px;
}
/* Generic section spacing */
section.block{
padding: 90px 0;
}
section.block.tight{ padding: 70px 0; }
.section-head{
max-width: 640px;
margin-bottom: 46px;
}
.section-head h2{
font-size: clamp(1.7rem, 3.4vw, 2.4rem);
}
/* Feature / about grid */
.grid-2{
display:grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 56px;
align-items:start;
}
.icon-tile{
width: 52px; height:52px;
border-radius: 14px;
background: var(--bg-2);
border: 1px solid var(--line);
display:flex; align-items:center; justify-content:center;
margin-bottom: 18px;
flex-shrink:0;
}
.icon-tile svg{ width: 26px; height: 26px; color: var(--blue-400); }
.value-list{
display:flex;
flex-direction:column;
gap: 26px;
}
.value-item{
display:flex;
gap: 18px;
padding: 22px;
background: var(--bg-1);
border: 1px solid var(--line);
border-radius: var(--radius-md);
transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.value-item:hover{
border-color: rgba(91,155,245,0.4);
transform: translateY(-3px);
}
.value-item .emoji{ font-size: 1.6rem; line-height: 1; }
.value-item h4{ font-size: 1.02rem; margin-bottom: 4px; }
.value-item p{ margin: 0; font-size: 0.92rem; }
.about-card{
background: var(--bg-1);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 36px;
box-shadow: var(--shadow-soft);
}
.about-card h3{ font-size: 1.3rem; }
.about-card .badge-row{
display:flex; flex-wrap:wrap; gap: 10px;
margin-top: 22px;
}
.badge{
font-size: 0.82rem;
padding: 7px 14px;
border-radius: 999px;
background: rgba(47,128,237,0.12);
border: 1px solid rgba(47,128,237,0.3);
color: var(--blue-300);
}
/* Timeline (About page) — order carries real meaning here:
it's the organisation's actual course of action */
.timeline{
display:flex;
flex-direction:column;
gap: 0;
margin-top: 10px;
}
.tl-item{
display:grid;
grid-template-columns: 30px 1fr;
gap: 20px;
}
.tl-rail{
display:flex;
flex-direction:column;
align-items:center;
}
.tl-dot{
width: 12px; height:12px;
border-radius:50%;
background: var(--blue-400);
box-shadow: 0 0 0 5px rgba(47,128,237,0.15);
margin-top: 6px;
flex-shrink:0;
}
.tl-line{
width: 2px;
flex:1;
background: var(--line);
margin: 4px 0;
}
.tl-item:last-child .tl-line{ display:none; }
.tl-content{ padding-bottom: 34px; }
.tl-content h4{ font-size: 1.04rem; margin-bottom: 6px; }
.tl-content p{ font-size: 0.94rem; }
/* ---------- SERVICES ---------- */
.services-grid{
display:grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
}
.service-card{
background: var(--bg-1);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 32px;
position: relative;
overflow:hidden;
transition: transform 0.3s var(--ease), border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.service-card::before{
content:'';
position:absolute;
top: -60px; right: -60px;
width: 160px; height: 160px;
border-radius: 50%;
background: radial-gradient(circle, var(--blue-glow), transparent 70%);
opacity: 0;
transition: opacity 0.3s var(--ease);
}
.service-card:hover{
transform: translateY(-6px);
border-color: rgba(91,155,245,0.45);
box-shadow: var(--shadow-soft);
}
.service-card:hover::before{ opacity: 1; }
.service-card .icon-tile{ background: var(--bg-2); }
.service-card h3{ font-size: 1.14rem; margin-bottom: 10px; }
.service-card p{ font-size: 0.94rem; margin-bottom: 0; }
.service-card .tag{
display:inline-block;
margin-top: 16px;
font-size: 0.76rem;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--muted-dim);
}
.process-strip{
margin-top: 60px;
background: var(--bg-1);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 36px;
}
.process-strip .pgrid{
display:grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-top: 22px;
}
.pstep{ text-align:left; }
.pstep .n{
font-family:'Space Grotesk', sans-serif;
color: var(--blue-400);
font-weight: 700;
font-size: 0.9rem;
margin-bottom: 6px;
}
.pstep h4{ font-size: 0.98rem; margin-bottom: 4px; }
.pstep p{ font-size: 0.86rem; margin: 0; }
/* ---------- CONTACT ---------- */
.contact-grid{
display:grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
}
.contact-card{
background: var(--bg-1);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 32px;
display:flex;
flex-direction:column;
gap: 16px;
transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.contact-card:hover{
border-color: rgba(91,155,245,0.4);
transform: translateY(-3px);
}
.contact-card h3{ font-size: 1.1rem; }
.contact-card .value{
font-family:'Space Grotesk', sans-serif;
font-size: 1.15rem;
color: var(--white);
}
.contact-full{
grid-column: 1 / -1;
background: linear-gradient(135deg, rgba(47,128,237,0.14), rgba(47,128,237,0.02));
border: 1px solid rgba(91,155,245,0.28);
border-radius: var(--radius-lg);
padding: 40px;
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap: 24px;
}
.contact-full h3{ font-size: 1.4rem; margin-bottom: 6px; }
.contact-full p{ margin: 0; max-width: 460px; }
.contact-full .cta-row{ margin-top: 0; }
/* ============================================
FOOTER — always visible
============================================ */
footer.site-footer{
border-top: 1px solid var(--line);
background: var(--bg-1);
padding: 48px 0 28px;
}
.footer-grid{
display:grid;
grid-template-columns: 1.4fr 1fr 1fr;
gap: 40px;
margin-bottom: 36px;
}
.footer-brand{
display:flex; align-items:center; gap: 12px;
font-family:'Space Grotesk', sans-serif;
font-weight: 700;
margin-bottom: 12px;
}
.footer-brand .mark{
width: 34px; height: 34px;
border-radius: 9px;
background: linear-gradient(145deg, var(--blue-500), #1c5fc4);
display:flex; align-items:center; justify-content:center;
flex-shrink:0;
}
.footer-brand .mark svg{ width: 18px; height: 18px; }
footer h5{
font-family:'Space Grotesk', sans-serif;
font-size: 0.86rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--muted-dim);
margin-bottom: 16px;
}
footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap: 11px; }
footer ul li a{
color: var(--muted);
font-size: 0.94rem;
transition: color 0.2s var(--ease), padding-left 0.2s var(--ease);
}
footer ul li a:hover{ color: var(--blue-300); padding-left: 4px; }
.footer-bottom{
border-top: 1px solid var(--line);
padding-top: 22px;
display:flex;
justify-content:space-between;
flex-wrap: wrap;
gap: 12px;
font-size: 0.85rem;
color: var(--muted-dim);
}
/* ============================================
RESPONSIVE
============================================ */
@media (max-width: 860px){
.grid-2{ grid-template-columns: 1fr; gap: 36px; }
.services-grid{ grid-template-columns: 1fr; }
.contact-grid{ grid-template-columns: 1fr; }
.footer-grid{ grid-template-columns: 1fr 1fr; }
.stat-grid{ grid-template-columns: 1fr; gap: 10px; }
.process-strip .pgrid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px){
nav.nav-links{
position: fixed;
top: 73px; left: 0; right: 0;
flex-direction:column;
align-items: stretch;
background: rgba(7,15,30,0.98);
border-bottom: 1px solid var(--line);
padding: 10px 20px 20px;
gap: 4px;
transform: translateY(-130%);
opacity: 0;
transition: transform 0.3s var(--ease), opacity 0.3s var(--ease);
z-index: 99;
}
nav.nav-links.open{ transform: translateY(0); opacity: 1; }
nav.nav-links a{ padding: 13px 16px; }
.menu-toggle{ display:flex; }
.hero-content{ padding: 70px 20px 60px; }
.contact-full{ flex-direction:column; align-items:flex-start; }
.footer-grid{ grid-template-columns: 1fr; gap: 28px; }
.footer-bottom{ flex-direction:column; }
}
@media (max-width: 480px){
.process-strip .pgrid{ grid-template-columns: 1fr; }
section.block{ padding: 64px 0; }
}
</style>
</head>
<body>
<!-- ============================================
NAVIGATION
============================================ -->
<header class="site-nav">
<div class="nav-inner">
<div class="brand" data-nav="home" role="button" tabindex="0" aria-label="Početna">
<span class="mark">
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="12" cy="12" r="9" stroke="white" stroke-width="1.6"/>
<path d="M3 12h18M12 3v18M6.5 6.5c2 2 9 2 11 0M6.5 17.5c2-2 9-2 11 0" stroke="white" stroke-width="1.3"/>
</svg>
</span>
<span>
SD Kočerin
<small>Sportsko društvo</small>
</span>
</div>
<button class="menu-toggle" id="menuToggle" aria-label="Otvori izbornik" aria-expanded="false">
<span></span><span></span><span></span>
</button>
<nav class="nav-links" id="navLinks">
<a href="/" data-nav="home">Početna</a>
<a href="/about" data-nav="about">O nama</a>
<a href="/services" data-nav="services">Usluge</a>
<a href="/contact" data-nav="contact">Kontakt</a>
</nav>
</div>
</header>
<main>
<!-- ============================================
HOME PAGE
============================================ -->
<section class="page" id="page-home" data-page="home">
<div class="hero">
<div class="hero-bg" aria-hidden="true"></div>
<div class="hero-content">
<div class="lede">
<div class="eyebrow">Kočerin · Neprofitno udruženje</div>
<h1>Gradimo teren za <span class="accent">sljedeću generaciju</span> sportaša</h1>
<p class="desc">
Sportsko društvo Kočerin ulaže u razvoj i izgradnju sportske infrastrukture —
igrališta, dvorana i drugih prostora koji zajednici trebaju da bi rasla, igrala
i pobjeđivala zajedno.
</p>
<div class="cta-row">
<a href="/contact" class="btn btn-primary" data-nav="contact">
Kontaktirajte nas
<svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
</a>
<a href="/services" class="btn btn-ghost" data-nav="services">Pogledajte usluge</a>
</div>
</div>
</div>
</div>
<div class="stat-strip">
<div class="container">
<div class="stat-grid">
<div class="stat">
<div class="num">100%</div>
<div class="label">Lokalno vođena inicijativa</div>
</div>
<div class="stat">
<div class="num">Kočerin</div>
<div class="label">Naše područje djelovanja</div>
</div>
<div class="stat">
<div class="num">01</div>
<div class="label">Cilj: zajednica koja se kreće</div>
</div>
</div>
</div>
</div>
<section class="block">
<div class="container">
<div class="pitch-divider"><div class="dot"></div></div>
<div class="grid-2">
<div>
<div class="section-head">
<div class="eyebrow">Zašto postojimo</div>
<h2>Sportska infrastruktura nije luksuz — ona je temelj zajednice</h2>
</div>
<p>
Vjerujemo da svako naselje zaslužuje prostor u kojem djeca, mladi i odrasli
mogu trenirati, igrati se i graditi zdrave navike. Zato ulažemo vrijeme,
znanje i resurse u projekte koji ostaju iza nas generacijama.
</p>
<div class="badge-row" style="margin-top:8px;">
<span class="badge">🏗️ Izgradnja</span>
<span class="badge">⚽ Igrališta</span>
<span class="badge">🏟️ Dvorane</span>
<span class="badge">🤝 Zajednica</span>
</div>
</div>
<div class="value-list">
<div class="value-item">
<div class="emoji">🎯</div>
<div>
<h4>Jasan fokus</h4>
<p>Svaki projekt rješava stvarnu, prepoznatu potrebu lokalne zajednice u Kočerinu.</p>
</div>
</div>
<div class="value-item">
<div class="emoji">🧱</div>
<div>
<h4>Dugoročna gradnja</h4>
<p>Infrastruktura koja traje — od temelja do održavanja, gradimo za desetljeća.</p>
</div>
</div>
<div class="value-item">
<div class="emoji">🌱</div>
<div>
<h4>Razvoj mladih</h4>
<p>Prostor za trening i igru koji potiče zdravlje, disciplinu i timski duh.</p>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
<!-- ============================================
ABOUT PAGE
============================================ -->
<section class="page" id="page-about" data-page="about">
<section class="block" style="padding-top:64px;">
<div class="container">
<div class="section-head">
<div class="eyebrow">O nama</div>
<h2>Udruženje posvećeno sportskom razvoju Kočerina</h2>
<p>
Sportsko društvo Kočerin je neprofitna organizacija koja ulaže u razvoj i
izgradnju sportske infrastrukture — igrališta, dvorana i drugih prostora.
Naš rad usmjeren je na razvoj sportskih projekata od značaja za lokalnu zajednicu.
</p>
</div>
<div class="grid-2">
<div class="about-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><path d="M12 21c-4.5-3.5-8-7-8-11a8 8 0 0116 0c0 4-3.5 7.5-8 11z" stroke="currentColor" stroke-width="1.6"/><circle cx="12" cy="10" r="2.6" stroke="currentColor" stroke-width="1.6"/></svg>
</div>
<h3>Misija</h3>
<p>
Osigurati da svaka generacija u Kočerinu ima pristup kvalitetnom sportskom
prostoru — bez obzira radi li se o igralištu za najmlađe ili dvorani za
takmičarski sport.
</p>
<div class="badge-row">
<span class="badge">Infrastruktura</span>
<span class="badge">Zajednica</span>
<span class="badge">Održivost</span>
</div>
</div>
<div>
<h3 style="font-size:1.2rem; margin-bottom:22px;">Kako djelujemo</h3>
<div class="timeline">
<div class="tl-item">
<div class="tl-rail"><div class="tl-dot"></div><div class="tl-line"></div></div>
<div class="tl-content">
<h4>Prepoznavanje potrebe</h4>
<p>Slušamo zajednicu i utvrđujemo koji sportski prostor Kočerinu najviše nedostaje.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-rail"><div class="tl-dot"></div><div class="tl-line"></div></div>
<div class="tl-content">
<h4>Planiranje projekta</h4>
<p>Definiramo opseg, lokaciju i resurse potrebne za izgradnju ili razvoj prostora.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-rail"><div class="tl-dot"></div><div class="tl-line"></div></div>
<div class="tl-content">
<h4>Ulaganje i izgradnja</h4>
<p>Koordiniramo ulaganja i radove na terenu, igralištu ili dvorani do njihovog dovršetka.</p>
</div>
</div>
<div class="tl-item">
<div class="tl-rail"><div class="tl-dot"></div></div>
<div class="tl-content">
<h4>Predaja zajednici</h4>
<p>Gotov prostor postaje dio svakodnevnog života — otvoren djeci, klubovima i mještanima.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
<!-- ============================================
SERVICES PAGE
============================================ -->
<section class="page" id="page-services" data-page="services">
<section class="block" style="padding-top:64px;">
<div class="container">
<div class="section-head">
<div class="eyebrow">Usluge</div>
<h2>Od ideje do gotovog sportskog prostora</h2>
<p>Fokusirani smo na ulaganje, razvoj i izgradnju sportske infrastrukture prilagođene stvarnim potrebama Kočerina.</p>
</div>
<div class="services-grid">
<div class="service-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><path d="M3 21h18M5 21V9l7-5 7 5v12M9 21v-6h6v6" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg>
</div>
<h3>Ulaganje u infrastrukturu</h3>
<p>Usmjeravamo sredstva i partnerstva u projekte sportske infrastrukture koji imaju najveći učinak na zajednicu.</p>
<span class="tag">Ulaganje</span>
</div>
<div class="service-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><rect x="3" y="6" width="18" height="12" rx="2" stroke="currentColor" stroke-width="1.6"/><circle cx="12" cy="12" r="2.6" stroke="currentColor" stroke-width="1.6"/><path d="M3 9h2M19 9h2M3 15h2M19 15h2" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg>
</div>
<h3>Izgradnja igrališta</h3>
<p>Planiramo i gradimo dječja i sportska igrališta prilagođena potrebama svih uzrasta u Kočerinu.</p>
<span class="tag">Igrališta</span>
</div>
<div class="service-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><path d="M4 20V10l8-6 8 6v10" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><path d="M9 20v-6h6v6" stroke="currentColor" stroke-width="1.6"/><path d="M4 20h16" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg>
</div>
<h3>Razvoj sportskih dvorana</h3>
<p>Podržavamo izgradnju i obnovu dvorana koje omogućavaju trening i takmičenja tijekom cijele godine.</p>
<span class="tag">Dvorane</span>
</div>
<div class="service-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><path d="M12 3v18M4 8h16M4 16h16" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/><circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.6"/></svg>
</div>
<h3>Sportski projekti zajednice</h3>
<p>Razvijamo dodatne prostore i projekte od šireg značaja — od trim staza do multifunkcionalnih terena.</p>
<span class="tag">Zajednica</span>
</div>
</div>
<div class="process-strip">
<div class="eyebrow" style="margin-bottom:0;">Naš pristup</div>
<h3 style="font-size:1.2rem;">Kako pretvaramo prazan prostor u sportski teren</h3>
<div class="pgrid">
<div class="pstep">
<div class="n">01</div>
<h4>Procjena terena</h4>
<p>Analiziramo lokaciju i stvarne potrebe mještana.</p>
</div>
<div class="pstep">
<div class="n">02</div>
<h4>Osiguranje resursa</h4>
<p>Povezujemo ulaganja s konkretnim projektom.</p>
</div>
<div class="pstep">
<div class="n">03</div>
<h4>Izvođenje radova</h4>
<p>Pratimo izgradnju od prvog do zadnjeg koraka.</p>
</div>
<div class="pstep">
<div class="n">04</div>
<h4>Otvaranje zajednici</h4>
<p>Prostor postaje dostupan svima u Kočerinu.</p>
</div>
</div>
</div>
</div>
</section>
</section>
<!-- ============================================
CONTACT PAGE
============================================ -->
<section class="page" id="page-contact" data-page="contact">
<section class="block" style="padding-top:64px;">
<div class="container">
<div class="section-head">
<div class="eyebrow">Kontakt</div>
<h2>Razgovarajmo o vašem sportskom projektu</h2>
<p>Javite nam se telefonom ili e-poštom — rado ćemo odgovoriti na sva pitanja o našim projektima i uslugama.</p>
</div>
<div class="contact-grid">
<div class="contact-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><path d="M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg>
</div>
<h3>Telefon</h3>
<div class="value">00387-63-251-311</div>
<p>Dostupni radnim danima za sve upite vezane uz projekte i suradnju.</p>
<a href="tel:0038763251311" class="btn btn-primary" style="align-self:flex-start;">Nazovite nas</a>
</div>
<div class="contact-card">
<div class="icon-tile">
<svg viewBox="0 0 24 24" fill="none"><rect x="3" y="5" width="18" height="14" rx="2" stroke="currentColor" stroke-width="1.6"/><path d="M3 7l9 6 9-6" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg>
</div>
<h3>E-pošta</h3>
<div class="value">hmikulic@gmail.com</div>
<p>Pošaljite nam upit, prijedlog projekta ili zahtjev za suradnju.</p>
<a href="mailto:hmikulic@gmail.com" class="btn btn-primary" style="align-self:flex-start;">Pošaljite e-poštu</a>
</div>
<div class="contact-full">
<div>
<h3>📍 Područje djelovanja: Kočerin</h3>
<p>Sportsko društvo Kočerin djeluje na području Kočerina, ulažući u lokalne sportske projekte i infrastrukturu od značaja za mještane.</p>
</div>
<div class="cta-row">
<a href="tel:0038763251311" class="btn btn-ghost">📞 Nazovite</a>
<a href="mailto:hmikulic@gmail.com" class="btn btn-ghost">✉️ Pišite nam</a>
</div>
</div>
</div>
</div>
</section>
</section>
</main>
<!-- ============================================
FOOTER — always visible
============================================ -->
<footer class="site-footer">
<div class="container">
<div class="footer-grid">
<div>
<div class="footer-brand">
<span class="mark">
<svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="9" stroke="white" stroke-width="1.6"/><path d="M3 12h18M12 3v18" stroke="white" stroke-width="1.3"/></svg>
</span>
Sportsko društvo Kočerin
</div>
<p style="max-width:280px; font-size:0.92rem;">
Ulaganje, razvoj i izgradnja sportske infrastrukture, igrališta, dvorana i drugih
prostora od značaja za zajednicu Kočerina.
</p>
</div>
<div>
<h5>Stranice</h5>
<ul>
<li><a href="/" data-nav="home">Početna</a></li>
<li><a href="/about" data-nav="about">O nama</a></li>
<li><a href="/services" data-nav="services">Usluge</a></li>
<li><a href="/contact" data-nav="contact">Kontakt</a></li>
</ul>
</div>
<div>
<h5>Kontakt</h5>
<ul>
<li><a href="tel:0038763251311">📞 00387-63-251-311</a></li>
<li><a href="mailto:hmikulic@gmail.com">✉️ hmikulic@gmail.com</a></li>
<li><span style="color:var(--muted); font-size:0.94rem;">📍 Kočerin, BiH</span></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year"></span> Sportsko društvo Kočerin. Sva prava pridržana.</span>
<span>Neprofitna organizacija · Kočerin</span>
</div>
</div>
</footer>
<script>
(function(){
"use strict";
/* ============================================
ROUTING CONFIGURATION
Maps clean URL paths to page keys and back.
============================================ */
var PAGES = ["home", "about", "services", "contact"];
var PATH_TO_PAGE = {
"/": "home",
"/index.html": "home",
"/about": "about",
"/services": "services",
"/contact": "contact"
};
var PAGE_TO_PATH = {
home: "/",
about: "/about",
services: "/services",
contact: "/contact"
};
var navLinksEl = document.getElementById("navLinks");
var menuToggle = document.getElementById("menuToggle");
/* Show a single page, hide the rest, update nav highlight. */
function renderPage(pageKey){
if (PAGES.indexOf(pageKey) === -1) pageKey = "home";
PAGES.forEach(function(key){
var section = document.getElementById("page-" + key);
if (section) section.classList.toggle("active", key === pageKey);
});
// Highlight the matching nav link(s) — brand mark counts as "home"
document.querySelectorAll("[data-nav]").forEach(function(el){
var isMatch = el.getAttribute("data-nav") === pageKey;
if (el.tagName === "A") el.classList.toggle("active", isMatch);
});
document.title = pageTitle(pageKey);
window.scrollTo({ top: 0, behavior: "instant" in window ? "instant" : "auto" });
closeMobileMenu();
}
function pageTitle(pageKey){
var names = {
home: "Sportsko društvo Kočerin — Početna",
about: "O nama — Sportsko društvo Kočerin",
services: "Usluge — Sportsko društvo Kočerin",
contact: "Kontakt — Sportsko društvo Kočerin"
};
return names[pageKey] || names.home;
}
/* Navigate to a page: update the URL when possible (real server
with .htaccess routing), otherwise just swap the visible section. */
function goToPage(pageKey, addHistory){
renderPage(pageKey);
if (addHistory !== false){
var path = PAGE_TO_PATH[pageKey] || "/";
try{
// Works on a real server where the path can be pushed safely.
history.pushState({ page: pageKey }, "", path);
}catch(err){
// Local file:// preview or sandboxed environment — pushState
// is unavailable. Silently skip URL updates; the page still
// switches correctly via renderPage() above.
}
}
}
/* Handle back/forward browser buttons. */
window.addEventListener("popstate", function(event){
var pageKey = (event.state && event.state.page) || pathToPage(window.location.pathname);
renderPage(pageKey);
});
/* Resolve a URL pathname to a page key, defaulting to home. */
function pathToPage(pathname){
if (!pathname) return "home";
var clean = pathname.replace(/\/index\.html$/, "/").replace(/\/+$/, "") || "/";
return PATH_TO_PAGE[clean] || "home";
}
/* Wire up every element carrying data-nav (nav links, buttons, brand). */
document.querySelectorAll("[data-nav]").forEach(function(el){
el.addEventListener("click", function(e){
var key = el.getAttribute("data-nav");
if (!key) return;
e.preventDefault();
goToPage(key, true);
});
// Keyboard support for the logo (role="button")
if (el.getAttribute("role") === "button"){
el.addEventListener("keydown", function(e){
if (e.key === "Enter" || e.key === " "){
e.preventDefault();
goToPage(el.getAttribute("data-nav"), true);
}
});
}
});
/* Mobile menu toggle */
function closeMobileMenu(){
navLinksEl.classList.remove("open");
menuToggle.classList.remove("open");
menuToggle.setAttribute("aria-expanded", "false");
}
menuToggle.addEventListener("click", function(){
var isOpen = navLinksEl.classList.toggle("open");
menuToggle.classList.toggle("open", isOpen);
menuToggle.setAttribute("aria-expanded", String(isOpen));
});
/* Footer year */
document.getElementById("year").textContent = new Date().getFullYear();
/* ============================================
INITIAL LOAD
Try to match window.location.pathname (supports direct
links like yoursite.com/about via .htaccess rewriting).
Falls back to Home if pathname isn't readable.
============================================ */
var initialPage = "home";
try{
initialPage = pathToPage(window.location.pathname);
}catch(err){
initialPage = "home";
}
renderPage(initialPage);
})();
</script>
</body>
</html>