Add interactive detail modals for work tiles and update work_3 graphic

This commit is contained in:
bart
2026-10-20 22:31:06 +02:00
parent 85cadf1040
commit b87d39e321
4 changed files with 367 additions and 759 deletions
+110 -335
View File
@@ -1096,8 +1096,9 @@ h1, h2, h3, h4, h5, h6 {
#fh5co-contact {
padding-bottom: 0;
position: relative;
color: rgba(255, 255, 255, 0.85);
background-color: #1a425b;
color: rgba(255, 255, 255, 0.8);
background-color: $brand-primary;
@include fh5co-gradient;
.gradient {
position: absolute;
@@ -1105,11 +1106,11 @@ h1, h2, h3, h4, h5, h6 {
bottom: 0;
left: 0;
right: 0;
z-index: 1;
opacity: .94;
background-color: #1a425b;
background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0, #1c4b72), color-stop(1, #1e7a68));
background: linear-gradient(135deg, rgba(28, 75, 114, 0.95) 0%, rgba(30, 122, 104, 0.95) 100%);
z-index: 2;
opacity: .9;
-webkit-backface-visibility: hidden;
background-color: $brand-primary;
@include fh5co-gradient;
}
.container {
@@ -1117,347 +1118,63 @@ h1, h2, h3, h4, h5, h6 {
z-index: 4;
}
a {
color: $brand-primary;
text-decoration: none;
@include transition(.3s);
&:hover {
color: #fff;
h3 {
color: #fff;
margin-bottom: 25px;
font-size: 26px;
font-weight: 300;
}
.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 {
h2 {
color: #fff;
&:after {
background: $brand-primary;
background: rgba(255, 255, 255, 0.3);
}
}
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 {
float: left;
@@ -1818,4 +1535,62 @@ h1, h2, h3, h4, h5, h6 {
// float: left;
// @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;
}
}