Compare commits

..
2 Commits
5 changed files with 482 additions and 759 deletions
+115
View File
@@ -0,0 +1,115 @@
# AGENTS.md — eendoeserver (eendoe.nl & web03)
Instructies, architectuur, ontwerpregels en deploymentprocedures voor AI-agents en ontwikkelaars die werken binnen deze repository.
---
## 🎯 1. Overzicht & Doel
Deze repository (`eendoeserver`) beheert de bronbestanden, styling, documentatie en Apache 2.4 VirtualHost-configuraties voor de standalone productieserver **`web03`** (`eendoe.nl` en `bm4.nl`).
### Kerncomponenten:
* **`eendoe/`**: De publieke document root voor de website van Eendoe Services (`index.html`, assets, stylesheets, scripts).
* **`vhosts/`**: Apache VirtualHost configuraties geïncludeerd op de host via `Include /sites/vhosts/*.conf`.
---
## 🖥️ 2. Productieomgeving & Architectuur
* **Server**: Standalone Linux host `web03` (`eendoe.nl`).
* **SSH Toegang**: `bart@eendoe.nl` (authenticatie via SSH keys).
* **Webserver**: Apache 2.4 met HTTP/2 ondersteuning (`mod_ssl`, `mod_rewrite`, `mod_http2`).
* **Pad op productieserver**:
* Website document root: `/sites/eendoe/`
* Apache vhosts: `/sites/vhosts/`
* Debian package repository (zie ook `package-repo`): `/sites/repository/`
* **SSL/TLS**: Let's Encrypt certificaten via Certbot (`/etc/letsencrypt/`).
---
## 🎨 3. Ontwerpregels & Frontend Conventies
### ⚠️ Belangrijk: Behoud de authentieke stijl ("Minder AI, meer Elate")
De website is gebouwd op basis van het klassieke **Elate** template van FREEHTML5.co.
1. **Geen moderne AI/SaaS-saus**:
* Vermijd geforceerde glassmorphism, zwevende SaaS feature cards, zware box-shadows, gekleurde border-glows of overdadige gradient-knoppen.
* Houd interacties en layouts consistent met de bestaande rustige, zakelijke en minimalistische uitstraling.
2. **Typografie & Kleuren**:
* Basistekst: `#7f7f7f`, koppen: `#393e46`, achtergronden: `#f7f7f7` of `#ffffff`.
* Primaire themakleur: `#52d3aa` (turquoise / mintgroen).
3. **Framework & Bibliotheken**:
* **Bootstrap 3.3.5**: Gebruik native Bootstrap 3 componenten (bijv. modals voor popups, grid `col-md-*`, `col-sm-*`).
* **jQuery & Plugins**: `jquery.min.js`, `jquery.easing`, `jquery.stellar`, `jquery.waypoints`.
* **Iconen**: Icomoon (`icon-phone`, `icon-envelope`, `icon-home`, `icon-globe`, etc.).
4. **Taal & Toon**:
* Alle teksten op de website zijn in zakelijk, foutloos en bondig Nederlands.
---
## 🚀 4. Workflow & Deployment
### A. Wijzigingen aanbrengen & lokaal testen
* Pas bronbestanden aan binnen `eendoe/` (of `vhosts/` indien van toepassing).
* Valideer HTML-syntax en controleer dat er geen ongebalanceerde tags ontstaan.
* Zorg dat gecompileerde CSS (`css/style.css`) en SCSS (`sass/style.scss`) synchroon blijven.
### B. Committen en pushen (Git)
* Werk vanuit de submodule of clone:
```bash
git add <gewijzigde bestanden>
git commit -m "Korte beschrijving van de wijziging"
git push origin main
```
* Bij gebruik als submodule binnen de centrale `cluster` repository: werk daarna de submodule pointer in de root repository bij:
```bash
git -C .. add eendoeserver
git -C .. commit -m "Update eendoeserver submodule pointer"
git -C .. push origin main
```
### C. Deployen naar productie (`web03`)
De live website wordt direct geserveerd vanuit `/sites/eendoe/` op `eendoe.nl`. Deployment gebeurt via `rsync` over SSH:
```bash
# 1. Droogloop (optioneel, om te controleren wat er overgezet wordt):
rsync -n -avz eendoe/ bart@eendoe.nl:/sites/eendoe/
# 2. Live deploy van de website:
rsync -avz eendoe/ bart@eendoe.nl:/sites/eendoe/
# 3. Live verificatie:
curl -sI https://eendoe.nl | head -n 5
```
> [!NOTE]
> Gebruik **geen** `--delete` bij rsync op `/sites/eendoe/` zonder expliciete controle, om te voorkomen dat server-specifieke scripts (zoals `install-repo.sh` of submappen) onbedoeld worden verwijderd.
### D. VirtualHosts bijwerken (indien van toepassing)
Als configuraties in `vhosts/` zijn gewijzigd:
```bash
rsync -avz vhosts/ bart@eendoe.nl:/sites/vhosts/
ssh bart@eendoe.nl "sudo apache2ctl configtest && sudo systemctl reload apache2"
```
---
## 📋 5. Bestandsstructuur
```
eendoeserver/
├── AGENTS.md # Dit instructiebestand
├── README.md # Korte repo-beschrijving
├── eendoe/ # Document root
│ ├── index.html # Hoofdpagina eendoe.nl / bm4.nl
│ ├── css/ # Gecompileerde stylesheets (style.css, bootstrap.css)
│ ├── sass/ # SASS bronbestanden (style.scss)
│ ├── js/ # JavaScript (Bootstrap, jQuery, plugins, main.js)
│ ├── images/ # Afbeeldingen en logo's (work_*.jpg, contact.jpg)
│ ├── fonts/ # Icomoon en Glyphicons lettertypen
│ └── documents/ # PDF downloads (zoals algemene voorwaarden)
└── vhosts/ # Apache 2.4 configuraties
├── 20_eendoe.conf # HTTP vhost
├── 20_eendoe-le-ssl.conf # HTTPS vhost eendoe.nl / bm4.nl
└── 20_repository.conf # APT repository vhost
```
+117 -332
View File
@@ -994,8 +994,16 @@ margin-top: -10px;
#fh5co-contact { #fh5co-contact {
overflow: hidden; overflow: hidden;
position: relative; position: relative;
color: rgba(255, 255, 255, 0.85); color: rgba(255, 255, 255, 0.8);
background-color: #1a425b; background-color: #52d3aa;
/* IE9, iOS 3.2+ */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0idnNnZyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiPjxzdG9wIHN0b3AtY29sb3I9IiMzZjk1ZWEiIHN0b3Atb3BhY2l0eT0iMSIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzUyZDNhYSIgc3RvcC1vcGFjaXR5PSIxIiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjdnNnZykiIC8+PC9zdmc+);
background-image: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0, #3f95ea), color-stop(1, #52d3aa));
/* Android 2.3 */
background-image: -webkit-repeating-linear-gradient(top left, #3f95ea 0%, #52d3aa 100%);
/* IE10+ */
background-image: repeating-linear-gradient(to bottom right, #3f95ea 0%, #52d3aa 100%);
background-image: -ms-repeating-linear-gradient(top left, #3f95ea 0%, #52d3aa 100%);
} }
#fh5co-contact .gradient { #fh5co-contact .gradient {
position: absolute; position: absolute;
@@ -1003,25 +1011,63 @@ margin-top: -10px;
bottom: 0; bottom: 0;
left: 0; left: 0;
right: 0; right: 0;
z-index: 1; z-index: 2;
opacity: .94; opacity: .9;
background-color: #1a425b; -webkit-backface-visibility: hidden;
background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0, #1c4b72), color-stop(1, #1e7a68)); background-color: #52d3aa;
background: linear-gradient(135deg, rgba(28, 75, 114, 0.95) 0%, rgba(30, 122, 104, 0.95) 100%); background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0idnNnZyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiPjxzdG9wIHN0b3AtY29sb3I9IiMzZjk1ZWEiIHN0b3Atb3BhY2l0eT0iMSIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzUyZDNhYSIgc3RvcC1vcGFjaXR5PSIxIiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjdnNnZykiIC8+PC9zdmc+);
background-image: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0, #3f95ea), color-stop(1, #52d3aa));
background-image: -webkit-repeating-linear-gradient(top left, #3f95ea 0%, #52d3aa 100%);
background-image: repeating-linear-gradient(to bottom right, #3f95ea 0%, #52d3aa 100%);
background-image: -ms-repeating-linear-gradient(top left, #3f95ea 0%, #52d3aa 100%);
} }
#fh5co-contact .container { #fh5co-contact .container {
position: relative; position: relative;
z-index: 4; z-index: 4;
} }
#fh5co-contact a { #fh5co-contact h3 {
color: #52d3aa; color: #fff;
text-decoration: none; margin-bottom: 25px;
font-size: 26px;
font-weight: 300;
}
#fh5co-contact .fh5co-contact-info {
padding: 0;
margin: 0 0 1.5em 0;
}
#fh5co-contact .fh5co-contact-info li {
position: relative;
padding: 0;
margin: 0 0 1.5em 0;
padding-left: 50px;
list-style: none;
font-size: 18px;
line-height: 1.6;
color: rgba(255, 255, 255, 0.9);
}
#fh5co-contact .fh5co-contact-info li i {
position: absolute;
top: 3px;
left: 0;
font-size: 24px;
color: #fff;
}
#fh5co-contact .fh5co-contact-info li a {
color: #fff;
text-decoration: underline;
-webkit-transition: 0.3s; -webkit-transition: 0.3s;
-o-transition: 0.3s; -o-transition: 0.3s;
transition: 0.3s; transition: 0.3s;
} }
#fh5co-contact a:hover { #fh5co-contact .fh5co-contact-info li a:hover {
color: #fff; color: #fff;
text-decoration: none;
}
#fh5co-contact img {
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
-ms-border-radius: 7px;
border-radius: 7px;
} }
#fh5co-contact:before, #fh5co-contact:after { #fh5co-contact:before, #fh5co-contact:after {
position: absolute; position: absolute;
@@ -1050,329 +1096,10 @@ margin-top: -10px;
color: #fff; color: #fff;
} }
#fh5co-contact .section-heading h2:after { #fh5co-contact .section-heading h2:after {
background: #52d3aa; background: rgba(255, 255, 255, 0.3);
} }
#fh5co-contact .section-heading h3 { #fh5co-contact .section-heading h3 {
color: rgba(255, 255, 255, 0.9); color: rgba(255, 255, 255, 0.8);
}
/* Modern Contact Card */
.contact-card {
background: rgba(255, 255, 255, 0.1);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 16px;
padding: 35px 35px 30px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
margin-bottom: 30px;
color: #fff;
}
.contact-card-header {
margin-bottom: 25px;
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
padding-bottom: 18px;
}
.contact-card-header h3 {
color: #fff;
font-size: 26px;
font-weight: 600;
margin: 0 0 8px 0;
}
.contact-card-header p {
color: rgba(255, 255, 255, 0.85);
font-size: 15px;
margin: 0;
line-height: 1.5;
}
/* Contact Info List */
.contact-info-list {
list-style: none;
padding: 0;
margin: 0 0 25px 0;
}
.contact-item {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: flex-start;
align-items: flex-start;
padding: 12px 14px;
border-radius: 10px;
margin-bottom: 8px;
-webkit-transition: background 0.2s ease, -webkit-transform 0.2s ease;
transition: background 0.2s ease, transform 0.2s ease;
}
.contact-item:hover {
background: rgba(255, 255, 255, 0.08);
-webkit-transform: translateX(4px);
transform: translateX(4px);
}
.contact-icon {
width: 42px;
height: 42px;
min-width: 42px;
border-radius: 10px;
background: rgba(255, 255, 255, 0.18);
border: 1px solid rgba(255, 255, 255, 0.25);
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
margin-right: 16px;
color: #52d3aa;
font-size: 18px;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
}
.contact-item:hover .contact-icon {
background: #52d3aa;
color: #1a4a40;
box-shadow: 0 4px 12px rgba(82, 211, 170, 0.4);
}
.contact-content {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.contact-label {
display: block;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: rgba(255, 255, 255, 0.65);
margin-bottom: 2px;
}
.contact-value {
display: block;
font-size: 16px;
font-weight: 500;
color: #fff;
line-height: 1.4;
}
.contact-link {
display: inline-block;
font-size: 16px;
font-weight: 500;
color: #fff !important;
text-decoration: none !important;
border-bottom: 1px dashed rgba(255, 255, 255, 0.4);
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
}
.contact-link:hover, .contact-link:focus {
color: #52d3aa !important;
border-bottom-color: #52d3aa;
text-decoration: none !important;
}
/* Contact Badges / Meta */
.contact-meta {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
padding-top: 18px;
border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.contact-badge {
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.2);
padding: 6px 14px;
border-radius: 20px;
font-size: 13px;
font-weight: 500;
color: rgba(255, 255, 255, 0.95);
margin-right: 10px;
margin-bottom: 8px;
}
.contact-badge i {
color: #52d3aa;
margin-right: 6px;
font-size: 11px;
}
/* Contact Side Card (Right Column) */
.contact-side-card {
background: rgba(255, 255, 255, 0.1);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 16px;
overflow: hidden;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
margin-bottom: 30px;
height: 100%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
}
.contact-image-wrap {
position: relative;
overflow: hidden;
max-height: 250px;
}
.contact-image-wrap img {
width: 100%;
height: 250px;
object-fit: cover;
-webkit-transition: -webkit-transform 0.5s ease;
transition: transform 0.5s ease;
}
.contact-side-card:hover .contact-image-wrap img {
-webkit-transform: scale(1.04);
transform: scale(1.04);
}
.contact-image-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0, rgba(0,0,0,0.1)), color-stop(1, rgba(20,50,75,0.7)));
background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, rgba(20,50,75,0.7) 100%);
}
.contact-cta-box {
padding: 30px 30px;
color: #fff;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-justify-content: center;
justify-content: center;
}
.contact-cta-box h4 {
color: #fff;
font-size: 22px;
font-weight: 600;
margin: 0 0 10px 0;
}
.contact-cta-box p {
color: rgba(255, 255, 255, 0.85);
font-size: 15px;
line-height: 1.6;
margin-bottom: 25px;
}
.contact-actions {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.btn-contact-primary {
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
background: #52d3aa;
color: #0d382d !important;
font-weight: 600;
font-size: 14px;
letter-spacing: 0.5px;
text-transform: none;
padding: 12px 22px;
border-radius: 8px;
border: 2px solid #52d3aa;
text-decoration: none !important;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
margin-right: 12px;
margin-bottom: 10px;
}
.btn-contact-primary i {
margin-right: 8px;
font-size: 16px;
}
.btn-contact-primary:hover, .btn-contact-primary:focus {
background: #3ec095;
border-color: #3ec095;
color: #0d382d !important;
box-shadow: 0 6px 18px rgba(82, 211, 170, 0.4);
-webkit-transform: translateY(-2px);
transform: translateY(-2px);
}
.btn-contact-outline {
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
background: transparent;
color: #fff !important;
font-weight: 600;
font-size: 14px;
letter-spacing: 0.5px;
text-transform: none;
padding: 12px 22px;
border-radius: 8px;
border: 2px solid rgba(255, 255, 255, 0.6);
text-decoration: none !important;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
margin-bottom: 10px;
}
.btn-contact-outline i {
margin-right: 8px;
font-size: 16px;
}
.btn-contact-outline:hover, .btn-contact-outline:focus {
background: rgba(255, 255, 255, 0.2);
border-color: #fff;
color: #fff !important;
-webkit-transform: translateY(-2px);
transform: translateY(-2px);
}
@media screen and (max-width: 768px) {
.contact-card {
padding: 25px 20px 20px;
}
.contact-cta-box {
padding: 24px 20px;
}
.btn-contact-primary, .btn-contact-outline {
width: 100%;
margin-right: 0;
}
} }
@@ -1740,4 +1467,62 @@ margin-top: -10px;
animation-fill-mode: both; animation-fill-mode: both;
} }
/* Modals */
.modal-content {
border-radius: 6px;
border: none;
-webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.25);
box-shadow: 0 5px 25px rgba(0, 0, 0, 0.25);
}
.modal-header {
padding: 20px 25px 15px;
border-bottom: 1px solid #eeeeee;
}
.modal-header .close {
font-size: 28px;
font-weight: 300;
line-height: 1;
opacity: 0.5;
outline: none;
}
.modal-header .close:hover {
opacity: 1;
}
.modal-title {
font-size: 22px;
font-weight: 700;
color: #393e46;
margin: 0;
}
.modal-body {
padding: 25px;
font-size: 16px;
line-height: 1.7;
color: #555555;
}
.modal-body img {
max-height: 250px;
width: auto;
max-width: 100%;
object-fit: contain;
margin: 0 auto 20px auto;
border-radius: 4px;
}
.modal-body p {
margin-bottom: 15px;
}
.modal-body p:last-child {
margin-bottom: 0;
}
.modal-footer {
padding: 15px 25px;
border-top: 1px solid #eeeeee;
}
.modal-footer .btn {
padding: 8px 25px;
font-size: 13px;
font-weight: 600;
letter-spacing: 1px;
}
/*# sourceMappingURL=style.css.map */ /*# sourceMappingURL=style.css.map */
Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 24 KiB

+137 -89
View File
@@ -178,8 +178,8 @@
</div> </div>
<div class="row row-bottom-padded-sm"> <div class="row row-bottom-padded-sm">
<div class="col-md-4 col-sm-6 col-xxs-12"> <div class="col-md-4 col-sm-6 col-xxs-12">
<a href="images/work_1.jpg" class="fh5co-project-item image-popup to-animate"> <a href="#modal-work-1" data-toggle="modal" data-target="#modal-work-1" class="fh5co-project-item to-animate">
<img src="images/work_1.jpg" alt="Image" class="img-responsive"> <img src="images/work_1.jpg" alt="Oracle Application Express" class="img-responsive">
<div class="fh5co-text"> <div class="fh5co-text">
<h2>Oracle Application Express</h2> <h2>Oracle Application Express</h2>
<span>De tool voor snelle applicatieontwikkeling en deployment. In recordtijd een werkende oplossing.</span> <span>De tool voor snelle applicatieontwikkeling en deployment. In recordtijd een werkende oplossing.</span>
@@ -187,8 +187,8 @@
</a> </a>
</div> </div>
<div class="col-md-4 col-sm-6 col-xxs-12"> <div class="col-md-4 col-sm-6 col-xxs-12">
<a href="images/work_2.jpg" class="fh5co-project-item image-popup to-animate"> <a href="#modal-work-2" data-toggle="modal" data-target="#modal-work-2" class="fh5co-project-item to-animate">
<img src="images/work_2.jpg" alt="Image" class="img-responsive"> <img src="images/work_2.jpg" alt="Oracle Database" class="img-responsive">
<div class="fh5co-text"> <div class="fh5co-text">
<h2>Oracle Database</h2> <h2>Oracle Database</h2>
<span>Database applicatieontwikkeling door onze Oracle certified professionals.</span> <span>Database applicatieontwikkeling door onze Oracle certified professionals.</span>
@@ -199,17 +199,17 @@
<div class="clearfix visible-sm-block"></div> <div class="clearfix visible-sm-block"></div>
<div class="col-md-4 col-sm-6 col-xxs-12"> <div class="col-md-4 col-sm-6 col-xxs-12">
<a href="images/work_3.jpg" class="fh5co-project-item image-popup to-animate"> <a href="#modal-work-3" data-toggle="modal" data-target="#modal-work-3" class="fh5co-project-item to-animate">
<img src="images/work_3.jpg" alt="Image" class="img-responsive"> <img src="images/work_3.jpg" alt="Web development" class="img-responsive">
<div class="fh5co-text"> <div class="fh5co-text">
<h2>Web development</h2> <h2>Web development</h2>
<span>Website onderhoud en ontwikkeling met nieuwe technieken als PHP, jQuery, bootstrap etc</span> <span>Website onderhoud en ontwikkeling met moderne technieken als React, HTML5, Kubernetes etc</span>
</div> </div>
</a> </a>
</div> </div>
<div class="col-md-4 col-sm-6 col-xxs-12"> <div class="col-md-4 col-sm-6 col-xxs-12">
<a href="images/work_4.jpg" class="fh5co-project-item image-popup to-animate"> <a href="#modal-work-4" data-toggle="modal" data-target="#modal-work-4" class="fh5co-project-item to-animate">
<img src="images/work_4.jpg" alt="Image" class="img-responsive"> <img src="images/work_4.jpg" alt="Multi-platform" class="img-responsive">
<div class="fh5co-text"> <div class="fh5co-text">
<h2>Multi-platform</h2> <h2>Multi-platform</h2>
<span>Oplossingen die aansluiten bij uw huidige omgeving, zonder hoge investeringen</span> <span>Oplossingen die aansluiten bij uw huidige omgeving, zonder hoge investeringen</span>
@@ -220,8 +220,8 @@
<div class="clearfix visible-sm-block"></div> <div class="clearfix visible-sm-block"></div>
<div class="col-md-4 col-sm-6 col-xxs-12"> <div class="col-md-4 col-sm-6 col-xxs-12">
<a href="images/work_5.jpg" class="fh5co-project-item image-popup to-animate"> <a href="#modal-work-5" data-toggle="modal" data-target="#modal-work-5" class="fh5co-project-item to-animate">
<img src="images/work_5.jpg" alt="Image" class="img-responsive"> <img src="images/work_5.jpg" alt="Overal en altijd" class="img-responsive">
<div class="fh5co-text"> <div class="fh5co-text">
<h2>Overal en altijd</h2> <h2>Overal en altijd</h2>
<span>Moderne oplossingen ongeacht tijd of plaats met behulp van hedendaagse apparatuur. Lokaal, in beheer of in de cloud.</span> <span>Moderne oplossingen ongeacht tijd of plaats met behulp van hedendaagse apparatuur. Lokaal, in beheer of in de cloud.</span>
@@ -229,8 +229,8 @@
</a> </a>
</div> </div>
<div class="col-md-4 col-sm-6 col-xxs-12"> <div class="col-md-4 col-sm-6 col-xxs-12">
<a href="images/work_6.jpg" class="fh5co-project-item image-popup to-animate"> <a href="#modal-work-6" data-toggle="modal" data-target="#modal-work-6" class="fh5co-project-item to-animate">
<img src="images/work_6.jpg" alt="Image" class="img-responsive"> <img src="images/work_6.jpg" alt="Integratie" class="img-responsive">
<div class="fh5co-text"> <div class="fh5co-text">
<h2>Integratie</h2> <h2>Integratie</h2>
<span>Systemen koppelen door integratie met behulp van technieken als ETL en webservices </span> <span>Systemen koppelen door integratie met behulp van technieken als ETL en webservices </span>
@@ -276,91 +276,27 @@
<h2 class="to-animate">Neem contact op</h2> <h2 class="to-animate">Neem contact op</h2>
<div class="row"> <div class="row">
<div class="col-md-8 col-md-offset-2 subtext to-animate"> <div class="col-md-8 col-md-offset-2 subtext to-animate">
<h3>Voor vrijblijvende informatie over onze diensten of het aanvragen van offertes kunt u direct contact met ons opnemen.</h3> <h3>Voor vrijblijvende informatie over onze diensten en aanvraag offertes kunt u contact met ons opnemen op de volgende manieren.</h3>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row row-bottom-padded-md"> <div class="row row-bottom-padded-md">
<div class="col-md-6 to-animate"> <div class="col-md-6 to-animate">
<div class="contact-card"> <h3>Contactgegevens</h3>
<div class="contact-card-header"> <ul class="fh5co-contact-info">
<h3>Contactgegevens</h3> <li><i class="icon-briefcase"></i>Eendoe Services B.V.</li>
<p>Heeft u een vraag of wilt u een project bespreken? Wij zijn eenvoudig bereikbaar.</p> <li class="fh5co-contact-address">
</div> <i class="icon-home"></i>Adriana van Roonlaan<br>2544 NM Den Haag
<ul class="contact-info-list"> </li>
<li class="contact-item"> <li><i class="icon-phone"></i><a href="tel:+31850091824">+31 (0)85 00 91 824</a></li>
<div class="contact-icon"> <li><i class="icon-envelope"></i><a href="mailto:info@eendoe.nl">info@eendoe.nl</a></li>
<i class="icon-briefcase"></i> <li><i class="icon-globe"></i><a href="https://eendoe.nl/" target="_blank">eendoe.nl</a></li>
</div> </ul>
<div class="contact-content">
<span class="contact-label">Organisatie</span>
<span class="contact-value">Eendoe Services B.V.</span>
</div>
</li>
<li class="contact-item">
<div class="contact-icon">
<i class="icon-home"></i>
</div>
<div class="contact-content">
<span class="contact-label">Vestigingsadres</span>
<span class="contact-value">Adriana van Roonlaan<br>2544 NM Den Haag</span>
</div>
</li>
<li class="contact-item">
<div class="contact-icon">
<i class="icon-phone"></i>
</div>
<div class="contact-content">
<span class="contact-label">Telefoon</span>
<a href="tel:+31850091824" class="contact-link">+31 (0)85 00 91 824</a>
</div>
</li>
<li class="contact-item">
<div class="contact-icon">
<i class="icon-envelope"></i>
</div>
<div class="contact-content">
<span class="contact-label">E-mail</span>
<a href="mailto:info@eendoe.nl" class="contact-link">info@eendoe.nl</a>
</div>
</li>
<li class="contact-item">
<div class="contact-icon">
<i class="icon-globe"></i>
</div>
<div class="contact-content">
<span class="contact-label">Website</span>
<a href="https://eendoe.nl/" target="_blank" rel="noopener noreferrer" class="contact-link">www.eendoe.nl</a>
</div>
</li>
</ul>
<div class="contact-meta">
<span class="contact-badge"><i class="icon-check"></i> KvK: 71 604 839</span>
<span class="contact-badge"><i class="icon-check"></i> BTW: NL858780100B01</span>
</div>
</div>
</div> </div>
<div class="col-md-6 to-animate"> <div class="col-md-6 to-animate">
<div class="contact-side-card"> <img src="images/contact.jpg" alt="Contact" class="img-responsive" />
<div class="contact-image-wrap">
<img src="images/contact.jpg" alt="Contact met Eendoe Services" class="img-responsive" />
<div class="contact-image-overlay"></div>
</div>
<div class="contact-cta-box">
<h4>Direct sparren over uw IT-omgeving?</h4>
<p>Wij denken graag met u mee over pragmatische en schaalbare oplossingen op maat.</p>
<div class="contact-actions">
<a href="mailto:info@eendoe.nl" class="btn-contact-primary">
<i class="icon-envelope"></i> Stuur een bericht
</a>
<a href="tel:+31850091824" class="btn-contact-outline">
<i class="icon-phone"></i> Bel direct
</a>
</div>
</div>
</div>
</div> </div>
</div> </div>
@@ -382,8 +318,120 @@
</div> </div>
</footer> </footer>
<!-- Work Modals -->
<div class="modal fade" id="modal-work-1" tabindex="-1" role="dialog" aria-labelledby="modal-work-1-title" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modal-work-1-title">Oracle Application Express (APEX)</h4>
</div>
<div class="modal-body">
<img src="images/work_1.jpg" alt="Oracle Application Express" class="img-responsive center-block">
<p>Met Oracle APEX bouwen en implementeren wij betrouwbare, schaalbare webapplicaties direct bovenop uw Oracle database. Dankzij de low-code architectuur ontwikkelen we maatwerkoplossingen in een fractie van de traditionele bouwtijd.</p>
<p>Ideaal voor het digitaliseren van bedrijfsprocessen, data-entry, rapportages en operationele dashboards zonder concessies aan veiligheid of performance.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-work-2" tabindex="-1" role="dialog" aria-labelledby="modal-work-2-title" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modal-work-2-title">Oracle Database</h4>
</div>
<div class="modal-body">
<img src="images/work_2.jpg" alt="Oracle Database" class="img-responsive center-block">
<p>Onze Oracle-gecertificeerde specialisten ontwerpen, optimaliseren en onderhouden robuuste database-omgevingen. Van relationele datamodellering, complexe SQL-queries en geavanceerde PL/SQL-businesslogica tot databasebeheer en performance tuning.</p>
<p>Wij borgen de continuïteit, veiligheid en betrouwbaarheid van uw bedrijfskritische bedrijfsdata.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-work-3" tabindex="-1" role="dialog" aria-labelledby="modal-work-3-title" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modal-work-3-title">Web development</h4>
</div>
<div class="modal-body">
<img src="images/work_3.jpg" alt="Web development" class="img-responsive center-block">
<p>Wij bouwen en onderhouden moderne, responsieve webapplicaties en portalen. Met beproefde en toekomstvaste technologieën zoals React, HTML5 en container-orkestratie via Kubernetes combineren we een prettige gebruikerservaring met schaalbare deployment.</p>
<p>Van frontend-ontwerp tot geautomatiseerde CI/CD pipelines en containerized hosting.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-work-4" tabindex="-1" role="dialog" aria-labelledby="modal-work-4-title" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modal-work-4-title">Multi-platform</h4>
</div>
<div class="modal-body">
<img src="images/work_4.jpg" alt="Multi-platform" class="img-responsive center-block">
<p>Oplossingen die naadloos aansluiten op uw bestaande infrastructuur. Of uw medewerkers nu werken op desktop, laptop, tablet of smartphone, en ongeacht het besturingssysteem (Windows, macOS, Linux, iOS of Android).</p>
<p>Wij zorgen voor consistente gebruiksvriendelijkheid en optimale toegankelijkheid zonder dat grote herinvesteringen in hardware nodig zijn.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-work-5" tabindex="-1" role="dialog" aria-labelledby="modal-work-5-title" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modal-work-5-title">Overal en altijd</h4>
</div>
<div class="modal-body">
<img src="images/work_5.jpg" alt="Overal en altijd" class="img-responsive center-block">
<p>Veilig, flexibel en efficiënt werken, ongeacht tijd of locatie. Wij adviseren, configureren en beheren omgevingen die meebewegen met uw organisatie: lokaal op uw eigen servers (on-premise), als managed service of in de cloud.</p>
<p>Met doordachte back-upstrategieën, monitoring en versleutelde verbindingen voor zorgeloos mobiel werken.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-work-6" tabindex="-1" role="dialog" aria-labelledby="modal-work-6-title" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="modal-work-6-title">Integratie</h4>
</div>
<div class="modal-body">
<img src="images/work_6.jpg" alt="Integratie" class="img-responsive center-block">
<p>Geen geïsoleerde datasilo's meer, maar naadloos op elkaar aangesloten bedrijfsprocessen. Wij koppelen verschillende softwaresystemen, databases en externe diensten aan elkaar.</p>
<p>Met behulp van gestandaardiseerde REST API's, webservices en betrouwbare ETL-processen (Extract, Transform, Load) stroomt uw data foutloos en geautomatiseerd door de organisatie.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
</div>
</div>
</div>
</div>
<!-- jQuery --> <!-- jQuery -->
<script src="js/jquery.min.js"></script> <script src="js/jquery.min.js"></script>
+109 -334
View File
@@ -1096,8 +1096,9 @@ h1, h2, h3, h4, h5, h6 {
#fh5co-contact { #fh5co-contact {
padding-bottom: 0; padding-bottom: 0;
position: relative; position: relative;
color: rgba(255, 255, 255, 0.85); color: rgba(255, 255, 255, 0.8);
background-color: #1a425b; background-color: $brand-primary;
@include fh5co-gradient;
.gradient { .gradient {
position: absolute; position: absolute;
@@ -1105,11 +1106,11 @@ h1, h2, h3, h4, h5, h6 {
bottom: 0; bottom: 0;
left: 0; left: 0;
right: 0; right: 0;
z-index: 1; z-index: 2;
opacity: .94; opacity: .9;
background-color: #1a425b; -webkit-backface-visibility: hidden;
background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0, #1c4b72), color-stop(1, #1e7a68)); background-color: $brand-primary;
background: linear-gradient(135deg, rgba(28, 75, 114, 0.95) 0%, rgba(30, 122, 104, 0.95) 100%); @include fh5co-gradient;
} }
.container { .container {
@@ -1117,347 +1118,63 @@ h1, h2, h3, h4, h5, h6 {
z-index: 4; z-index: 4;
} }
a { h3 {
color: $brand-primary; color: #fff;
text-decoration: none; margin-bottom: 25px;
@include transition(.3s); font-size: 26px;
&:hover { font-weight: 300;
color: #fff; }
.fh5co-contact-info {
padding: 0;
margin: 0 0 1.5em 0;
li {
position: relative;
padding: 0;
margin: 0 0 1.5em 0;
padding-left: 50px;
list-style: none;
font-size: 18px;
line-height: 1.6;
color: rgba(255, 255, 255, 0.9);
i {
position: absolute;
top: 3px;
left: 0;
font-size: 24px;
color: #fff;
}
a {
color: #fff;
text-decoration: underline;
@include transition(.3s);
&:hover {
color: #fff;
text-decoration: none;
}
}
} }
} }
img {
@include border-radius(7px);
}
.section-heading { .section-heading {
h2 { h2 {
color: #fff; color: #fff;
&:after { &:after {
background: $brand-primary; background: rgba(255, 255, 255, 0.3);
} }
} }
h3 { h3 {
color: rgba(255, 255, 255, 0.9); color: rgba(255, 255, 255, 0.8);
} }
} }
} }
/* Modern Contact Card */
.contact-card {
background: rgba(255, 255, 255, 0.1);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 16px;
padding: 35px 35px 30px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
margin-bottom: 30px;
color: #fff;
}
.contact-card-header {
margin-bottom: 25px;
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
padding-bottom: 18px;
h3 {
color: #fff;
font-size: 26px;
font-weight: 600;
margin: 0 0 8px 0;
}
p {
color: rgba(255, 255, 255, 0.85);
font-size: 15px;
margin: 0;
line-height: 1.5;
}
}
/* Contact Info List */
.contact-info-list {
list-style: none;
padding: 0;
margin: 0 0 25px 0;
}
.contact-item {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: flex-start;
align-items: flex-start;
padding: 12px 14px;
border-radius: 10px;
margin-bottom: 8px;
-webkit-transition: background 0.2s ease, -webkit-transform 0.2s ease;
transition: background 0.2s ease, transform 0.2s ease;
&:hover {
background: rgba(255, 255, 255, 0.08);
-webkit-transform: translateX(4px);
transform: translateX(4px);
.contact-icon {
background: $brand-primary;
color: #1a4a40;
box-shadow: 0 4px 12px rgba(82, 211, 170, 0.4);
}
}
}
.contact-icon {
width: 42px;
height: 42px;
min-width: 42px;
border-radius: 10px;
background: rgba(255, 255, 255, 0.18);
border: 1px solid rgba(255, 255, 255, 0.25);
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
margin-right: 16px;
color: $brand-primary;
font-size: 18px;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
}
.contact-content {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.contact-label {
display: block;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: rgba(255, 255, 255, 0.65);
margin-bottom: 2px;
}
.contact-value {
display: block;
font-size: 16px;
font-weight: 500;
color: #fff;
line-height: 1.4;
}
.contact-link {
display: inline-block;
font-size: 16px;
font-weight: 500;
color: #fff !important;
text-decoration: none !important;
border-bottom: 1px dashed rgba(255, 255, 255, 0.4);
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
&:hover, &:focus {
color: $brand-primary !important;
border-bottom-color: $brand-primary;
text-decoration: none !important;
}
}
/* Contact Badges / Meta */
.contact-meta {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
padding-top: 18px;
border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.contact-badge {
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.2);
padding: 6px 14px;
border-radius: 20px;
font-size: 13px;
font-weight: 500;
color: rgba(255, 255, 255, 0.95);
margin-right: 10px;
margin-bottom: 8px;
i {
color: $brand-primary;
margin-right: 6px;
font-size: 11px;
}
}
/* Contact Side Card (Right Column) */
.contact-side-card {
background: rgba(255, 255, 255, 0.1);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 16px;
overflow: hidden;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
margin-bottom: 30px;
height: 100%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
}
.contact-image-wrap {
position: relative;
overflow: hidden;
max-height: 250px;
img {
width: 100%;
height: 250px;
object-fit: cover;
-webkit-transition: -webkit-transform 0.5s ease;
transition: transform 0.5s ease;
}
}
.contact-side-card:hover .contact-image-wrap img {
-webkit-transform: scale(1.04);
transform: scale(1.04);
}
.contact-image-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0, rgba(0,0,0,0.1)), color-stop(1, rgba(20,50,75,0.7)));
background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, rgba(20,50,75,0.7) 100%);
}
.contact-cta-box {
padding: 30px 30px;
color: #fff;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-justify-content: center;
justify-content: center;
h4 {
color: #fff;
font-size: 22px;
font-weight: 600;
margin: 0 0 10px 0;
}
p {
color: rgba(255, 255, 255, 0.85);
font-size: 15px;
line-height: 1.6;
margin-bottom: 25px;
}
}
.contact-actions {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.btn-contact-primary {
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
background: $brand-primary;
color: #0d382d !important;
font-weight: 600;
font-size: 14px;
letter-spacing: 0.5px;
text-transform: none;
padding: 12px 22px;
border-radius: 8px;
border: 2px solid $brand-primary;
text-decoration: none !important;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
margin-right: 12px;
margin-bottom: 10px;
i {
margin-right: 8px;
font-size: 16px;
}
&:hover, &:focus {
background: #3ec095;
border-color: #3ec095;
color: #0d382d !important;
box-shadow: 0 6px 18px rgba(82, 211, 170, 0.4);
-webkit-transform: translateY(-2px);
transform: translateY(-2px);
}
}
.btn-contact-outline {
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
background: transparent;
color: #fff !important;
font-weight: 600;
font-size: 14px;
letter-spacing: 0.5px;
text-transform: none;
padding: 12px 22px;
border-radius: 8px;
border: 2px solid rgba(255, 255, 255, 0.6);
text-decoration: none !important;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
margin-bottom: 10px;
i {
margin-right: 8px;
font-size: 16px;
}
&:hover, &:focus {
background: rgba(255, 255, 255, 0.2);
border-color: #fff;
color: #fff !important;
-webkit-transform: translateY(-2px);
transform: translateY(-2px);
}
}
@media screen and (max-width: 768px) {
.contact-card {
padding: 25px 20px 20px;
}
.contact-cta-box {
padding: 24px 20px;
}
.btn-contact-primary, .btn-contact-outline {
width: 100%;
margin-right: 0;
}
}
.section-heading { .section-heading {
float: left; float: left;
@@ -1819,3 +1536,61 @@ h1, h2, h3, h4, h5, h6 {
// @include inline-block; // @include inline-block;
// } // }
// } // }
// Modals
.modal-content {
@include border-radius(6px);
border: none;
-webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.25);
box-shadow: 0 5px 25px rgba(0, 0, 0, 0.25);
}
.modal-header {
padding: 20px 25px 15px;
border-bottom: 1px solid #eeeeee;
.close {
font-size: 28px;
font-weight: 300;
line-height: 1;
opacity: 0.5;
outline: none;
&:hover {
opacity: 1;
}
}
}
.modal-title {
font-size: 22px;
font-weight: 700;
color: #393e46;
margin: 0;
}
.modal-body {
padding: 25px;
font-size: 16px;
line-height: 1.7;
color: #555555;
img {
max-height: 250px;
width: auto;
max-width: 100%;
object-fit: contain;
margin: 0 auto 20px auto;
@include border-radius(4px);
}
p {
margin-bottom: 15px;
&:last-child {
margin-bottom: 0;
}
}
}
.modal-footer {
padding: 15px 25px;
border-top: 1px solid #eeeeee;
.btn {
padding: 8px 25px;
font-size: 13px;
font-weight: 600;
letter-spacing: 1px;
}
}