Redesign services as large alternating image+text sections
Replace small card grid with full-width service rows featuring large images, feature lists and CTA buttons for each product. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
BIN
images/service-building.jpg
Normal file
BIN
images/service-building.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
BIN
images/service-datacenter.jpg
Normal file
BIN
images/service-datacenter.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
BIN
images/service-network.jpg
Normal file
BIN
images/service-network.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
BIN
images/service-office.jpg
Normal file
BIN
images/service-office.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
113
index.html
113
index.html
@@ -54,50 +54,93 @@
|
||||
</section>
|
||||
|
||||
<!-- Palvelut -->
|
||||
<section id="palvelut" class="services">
|
||||
<!-- Palvelut -->
|
||||
<section id="palvelut" class="services-intro">
|
||||
<div class="container">
|
||||
<div class="section-header">
|
||||
<span class="overline">Palvelut</span>
|
||||
<h2>Yhteydet joka tarpeeseen</h2>
|
||||
<p>Toimitamme valokuituyhteydet avaimet käteen ‑periaatteella koko Suomeen. Kaikki yhteystemme ovat symmetrisiä — lataus- ja lähetysnopeus ovat aina samat.</p>
|
||||
<p>Toimitamme valokuituyhteydet avaimet käteen ‑periaatteella koko Suomeen.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="services-grid">
|
||||
<div class="service-card">
|
||||
<div class="service-icon">
|
||||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg>
|
||||
</div>
|
||||
<h3>Yritysliittymät</h3>
|
||||
<p>Luotettavat ja nopeat valokuituyhteydet kaikenkokoisille yrityksille. Kiinteä kaista, SLA-takuu ja tuki kun sitä tarvitset.</p>
|
||||
<span class="service-speed">1–100 Gbps</span>
|
||||
</div>
|
||||
<section class="service-row">
|
||||
<div class="service-row-inner">
|
||||
<div class="service-row-image">
|
||||
<img src="images/service-office.jpg" alt="Moderni toimisto">
|
||||
</div>
|
||||
<div class="service-row-content">
|
||||
<span class="service-row-number">01</span>
|
||||
<h2>Yritysliittymät</h2>
|
||||
<p>Luotettavat ja nopeat valokuituyhteydet kaikenkokoisille yrityksille. Kiinteä kaista ilman jaettua kapasiteettia — nopeus ei tipu ruuhka-aikaan.</p>
|
||||
<ul class="service-row-features">
|
||||
<li>Nopeudet 1–100 Gbps</li>
|
||||
<li>SLA-palvelutasotakuu</li>
|
||||
<li>Kiinteä ja taattu kaista</li>
|
||||
<li>Henkilökohtainen tuki</li>
|
||||
</ul>
|
||||
<a href="#saatavuus" class="btn">Pyydä tarjous</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="service-card">
|
||||
<div class="service-icon">
|
||||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="2" y="2" width="20" height="8" rx="2"/><rect x="2" y="14" width="20" height="8" rx="2"/><circle cx="6" cy="6" r="1" fill="currentColor"/><circle cx="6" cy="18" r="1" fill="currentColor"/></svg>
|
||||
</div>
|
||||
<h3>Konesaliyhteydet</h3>
|
||||
<p>Yhteydet omiin laitetiloihin ja kolmansien osapuolien konesaleihin. Skaalautuvat tarpeen mukaan aina 100 gigabittiin asti.</p>
|
||||
<span class="service-speed">Jopa 100 Gbps</span>
|
||||
</div>
|
||||
<section class="service-row service-row-reverse">
|
||||
<div class="service-row-inner">
|
||||
<div class="service-row-image">
|
||||
<img src="images/service-datacenter.jpg" alt="Konesali">
|
||||
</div>
|
||||
<div class="service-row-content">
|
||||
<span class="service-row-number">02</span>
|
||||
<h2>Konesaliyhteydet</h2>
|
||||
<p>Yhteydet omiin laitetiloihin ja kolmansien osapuolien konesaleihin. Skaalautuvat tarpeen mukaan aina 100 gigabittiin asti.</p>
|
||||
<ul class="service-row-features">
|
||||
<li>Jopa 100 Gbps</li>
|
||||
<li>Varmennetut ja kahdennetut reitit</li>
|
||||
<li>Cross-connect-toimitukset</li>
|
||||
<li>Joustava skaalautuvuus</li>
|
||||
</ul>
|
||||
<a href="#saatavuus" class="btn">Pyydä tarjous</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="service-card">
|
||||
<div class="service-icon">
|
||||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
|
||||
</div>
|
||||
<h3>Kiinteistöliittymät</h3>
|
||||
<p>Symmetriset kuituyhteydet taloyhtiöille. Etätyö, suoratoisto ja pelaaminen sujuvat ilman katkoja ja hidastumisia.</p>
|
||||
<span class="service-speed">Symmetrinen</span>
|
||||
</div>
|
||||
<section class="service-row">
|
||||
<div class="service-row-inner">
|
||||
<div class="service-row-image">
|
||||
<img src="images/service-building.jpg" alt="Kerrostalo">
|
||||
</div>
|
||||
<div class="service-row-content">
|
||||
<span class="service-row-number">03</span>
|
||||
<h2>Kiinteistöliittymät</h2>
|
||||
<p>Kuituyhteydet taloyhtiöille — etätyö, suoratoisto ja pelaaminen sujuvat ilman katkoja. Asennamme yhteydet avaimet käteen ‑periaatteella.</p>
|
||||
<ul class="service-row-features">
|
||||
<li>Symmetrinen nopeus</li>
|
||||
<li>Koko kiinteistölle kerralla</li>
|
||||
<li>Avaimet käteen ‑asennus</li>
|
||||
<li>Kilpailukykyinen hinnoittelu</li>
|
||||
</ul>
|
||||
<a href="#saatavuus" class="btn">Tarkista saatavuus</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="service-card">
|
||||
<div class="service-icon">
|
||||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/></svg>
|
||||
</div>
|
||||
<h3>IP-transit</h3>
|
||||
<p>Suora Internet-yhteys omalla AS-numerolla tai jaetulla reitityksellä. BGP-peering ja monipuoliset reititysratkaisut.</p>
|
||||
<span class="service-speed">Pyydä tarjous</span>
|
||||
</div>
|
||||
<section class="service-row service-row-reverse">
|
||||
<div class="service-row-inner">
|
||||
<div class="service-row-image">
|
||||
<img src="images/service-network.jpg" alt="Verkko">
|
||||
</div>
|
||||
<div class="service-row-content">
|
||||
<span class="service-row-number">04</span>
|
||||
<h2>IP-transit</h2>
|
||||
<p>Suora Internet-yhteys omalla AS-numerolla tai jaetulla reitityksellä. BGP-peering ja monipuoliset reititysratkaisut kaikenkokoisille operaattoreille.</p>
|
||||
<ul class="service-row-features">
|
||||
<li>BGP-peering</li>
|
||||
<li>Oma tai jaettu AS-numero</li>
|
||||
<li>Monipuoliset reititysvaihtoehdot</li>
|
||||
<li>Räätälöity kapasiteetti</li>
|
||||
</ul>
|
||||
<a href="#saatavuus" class="btn">Pyydä tarjous</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
147
style.css
147
style.css
@@ -336,65 +336,107 @@ img {
|
||||
margin-bottom: 28px;
|
||||
}
|
||||
|
||||
/* ---- Services ---- */
|
||||
.services {
|
||||
padding: 100px 0;
|
||||
/* ---- Services Intro ---- */
|
||||
.services-intro {
|
||||
padding: 100px 0 40px;
|
||||
background: var(--bg-alt);
|
||||
}
|
||||
|
||||
.services-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.service-card {
|
||||
/* ---- Service Rows ---- */
|
||||
.service-row {
|
||||
padding: 0;
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 32px 24px;
|
||||
transition: box-shadow 0.3s, transform 0.2s;
|
||||
}
|
||||
|
||||
.service-card:hover {
|
||||
box-shadow: 0 8px 30px rgba(0,0,0,0.06);
|
||||
transform: translateY(-2px);
|
||||
.service-row:nth-child(even) {
|
||||
background: var(--bg-alt);
|
||||
}
|
||||
|
||||
.service-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
.service-row-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
min-height: 500px;
|
||||
}
|
||||
|
||||
.service-row-reverse .service-row-inner {
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
.service-row-reverse .service-row-inner > * {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.service-row-image {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.service-row-image img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
transition: transform 0.5s ease;
|
||||
}
|
||||
|
||||
.service-row:hover .service-row-image img {
|
||||
transform: scale(1.03);
|
||||
}
|
||||
|
||||
.service-row-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
background: var(--orange-light);
|
||||
padding: 64px 80px;
|
||||
}
|
||||
|
||||
.service-row-number {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 700;
|
||||
color: var(--orange);
|
||||
border-radius: 12px;
|
||||
margin-bottom: 20px;
|
||||
letter-spacing: 0.05em;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.service-card h3 {
|
||||
font-size: 1.15rem;
|
||||
font-weight: 650;
|
||||
.service-row-content h2 {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
color: var(--dark);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.service-card p {
|
||||
font-size: 0.92rem;
|
||||
color: var(--text-light);
|
||||
line-height: 1.6;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.service-speed {
|
||||
display: inline-block;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--orange);
|
||||
padding: 4px 10px;
|
||||
.service-row-content p {
|
||||
font-size: 1.05rem;
|
||||
color: var(--text-light);
|
||||
line-height: 1.7;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.service-row-features {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0 0 32px;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.service-row-features li {
|
||||
font-size: 0.92rem;
|
||||
color: var(--text);
|
||||
padding-left: 24px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.service-row-features li::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 6px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: var(--orange-light);
|
||||
border-radius: 6px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid var(--orange);
|
||||
}
|
||||
|
||||
/* ---- Why ---- */
|
||||
@@ -641,7 +683,28 @@ img {
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
.services-grid {
|
||||
.service-row-inner {
|
||||
grid-template-columns: 1fr;
|
||||
min-height: auto;
|
||||
}
|
||||
|
||||
.service-row-reverse .service-row-inner {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.service-row-image {
|
||||
height: 280px;
|
||||
}
|
||||
|
||||
.service-row-content {
|
||||
padding: 40px 24px;
|
||||
}
|
||||
|
||||
.service-row-content h2 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.service-row-features {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user