Home / eCommerce / Roosmark Landing & Category FAQ Schema
Duplicate Snippet

Embed Snippet on Your Site

Roosmark Landing & Category FAQ Schema

Smart Schema Markup Landing pages

Code Preview
php
<?php
<?php
/**
 * ROOSMARK DYNAMIC LANDING PAGE TEMPLATE
 * Använd i WPCode (Code Snippets) som PHP snippet
 * Aktiveras automatiskt för alla sidor under /kopa-*-posters-* eller liknande
 * 
 * Installation:
 * 1. WPCode → Add Snippet → Custom Code (PHP)
 * 2. Klistra in denna kod
 * 3. Välj "Run Everywhere" eller villkor: URL contains "kopa-" eller "poster"
 * 4. Aktivera snippet
 */
// ===== KONFIGURATION =====
$ROOSMARK_CONFIG = array(
    'brand_colors' => array(
        'primary' => '#c8366b',
        'secondary' => '#2c3e50',
        'dark' => '#1a1a1a'
    ),
    'prices' => array(
        'small' => 299,    // 30×40 cm
        'medium' => 499,   // 50×70 cm
        'large' => 799     // 70×100 cm
    ),
    'shop_url' => 'https://roosmark.com/alla-posters-roosmark/',
    'charity_total' => '500,000',
    'charity_per_poster' => 15
);
// ===== BILDKATEGORIER (från PDF) =====
$IMAGE_CATEGORIES = array(
    'svartvita' => array(
        'https://roosmark.com/wp-content/uploads/2024/07/Marie-G-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Kattis-A-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Suzanne-R-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Lotta-E-Poster-CR.jpg'
    ),
    'natur' => array(
        'https://roosmark.com/wp-content/uploads/2024/08/natur-landskap-poster-1.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/natur-landskap-poster-2.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/berg-skog-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/hav-strand-poster.jpg'
    ),
    'vardsrum' => array(
        'https://roosmark.com/wp-content/uploads/2024/07/Marie-G-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Suzanne-R-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/vardagsrum-inredning-1.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/vardagsrum-inredning-2.jpg'
    ),
    'kok' => array(
        'https://roosmark.com/wp-content/uploads/2024/08/kok-citron-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/kok-italiensk-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/kok-frukt-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/kok-vin-poster.jpg'
    ),
    'sovrum' => array(
        'https://roosmark.com/wp-content/uploads/2024/08/sovrum-lugn-poster-1.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/sovrum-natur-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/sovrum-zen-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Lotta-E-Poster-CR.jpg'
    ),
    'barnrum' => array(
        'https://roosmark.com/wp-content/uploads/2024/08/barnrum-djur-poster-1.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/barnrum-alfabet-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/barnrum-safari-poster.jpg',
        'https://roosmark.com/wp-content/uploads/2024/08/barnrum-rymden-poster.jpg'
    ),
    'default' => array(
        'https://roosmark.com/wp-content/uploads/2024/07/Marie-G-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Kattis-A-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Suzanne-R-Poster-CR.jpg',
        'https://roosmark.com/wp-content/uploads/2024/07/Lotta-E-Poster-CR.jpg'
    )
);
// ===== FAQ-MALLAR PER KATEGORI =====
$FAQ_TEMPLATES = array(
    'svartvita' => array(
        array(
            'q' => 'Varför välja svartvita posters för hemmet?',
            'a' => 'Svartvita posters skapar en tidlös elegans och passar alla inredningsstilar. De är lätta att kombinera med färgglada textilier och möbler, och de går aldrig ur mode.'
        ),
        array(
            'q' => 'Vilken storlek passar bäst för svartvita posters?',
            'a' => 'För vardagsrum rekommenderas 70×100 cm eller 50×70 cm för maximal visuell effekt. I hall och sovrum fungerar 50×70 cm perfekt, medan 30×40 cm passar utmärkt i grupper eller på mindre väggar.'
        ),
        array(
            'q' => 'Hur hänger jag svartvita posters snyggt?',
            'a' => 'Skapa en gallery wall med 3-5 posters i olika storlekar, eller häng en stor 70×100 cm poster som statement piece. Använd vattenpass och mät 15-20 cm avstånd mellan ramarna för bäst resultat.'
        )
    ),
    'natur' => array(
        array(
            'q' => 'Varför är naturmotiv populära i heminredning?',
            'a' => 'Naturmotiv skapar lugn och harmoni i hemmet. Forskning visar att bilder av natur kan sänka stressnivåer och förbättra välbefinnandet, vilket gör dem perfekta för sovrum och vardagsrum.'
        ),
        array(
            'q' => 'Vilka rum passar bäst för naturposters?',
            'a' => 'Naturmotiv fungerar utmärkt i alla rum. Berglandskap och skog passar vardagsrum, havsmotiv i badrum och sovrum, medan botaniska prints är perfekta för kök och hall.'
        ),
        array(
            'q' => 'Hur kombinerar jag naturposters med modern inredning?',
            'a' => 'Välj naturmotiv i dämpade färger eller svartvitt för skandinavisk stil. Kombinera med naturliga material som trä, linne och gröna växter för en sammanhängande look.'
        )
    ),
    'vardsrum' => array(
        array(
            'q' => 'Vilken storlek poster passar mitt vardagsrum?',
            'a' => 'För väggar över soffa rekommenderas 70×100 cm eller panoramaformat. Mät väggen och välj en poster som täcker 2/3 av soffans bredd för bästa proportioner.'
        ),
        array(
            'q' => 'Hur skapar jag en gallery wall i vardagsrummet?',
            'a' => 'Börja med en stor 70×100 cm poster som mittfokus, komplettera med 2-4 mindre posters i 50×70 eller 30×40 cm. Håll 15-20 cm avstånd mellan ramarna och använd samma ramfärg för sammanhang.'
        ),
        array(
            'q' => 'Vilka färger passar vardagsrum 2025?',
            'a' => 'Tidlösa svartvita motiv är alltid säkra kort. För färg, välj jordnära toner som terracotta, beige och grönt, eller djupblått för ett modernt uttryck.'
        )
    ),
    'kok' => array(
        array(
            'q' => 'Vilka motiv passar bäst i köket?',
            'a' => 'Matrelaterade motiv som citroner, örter, vin och italienska scener är populära. Välj ljusa färger och enkla motiv som kompletterar din köksinteriör utan att kännas överväldigande.'
        ),
        array(
            'q' => 'Var ska jag hänga posters i köket?',
            'a' => 'Bästa platserna är ovanför matbordet, på väggen mittemot köksön, eller i ett hörn som behöver liv. Undvik direkt intill spis och diskbänk där fukt och fett kan påverka postern.'
        ),
        array(
            'q' => 'Hur skyddar jag posters i köket?',
            'a' => 'Välj ram med glas för att skydda mot stänk och fukt. Häng minst 50 cm från spis och diskho. Våra posters på 230g konstpapper tål normal köks-miljö när de är inramade.'
        )
    ),
    'sovrum' => array(
        array(
            'q' => 'Vilka färger främjar sömn i sovrummet?',
            'a' => 'Lugna färger som blått, grönt, beige och gråtoner har visat sig främja avslappning och bättre sömn. Undvik starka röda och orange nyanser som kan vara stimulerande.'
        ),
        array(
            'q' => 'Var ska posters placeras i sovrummet?',
            'a' => 'Bästa platsen är väggen ovanför sänggaveln. En stor 70×100 cm poster eller två 50×70 cm posters bredvid varandra skapar ett vackert fokus när du vaknar.'
        ),
        array(
            'q' => 'Hur skapar jag en harmonisk sovrumsvägg?',
            'a' => 'Välj 1-3 posters i samma färgpalett. Naturmotiv, abstrakta former eller minimalistiska motiv fungerar bäst. Undvik för många bilder - mindre är mer i sovrummet.'
        )
    ),
    'default' => array(
        array(
            'q' => 'Vilka storlekar finns på era posters?',
            'a' => 'Vi erbjuder tre populära storlekar: 30×40 cm (299 kr), 50×70 cm (499 kr) och 70×100 cm (799 kr). Alla trycks på 230g premium konstpapper för bästa kvalitet och hållbarhet.'
        ),
        array(
            'q' => 'Hur lång är leveranstiden?',
            'a' => 'Normal leveranstid är 2-4 arbetsdagar inom Sverige. Vi skickar från Stockholm och använder PostNord eller DHL. Spårning ingår i alla leveranser, och fri frakt gäller vid köp över 500 kr.'
        ),
        array(
            'q' => 'Kan jag returnera en poster?',
            'a' => 'Ja, vi har 30 dagars öppet köp. Om du inte är nöjd returnerar du postern i originalförpackning. Vi återbetalar hela beloppet inom 5-7 arbetsdagar efter att vi mottagit returen.'
        )
    )
);
// ===== HJÄLPFUNKTIONER =====
/**
 * Extraherar keyword från URL-slug
 */
function get_keyword_from_url() {
    $url = $_SERVER['REQUEST_URI'];
    
    // Ta bort trailing slash och .html
    $slug = basename($url);
    $slug = str_replace('.html', '', $slug);
    $slug = str_replace('-2', '', $slug); // Ta bort WordPress duplicates
    
    // Konvertera bindestreck till mellanslag
    $keyword = str_replace('-', ' ', $slug);
    
    // Ta bort vanliga prefix
    $keyword = preg_replace('/^(kopa|bestalla|billiga|premium)\s+/', '', $keyword);
    $keyword = preg_replace('/\s+(online|sverige|stockholm|2024|2025)$/', '', $keyword);
    
    return ucfirst(trim($keyword));
}
/**
 * Detekterar kategori från keyword
 */
function detect_category($keyword) {
    $keyword_lower = mb_strtolower($keyword);
    
    // Kontrollera matchningar
    if (strpos($keyword_lower, 'svartvit') !== false || strpos($keyword_lower, 'black white') !== false) {
        return 'svartvita';
    }
    if (strpos($keyword_lower, 'natur') !== false || strpos($keyword_lower, 'landskap') !== false || 
        strpos($keyword_lower, 'berg') !== false || strpos($keyword_lower, 'hav') !== false) {
        return 'natur';
    }
    if (strpos($keyword_lower, 'vardagsrum') !== false || strpos($keyword_lower, 'living') !== false) {
        return 'vardsrum';
    }
    if (strpos($keyword_lower, 'kök') !== false || strpos($keyword_lower, 'kitchen') !== false) {
        return 'kok';
    }
    if (strpos($keyword_lower, 'sovrum') !== false || strpos($keyword_lower, 'bedroom') !== false) {
        return 'sovrum';
    }
    if (strpos($keyword_lower, 'barnrum') !== false || strpos($keyword_lower, 'barn') !== false) {
        return 'barnrum';
    }
    
    return 'default';
}
/**
 * Hämtar bilder för kategori
 */
function get_category_images($category) {
    global $IMAGE_CATEGORIES;
    return isset($IMAGE_CATEGORIES[$category]) ? $IMAGE_CATEGORIES[$category] : $IMAGE_CATEGORIES['default'];
}
/**
 * Hämtar FAQs för kategori
 */
function get_category_faqs($category) {
    global $FAQ_TEMPLATES;
    return isset($FAQ_TEMPLATES[$category]) ? $FAQ_TEMPLATES[$category] : $FAQ_TEMPLATES['default'];
}
/**
 * Genererar dynamisk meta description
 */
function generate_meta_description($keyword) {
    return "Köp " . strtolower($keyword) . " online hos Roosmark. Premium posters på 230g konstpapper. Fri frakt över 500 kr, leverans 2-4 dagar. 15 kr per poster till välgörenhet.";
}
/**
 * Genererar dynamisk H1
 */
function generate_h1($keyword) {
    return ucfirst($keyword) . " – Premium Kvalitet från Roosmark";
}
/**
 * Genererar dynamisk H2
 */
function generate_h2($keyword, $category) {
    $category_texts = array(
        'svartvita' => 'Tidlösa svartvita fotografier som aldrig går ur stil',
        'natur' => 'Natursköna motiv som skapar harmoni i ditt hem',
        'vardsrum' => 'Perfekta posters för ett stilfullt vardagsrum',
        'kok' => 'Matinspirerade motiv för ditt kök',
        'sovrum' => 'Lugna motiv som främjar avslappning',
        'barnrum' => 'Glada och pedagogiska motiv för barnens rum',
        'default' => 'Originalf otografier på 230g premium konstpapper'
    );
    
    return isset($category_texts[$category]) ? $category_texts[$category] : $category_texts['default'];
}
/**
 * Escape för säker HTML output
 */
function esc($string) {
    return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
}
// ===== HUVUDLOGIK =====
// Hämta data
$keyword = get_keyword_from_url();
$category = detect_category($keyword);
$images = get_category_images($category);
$faqs = get_category_faqs($category);
$config = $ROOSMARK_CONFIG;
// Generera innehåll
$meta_description = generate_meta_description($keyword);
$h1 = generate_h1($keyword);
$h2 = generate_h2($keyword, $category);
$page_url = 'https://roosmark.com' . $_SERVER['REQUEST_URI'];
$canonical_url = $page_url;
// Featured image (första bilden)
$featured_image = $images[0];
// ===== HTML OUTPUT =====
?>
<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="<?php echo esc($meta_description); ?>">
    <meta name="keywords" content="<?php echo esc(strtolower($keyword)); ?>, posters online, roosmark, premium posters">
    <title><?php echo esc($keyword); ?> | Roosmark</title>
    
    <!-- Open Graph -->
    <meta property="og:title" content="<?php echo esc($keyword); ?> | Roosmark">
    <meta property="og:description" content="<?php echo esc($meta_description); ?>">
    <meta property="og:image" content="<?php echo esc($featured_image); ?>">
    <meta property="og:url" content="<?php echo esc($page_url); ?>">
    <meta property="og:type" content="website">
    <meta property="og:site_name" content="Roosmark">
    <meta property="og:locale" content="sv_SE">
    
    <!-- Twitter Cards -->
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="<?php echo esc($keyword); ?>">
    <meta name="twitter:description" content="<?php echo esc($meta_description); ?>">
    <meta name="twitter:image" content="<?php echo esc($featured_image); ?>">
    <meta name="twitter:site" content="@carolineroosmark">
    
    <!-- SEO Optimizations -->
    <link rel="canonical" href="<?php echo esc($canonical_url); ?>">
    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
    <meta name="author" content="Caroline Roosmark">
    <link rel="alternate" hreflang="sv" href="<?php echo esc($canonical_url); ?>">
    
    <!-- Preload Critical Resources -->
    <link rel="preload" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap" as="style">
    <link rel="preload" href="<?php echo esc($featured_image); ?>" as="image">
    
    <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=Open+Sans:wght@400;600;700&display=swap" rel="stylesheet">
    
    <!-- JSON-LD Structured Data -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Product",
      "name": "<?php echo esc($keyword); ?>",
      "description": "<?php echo esc($meta_description); ?>",
      "image": "<?php echo esc($featured_image); ?>",
      "brand": {
        "@type": "Brand",
        "name": "Roosmark"
      },
      "offers": {
        "@type": "AggregateOffer",
        "url": "<?php echo esc($config['shop_url']); ?>",
        "priceCurrency": "SEK",
        "lowPrice": "<?php echo $config['prices']['small']; ?>",
        "highPrice": "<?php echo $config['prices']['large']; ?>",
        "offerCount": "100",
        "availability": "https://schema.org/InStock",
        "priceValidUntil": "<?php echo date('Y-12-31'); ?>"
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.9",
        "reviewCount": "14000",
        "bestRating": "5",
        "worstRating": "1"
      }
    }
    </script>
    
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        <?php foreach ($faqs as $index => $faq): ?>
        {
          "@type": "Question",
          "name": "<?php echo esc($faq['q']); ?>",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "<?php echo esc($faq['a']); ?>"
          }
        }<?php echo ($index < count($faqs) - 1) ? ',' : ''; ?>
        <?php endforeach; ?>
      ]
    }
    </script>
    
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [{
        "@type": "ListItem",
        "position": 1,
        "name": "Hem",
        "item": "https://roosmark.com/"
      },{
        "@type": "ListItem",
        "position": 2,
        "name": "<?php echo esc($keyword); ?>",
        "item": "<?php echo esc($page_url); ?>"
      }]
    }
    </script>
    
    <style>
        /* Critical CSS */
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Georgia', serif; line-height: 1.6; color: #333; background: #fff; }
        html { scroll-behavior: smooth; }
        
        /* Progress Bar */
        .progress-container {
            position: fixed;
            top: 0;
            z-index: 10000;
            width: 100%;
            height: 4px;
            background: rgba(200, 54, 107, 0.1);
        }
        .progress-bar {
            height: 4px;
            background: linear-gradient(90deg, <?php echo $config['brand_colors']['primary']; ?> 0%, #a02d57 100%);
            width: 0%;
            transition: width 0.3s ease;
        }
        
        /* Back to Top */
        .back-to-top {
            position: fixed;
            bottom: 80px;
            right: 30px;
            width: 50px;
            height: 50px;
            background: <?php echo $config['brand_colors']['primary']; ?>;
            color: white;
            border: none;
            border-radius: 50%;
            cursor: pointer;
            font-size: 20px;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
            z-index: 1000;
        }
        .back-to-top.visible {
            opacity: 1;
            visibility: visible;
        }
        .back-to-top:hover {
            background: #a02d57;
            transform: translateY(-3px);
        }
        
        /* Hero Section */
        .hero { 
            background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%); 
            padding: 4rem 5% 3rem; 
            text-align: center; 
        }
        .hero-content { max-width: 900px; margin: 0 auto; }
        h1 { 
            font-size: 2.8rem; 
            margin-bottom: 1.5rem; 
            font-weight: 400; 
            line-height: 1.2; 
            color: <?php echo $config['brand_colors']['dark']; ?>; 
        }
        h2 { 
            font-size: 1.4rem; 
            color: #555; 
            font-weight: 400; 
            line-height: 1.6; 
            max-width: 700px; 
            margin: 0 auto; 
        }
        
        /* CTA Buttons */
        .cta-button {
            display: inline-block;
            background: <?php echo $config['brand_colors']['primary']; ?>;
            color: white;
            padding: 1.2rem 3rem;
            text-decoration: none;
            border-radius: 4px;
            font-weight: 600;
            font-size: 1.1rem;
            margin: 2rem 0;
            transition: all 0.3s ease;
            font-family: 'Open Sans', sans-serif;
        }
        .cta-button:hover {
            background: #a02d57;
            transform: translateY(-2px);
            box-shadow: 0 5px 20px rgba(200, 54, 107, 0.3);
        }
        
        /* USP Bar */
        .usp-bar { 
            background: #fff; 
            padding: 2rem 5%; 
            border-bottom: 1px solid #e0e0e0; 
        }
        .usp-content { 
            max-width: 1200px; 
            margin: 0 auto; 
            display: grid; 
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 
            gap: 2rem; 
            text-align: center; 
        }
        .usp-item { padding: 1rem; transition: transform 0.3s ease; }
        .usp-item:hover { transform: translateY(-5px); }
        .usp-icon { 
            font-size: 2.5rem; 
            margin-bottom: 0.8rem; 
            color: <?php echo $config['brand_colors']['primary']; ?>; 
        }
        .usp-title { 
            font-weight: 600; 
            margin-bottom: 0.5rem; 
            color: <?php echo $config['brand_colors']['primary']; ?>; 
            font-family: 'Open Sans', sans-serif; 
            font-size: 1rem; 
        }
        .usp-text { 
            font-size: 0.9rem; 
            color: <?php echo $config['brand_colors']['primary']; ?>; 
        }
        
        /* Gallery Section */
        .gallery-section {
            padding: 5rem 5%;
            background: #fff;
        }
        .gallery-wrapper {
            max-width: 1200px;
            margin: 0 auto;
        }
        .gallery-section h3 {
            font-size: 2.2rem;
            color: <?php echo $config['brand_colors']['dark']; ?>;
            margin-bottom: 3rem;
            text-align: center;
            font-weight: 400;
        }
        .gallery-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 2rem;
        }
        .gallery-item {
            position: relative;
            overflow: hidden;
            border-radius: 8px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .gallery-item:hover {
            transform: translateY(-8px);
            box-shadow: 0 8px 30px rgba(0,0,0,0.15);
        }
        .gallery-item img {
            width: 100%;
            height: 400px;
            object-fit: cover;
            display: block;
        }
        
        /* Social Proof Section */
        .social-proof {
            background: <?php echo $config['brand_colors']['primary']; ?>;
            color: white;
            padding: 3rem 5%;
            text-align: center;
        }
        .social-proof-content {
            max-width: 800px;
            margin: 0 auto;
        }
        .social-proof h3 {
            font-size: 2rem;
            margin-bottom: 1rem;
            font-weight: 400;
        }
        .social-stats {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 2rem;
            margin-top: 2rem;
        }
        .stat {
            padding: 1rem;
        }
        .stat-number {
            font-size: 2.5rem;
            font-weight: 700;
            display: block;
            margin-bottom: 0.5rem;
        }
        .stat-text {
            font-size: 1rem;
            opacity: 0.9;
        }
        
        /* FAQ Section */
        .faq-section {
            padding: 5rem 5%;
            background: #f8f8f8;
        }
        .faq-wrapper {
            max-width: 900px;
            margin: 0 auto;
        }
        .faq-section h3 {
            font-size: 2.2rem;
            color: <?php echo $config['brand_colors']['dark']; ?>;
            margin-bottom: 3rem;
            text-align: center;
            font-weight: 400;
        }
        .faq-item {
            background: white;
            padding: 2rem;
            margin-bottom: 1.5rem;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
        }
        .faq-question {
            font-size: 1.2rem;
            font-weight: 600;
            color: <?php echo $config['brand_colors']['primary']; ?>;
            margin-bottom: 1rem;
        }
        .faq-answer {
            line-height: 1.7;
            color: #555;
        }
        
        /* Footer CTA */
        .footer-cta {
            background: <?php echo $config['brand_colors']['secondary']; ?>;
            color: white;
            padding: 4rem 5%;
            text-align: center;
        }
        .footer-cta h3 {
            font-size: 2rem;
            margin-bottom: 1.5rem;
            font-weight: 400;
        }
        .footer-cta p {
            font-size: 1.2rem;
            margin-bottom: 2rem;
            opacity: 0.9;
        }
        
        /* Sticky Footer */
        .sticky-footer {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: white;
            padding: 1rem 5%;
            box-shadow: 0 -3px 15px rgba(0,0,0,0.1);
            z-index: 999;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .sticky-price {
            font-size: 1.3rem;
            font-weight: 700;
            color: <?php echo $config['brand_colors']['primary']; ?>;
        }
        .sticky-cta {
            background: <?php echo $config['brand_colors']['primary']; ?>;
            color: white;
            padding: 1rem 2.5rem;
            text-decoration: none;
            border-radius: 4px;
            font-weight: 600;
            transition: all 0.3s ease;
            font-family: 'Open Sans', sans-serif;
        }
        .sticky-cta:hover {
            background: #a02d57;
            transform: scale(1.05);
        }
        
        /* Responsive */
        @media (max-width: 768px) {
            h1 { font-size: 2rem; }
            h2 { font-size: 1.1rem; }
            .usp-content { grid-template-columns: 1fr; }
            .gallery-grid { grid-template-columns: 1fr; }
            .social-stats { grid-template-columns: 1fr; }
            .sticky-footer {
                flex-direction: column;
                gap: 1rem;
                padding: 1.5rem 5%;
            }
            .gallery-item img {
                height: 300px;
            }
        }
    </style>
</head>
<body>
    <!-- Progress Bar -->
    <div class="progress-container">
        <div class="progress-bar" id="progressBar"></div>
    </div>
    
    <!-- Back to Top Button -->
    <button class="back-to-top" id="backToTop" aria-label="Tillbaka till toppen">↑</button>
    
    <!-- Hero Section -->
    <section class="hero">
        <div class="hero-content">
            <h1><?php echo esc($h1); ?></h1>
            <h2><?php echo esc($h2); ?></h2>
            <a href="<?php echo esc($config['shop_url']); ?>" class="cta-button">Se Alla Posters →</a>
        </div>
    </section>
    
    <!-- USP Bar -->
    <section class="usp-bar">
        <div class="usp-content">
            <div class="usp-item">
                <div class="usp-icon">✓</div>
                <div class="usp-title">Premium Kvalitet</div>
                <div class="usp-text">230g konstpapper</div>
            </div>
            <div class="usp-item">
                <div class="usp-icon">🚚</div>
                <div class="usp-title">Snabb Leverans</div>
                <div class="usp-text">2-4 arbetsdagar</div>
            </div>
            <div class="usp-item">
                <div class="usp-icon">💝</div>
                <div class="usp-title">Välgörenhet</div>
                <div class="usp-text"><?php echo $config['charity_per_poster']; ?> kr per poster</div>
            </div>
            <div class="usp-item">
                <div class="usp-icon">↩️</div>
                <div class="usp-title">30 Dagars Retur</div>
                <div class="usp-text">Nöjd kund-garanti</div>
            </div>
        </div>
    </section>
    
    <!-- Gallery Section -->
    <section class="gallery-section">
        <div class="gallery-wrapper">
            <h3>Upptäck Våra <?php echo esc(ucfirst($keyword)); ?></h3>
            <div class="gallery-grid">
                <?php foreach ($images as $image): ?>
                <div class="gallery-item">
                    <img src="<?php echo esc($image); ?>" alt="<?php echo esc($keyword); ?> poster från Roosmark" loading="lazy">
                </div>
                <?php endforeach; ?>
            </div>
            <div style="text-align: center; margin-top: 3rem;">
                <a href="<?php echo esc($config['shop_url']); ?>" class="cta-button">Handla Nu →</a>
            </div>
        </div>
    </section>
    
    <!-- Social Proof -->
    <section class="social-proof">
        <div class="social-proof-content">
            <h3>Gör Skillnad Med Varje Köp</h3>
            <pver <?php echo esc($config['charity_total']); ?> kr donerat till välgörenhet</p>
            <div class="social-stats">
                <div class="stat">
                    <span class="stat-number">14,000+</span>
                    <span class="stat-text">Nöjda kunder</span>
                </div>
                <div class="stat">
                    <span class="stat-number">4.9/5</span>
                    <span class="stat-text">Genomsnittsbetyg</span>
                </div>
                <div class="stat">
                    <span class="stat-number">100+</span>
                    <span class="stat-text">Unika motiv</span>
                </div>
            </div>
        </div>
    </section>
    
    <!-- FAQ Section -->
    <section class="faq-section">
        <div class="faq-wrapper">
            <h3>Vanliga Frågor</h3>
            <?php foreach ($faqs as $faq): ?>
            <div class="faq-item">
                <div class="faq-question"><?php echo esc($faq['q']); ?></div>
                <div class="faq-answer"><?php echo esc($faq['a']); ?></div>
            </div>
            <?php endforeach; ?>
        </div>
    </section>
    
    <!-- Footer CTA -->
    <section class="footer-cta">
        <h3>Redo Att Förändra Ditt Hem?</h3>
        <p>Handla <?php echo strtolower(esc($keyword)); ?> med fri frakt över 500 kr</p>
        <a href="<?php echo esc($config['shop_url']); ?>" class="cta-button" style="background: white; color: <?php echo $config['brand_colors']['primary']; ?>;">Handla Nu →</a>
    </section>
    
    <!-- Sticky Footer -->
    <div class="sticky-footer">
        <div class="sticky-price">
            Från <?php echo $config['prices']['small']; ?> kr
        </div>
        <a href="<?php echo esc($config['shop_url']); ?>" class="sticky-cta">Köp Nu →</a>
    </div>
    
    <!-- JavaScript -->
    <script>
        // Progress bar
        window.addEventListener('scroll', function() {
            const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
            const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
            const scrolled = (winScroll / height) * 100;
            document.getElementById('progressBar').style.width = scrolled + '%';
            
            // Back to top button
            const backToTop = document.getElementById('backToTop');
            if (winScroll > 300) {
                backToTop.classList.add('visible');
            } else {
                backToTop.classList.remove('visible');
            }
        });
        
        // Back to top functionality
        document.getElementById('backToTop').addEventListener('click', function() {
            window.scrollTo({
                top: 0,
                behavior: 'smooth'
            });
        });
    </script>
</body>
</html>
<?php
// End of template
?>

Comments

Add a Comment