/*
Theme Name: Pizzapatrullen
Theme URI: https://www.pizzapatrullen.se
Author: Johan & Alfred
Description: Eget WordPress-tema för Pizzapatrullen. Byggs med Pizzapatrullen Core som funktionell bas.
Version: 0.7.2
Text Domain: pizzapatrullen
*/


/* =========================================================
   GRUND
   ========================================================= */

:root {
    --pp-bg: #f7f5f1;
    --pp-surface: #ffffff;
    --pp-text: #222222;
    --pp-muted: #707070;
    --pp-border: #e7e3dc;
    --pp-accent: #d94b2b;
    --pp-max-width: 1270px;
    --pp-radius: 6px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--pp-bg);
    color: var(--pp-text);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.6;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    color: var(--pp-accent);
}


/* =========================================================
   HEADER
   ========================================================= */

.pp-site-header {
    background: var(--pp-surface);
}

.pp-header-image-link {
    display: block;
    width: 100%;
}

.pp-header-image {
    width: 100%;
    height: 450px;
    object-fit: contain;
    object-position: center;
    background: #ffffff;
    display: block;
}


/* =========================================================
   NAVIGATION
   ========================================================= */

.pp-navigation {
    position: relative;
    z-index: 20;
    background: #ffffff;
    border-top: 1px solid var(--pp-border);
    border-bottom: 1px solid var(--pp-border);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.pp-nav-inner {
    min-height: 58px;
    display: flex;
    align-items: center;
}

.pp-main-nav {
    width: 100%;
}

.pp-main-nav > ul,
.pp-main-nav .menu {
    list-style: none;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    margin: 0;
    padding: 0;
}

.pp-main-nav li {
    position: relative;
    margin: 0;
}

.pp-main-nav a {
    display: flex;
    align-items: center;
    min-height: 58px;
    padding: 0 19px;
    color: var(--pp-text);
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

.pp-main-nav > ul > li > a:hover,
.pp-main-nav > ul > li.current-menu-item > a,
.pp-main-nav > ul > li.current_page_item > a,
.pp-main-nav .menu > li > a:hover,
.pp-main-nav .menu > li.current-menu-item > a,
.pp-main-nav .menu > li.current_page_item > a {
    background: #f4f1eb;
    color: var(--pp-accent);
}


/* Dropdown */

.pp-main-nav .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 190px;
    list-style: none;
    margin: 0;
    padding: 7px 0;
    background: #ffffff;
    border: 1px solid var(--pp-border);
    border-top: 2px solid var(--pp-accent);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition:
        opacity 0.15s ease,
        transform 0.15s ease,
        visibility 0.15s ease;
}

.pp-main-nav li:hover > .sub-menu,
.pp-main-nav li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pp-main-nav .sub-menu a {
    min-height: 42px;
    padding: 0 15px;
    font-size: 0.84rem;
    font-weight: 600;
}

.pp-main-nav .sub-menu a:hover,
.pp-main-nav .sub-menu .current-menu-item > a {
    background: #f7f5f1;
    color: var(--pp-accent);
}

.pp-main-nav .page_item_has_children > a::after,
.pp-main-nav .menu-item-has-children > a::after {
    content: "▾";
    margin-left: 7px;
    font-size: 0.7rem;
}

.pp-main-nav .sub-menu .page_item_has_children > a::after,
.pp-main-nav .sub-menu .menu-item-has-children > a::after {
    content: "›";
    margin-left: auto;
}

.pp-main-nav .sub-menu .sub-menu {
    top: -9px;
    left: 100%;
}

.pp-main-nav .current-menu-item > a {
    position: relative;
}

.pp-main-nav .current-menu-item > a::before {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 0;
    height: 3px;
    background: var(--pp-accent);
    border-radius: 3px 3px 0 0;
}


/* =========================================================
   MAIN
   ========================================================= */

.pp-site-main {
    padding-block: 32px 56px;
}

.pp-container {
    width: min(100% - 32px, var(--pp-max-width));
    margin-inline: auto;
}

.pp-content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
    align-items: start;
}

.pp-main-column,
.pp-sidebar {
    min-width: 0;
}


/* =========================================================
   KORT
   ========================================================= */

.pp-card,
.pp-sidebar-widget {
    background: var(--pp-surface);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
}

.pp-card {
    overflow: hidden;
}

.pp-card-content {
    padding: 24px;
}

.pp-sidebar-widget {
    padding: 20px;
    margin-bottom: 24px;
}

.pp-sidebar-widget:last-child {
    margin-bottom: 0;
}


/* =========================================================
   FOOTER
   ========================================================= */

.pp-site-footer {
    background: #202020;
    color: #ffffff;
    padding-block: 36px;
}

.pp-footer-inner {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}


/* =========================================================
   HOMEPAGE
   ========================================================= */

.pp-home-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
    align-items: start;
}

.pp-home-main,
.pp-home-sidebar {
    min-width: 0;
}

.pp-section-heading {
    margin-bottom: 22px;
}

.pp-section-heading h1 {
    margin: 0 0 4px;
    font-size: clamp(1.7rem, 3vw, 2.25rem);
    line-height: 1.15;
}

.pp-section-heading p {
    margin: 0;
    color: var(--pp-muted);
}

.pp-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.pp-review-card {
    background: var(--pp-surface);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
    overflow: hidden;
}

.pp-review-image {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #e9e5de;
}

.pp-review-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pp-review-placeholder {
    background: linear-gradient(135deg, #eee9df, #ddd5c7);
}

.pp-review-content {
    padding: 18px 20px 20px;
}

.pp-review-meta {
    margin-bottom: 5px;
    color: var(--pp-muted);
    font-size: 0.78rem;
}

.pp-review-content h2 {
    margin: 0 0 8px;
    font-size: 1.22rem;
    line-height: 1.25;
}

.pp-review-content p {
    margin: 0 0 14px;
    color: #555555;
    font-size: 0.93rem;
}

.pp-read-more {
    font-weight: 700;
    font-size: 0.88rem;
}

.pp-home-widget {
    background: var(--pp-surface);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
    padding: 20px;
    margin-bottom: 24px;
}

.pp-home-widget h2 {
    margin: 0 0 16px;
    color: #555555;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.25;
}


/* =========================================================
   CATEGORY CARDS
   ========================================================= */

.pp-category-list {
    display: grid;
    gap: 12px;
}

.pp-category-card {
    position: relative;
    min-height: 112px;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid var(--pp-border);
    border-radius: 5px;
    background-color: #ffffff;
    background-position: center;
    background-size: 100% auto;
    background-repeat: no-repeat;
    transition:
        transform 0.15s ease,
        border-color 0.15s ease;
}

.pp-category-card:hover {
    transform: translateY(-1px);
    border-color: #d6d0c6;
    color: var(--pp-text);
}

.pp-category-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.08);
}

.pp-category-card:not(.has-category-image) .pp-category-overlay {
    display: none;
}

.pp-category-card-content {
    position: relative;
    z-index: 1;
    align-self: flex-end;
    width: calc(100% - 20px);
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px;
    padding: 9px 11px;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.pp-category-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f1eee8;
    color: #222222;
    font-size: 0.95rem;
}

.pp-category-card strong,
.pp-category-card small {
    display: block;
}

.pp-category-card strong {
    color: #222222;
    font-size: 0.92rem;
    line-height: 1.2;
}

.pp-category-card small {
    margin-top: 2px;
    color: #555555;
    font-size: 0.74rem;
    line-height: 1.25;
}

.pp-category-card:not(.has-category-image) .pp-category-card-content {
    box-shadow: none;
}

.pp-about-widget p {
    margin: 0;
    color: #555555;
    font-size: 0.92rem;
}

.pp-empty-card {
    background: var(--pp-surface);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
    padding: 30px;
}

.pp-empty-card h2 {
    margin-top: 0;
}


/* =========================================================
   STATIC HOMEPAGE
   ========================================================= */

.pp-home {
    max-width: var(--pp-max-width);
    margin-inline: auto;
}

.pp-home-intro {
    background: var(--pp-surface);
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius);
    padding: clamp(34px, 6vw, 64px);
    margin-bottom: 38px;
    text-align: center;
}

.pp-home-intro-inner {
    max-width: 760px;
    margin-inline: auto;
}

.pp-home-kicker {
    margin: 0 0 8px;
    color: var(--pp-accent);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.pp-home-intro h1 {
    margin: 0 0 14px;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
}

.pp-home-lead {
    max-width: 680px;
    margin: 0 auto;
    color: #5d5d5d;
    font-size: clamp(1rem, 2vw, 1.15rem);
}

.pp-home-categories {
    margin-bottom: 44px;
}

.pp-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.pp-category-grid .pp-category-card {
    min-height: 155px;
}

.pp-home-content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
    align-items: start;
}

.pp-home-reviews,
.pp-home-sidebar {
    min-width: 0;
}

.pp-section-heading-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.pp-section-link {
    flex: 0 0 auto;
    font-size: 0.86rem;
    font-weight: 700;
    margin-bottom: 5px;
}

.pp-home-reviews .pp-section-heading h2,
.pp-home-categories .pp-section-heading h2 {
    margin: 0 0 4px;
    font-size: clamp(1.45rem, 3vw, 1.9rem);
}

.pp-home-reviews .pp-section-heading p,
.pp-home-categories .pp-section-heading p {
    margin: 0 0 20px;
}

.pp-review-content h3 {
    margin: 0 0 8px;
    font-size: 1.22rem;
    line-height: 1.25;
}


/* =========================================================
   CATEGORY ARCHIVES
   ========================================================= */

.pp-category-header {
    margin-bottom: 24px;
}

.pp-category-header-image {
    width: 100%;
    overflow: hidden;
    background: #e9e5de;
}

.pp-category-header-image img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.pp-category-description p:last-child {
    margin-bottom: 0;
}

.pp-category-post-grid {
    margin-bottom: 30px;
}


/* =========================================================
   PIZZERIA
   ========================================================= */

.pp-pizzeria-single {
    padding-block: 48px 56px;
}

.pp-pizzeria {
    width: min(100% - 32px, var(--pp-max-width));
    margin-inline: auto;
}


/* =========================================================
   PIZZERIA – ÖVRE INFORMATIONSKORT
   ========================================================= */

.pp-pizzeria-info-card {
    margin-bottom: 30px;
    background: #ffffff;
    border: 1px solid #ddd8d0;
    border-top: none !important;
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.pp-pizzeria-info-inner {
    padding: 32px;
}

.pp-pizzeria-kicker {
    margin-bottom: 2px;
    color: #c9c5be;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.pp-pizzeria-title {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 4vw, 3.4rem);
    line-height: 1.1;
}

.pp-pizzeria-location {
    margin-bottom: 4px;
    color: var(--pp-muted);
}

.pp-pizzeria-hours-summary,
.pp-pizzeria-phone {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 5px;
}

.pp-hours-icon,
.pp-phone-icon {
    flex: 0 0 auto;
}

.pp-pizzeria-phone a {
    font-weight: 600;
}

.pp-pizzeria-call-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 58px;
    margin-top: 22px;
    border-radius: 14px;
    background: #ed2024;
    color: #ffffff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
    font-weight: 700;
    box-shadow: 0 8px 20px rgba(237, 32, 36, 0.18);
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease;
}

.pp-pizzeria-call-button:hover {
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(237, 32, 36, 0.25);
}


/* =========================================================
   PIZZERIA – HUVUDLAYOUT
   ========================================================= */

/*
 * DESKTOP
 *
 * Rad 1:
 *   Huvudinnehåll | Snabbfakta
 *
 * Rad 2:
 *   Huvudinnehåll | Sidebar
 *
 * DOM-ordningen är:
 * Snabbfakta → Huvudinnehåll → Sidebar
 *
 * Grid-positionerna nedan gör att det ändå visas
 * på rätt plats på desktop.
 */

.pp-pizzeria-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 30px 32px;
    align-items: start;
}

.pp-pizzeria-main {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-width: 0;
}

.pp-quick-facts {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.pp-pizzeria-sidebar {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
}


/* =========================================================
   PIZZERIA – BESKRIVNING
   ========================================================= */

.pp-pizzeria-description {
    margin-bottom: 24px;
}

.pp-pizzeria-description .pp-card-content > *:first-child {
    margin-top: 0;
}

.pp-pizzeria-description .pp-card-content > *:last-child {
    margin-bottom: 0;
}


/* =========================================================
   PIZZERIA – SNABBFAKTA
   ========================================================= */

.pp-quick-facts {
    margin-bottom: 0;
}

.pp-quick-facts h2 {
    margin: 0 0 18px;
    font-size: 1.3rem;
}

.pp-facts-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pp-facts-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--pp-border);
}

.pp-facts-list li:first-child {
    padding-top: 0;
}

.pp-facts-list li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.pp-fact-icon {
    flex: 0 0 24px;
    font-size: 1rem;
    line-height: 1.5;
}

.pp-facts-list a {
    font-weight: 600;
}

.pp-facts-list a:hover {
    color: var(--pp-accent);
}


/* =========================================================
   PIZZERIA – RECENSIONER
   ========================================================= */

.pp-pizzeria-reviews {
    margin-bottom: 24px;
}

.pp-pizzeria-reviews h2 {
    margin: 0 0 20px;
    font-size: 1.3rem;
}

.pp-pizzeria-review-list {
    display: grid;
    gap: 24px;
}

.pp-pizzeria-review {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--pp-border);
}

.pp-pizzeria-review:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.pp-pizzeria-review h3 {
    margin: 0 0 10px;
    font-size: 1.15rem;
    line-height: 1.3;
}

.pp-pizzeria-review h3 a:hover {
    color: var(--pp-accent);
}

.pp-pizzeria-review img {
    width: 100%;
    max-width: 420px;
    margin-bottom: 12px;
    border-radius: var(--pp-radius);
}

.pp-pizzeria-review p {
    margin: 0 0 12px;
    color: #555555;
}

.pp-pizzeria-review .pp-read-more {
    display: inline-block;
}


/* =========================================================
   RESPONSIVE – TABLET / MOBIL
   ========================================================= */

@media (max-width: 900px) {

    .pp-content-layout,
    .pp-home-layout,
    .pp-home-content-layout,
    .pp-pizzeria-layout {
        grid-template-columns: 1fr;
    }


    /* -----------------------------------------------------
       PIZZERIA
       ----------------------------------------------------- */

    /*
     * På mobil följer elementen DOM-ordningen:
     *
     * Snabbfakta
     * Huvudinnehåll
     * Sidebar
     */

    .pp-quick-facts {
        grid-column: 1;
        grid-row: 1;
        order: 1;
    }

    .pp-pizzeria-main {
        grid-column: 1;
        grid-row: 2;
        order: 2;
    }

    .pp-pizzeria-sidebar {
        grid-column: 1;
        grid-row: 3;
        order: 3;
    }

    .pp-quick-facts {
        margin-bottom: 24px;
    }

    .pp-pizzeria-main {
        min-width: 0;
    }


    /* Övriga layouter */

    .pp-sidebar,
    .pp-home-sidebar {
        order: 2;
    }

    .pp-category-grid {
        grid-template-columns: 1fr 1fr;
    }

    .pp-review-grid {
        grid-template-columns: 1fr 1fr;
    }
}


/* =========================================================
   RESPONSIVE – MOBIL
   ========================================================= */

@media (max-width: 640px) {

    .pp-review-sidebar {
        margin-top: 0;
    }


    .pp-container {
        width: min(100% - 24px, var(--pp-max-width));
    }

    .pp-nav-inner {
        min-height: 50px;
    }

    .pp-main-nav > ul,
    .pp-main-nav .menu {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .pp-main-nav > ul::-webkit-scrollbar,
    .pp-main-nav .menu::-webkit-scrollbar {
        display: none;
    }

    .pp-main-nav a {
        min-height: 50px;
        white-space: nowrap;
        padding: 0 14px;
        font-size: 0.82rem;
    }

    .pp-main-nav .sub-menu {
        display: none;
    }


    /* Header */

    .pp-header-image {
        height: 250px;
    }


    /* Main */

    .pp-site-main {
        padding-block: 20px 40px;
    }

    .pp-pizzeria-single {
        padding-block: 24px 40px;
    }

    .pp-pizzeria {
        width: min(100% - 24px, var(--pp-max-width));
    }


    /* Pizzeria-kort */

    .pp-pizzeria-info-card {
        margin-bottom: 20px;
        border-radius: 14px;
    }

    .pp-pizzeria-info-inner {
        padding: 24px 20px;
    }

    .pp-pizzeria-title {
        font-size: clamp(2rem, 9vw, 2.7rem);
    }


    /* Kort */

    .pp-card-content {
        padding: 20px;
    }


    /* Kategorier */

    .pp-category-header-image {
        width: 100%;
        height: auto;
        aspect-ratio: auto;
    }

    .pp-category-header-image img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    .pp-category-grid {
        grid-template-columns: 1fr;
    }

    .pp-review-grid {
        grid-template-columns: 1fr;
    }


    /* Sektioner */

    .pp-section-heading-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }


    /* Övrigt */

    .pp-pizzeria-reviews,
    .pp-pizzeria-description {
        margin-bottom: 20px;
    }
}

/* =========================================================
   RECENSION – PIZZERIAKORT
   ========================================================= */

.pp-review-single-layout {
    align-items: start;
	max-width: 1270px;
    margin-inline: auto;
}

.pp-review-image-card {
    overflow: hidden;
}

.pp-review-single-image {
    display: block;
}

.pp-review-single-image img {
    width: 100%;
    height: auto;
    display: block;
}

.pp-review-pizzeria-card {
    margin-top: 0;
    overflow: hidden;
}

.pp-review-pizzeria-card .pp-card-content {
    padding: 24px 22px 22px;
}

.pp-review-pizzeria-card .pp-pizzeria-kicker {
    margin-bottom: 3px;
    color: #c9c5be;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.pp-review-pizzeria-card .pp-pizzeria-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 2.8rem);
    line-height: 1.08;
}

.pp-review-pizzeria-card .pp-pizzeria-title-icon {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.82em;
    line-height: 1;
}

.pp-review-pizzeria-card .pp-pizzeria-title a:hover {
    color: var(--pp-text);
}

.pp-review-pizzeria-card .pp-review-pizzeria-location {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-bottom: 7px;
    color: var(--pp-muted);
    font-size: 0.92rem;
}

.pp-review-pizzeria-card .pp-pizzeria-status {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 4px;
    font-size: 0.92rem;
}

.pp-review-pizzeria-card .pp-pizzeria-status-text.is-open {
    color: #279447;
    font-weight: 700;
}

.pp-review-pizzeria-card .pp-pizzeria-status-text.is-closed {
    color: #d62d2d;
    font-weight: 700;
}

.pp-review-closing-time {
    color: var(--pp-text);
}

.pp-review-pizzeria-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
}

.pp-review-pizzeria-actions .pp-pizzeria-action-button {
    min-width: 0;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 14px;
    border: 0;
    border-radius: 12px;
    color: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    box-shadow: none;
    transition: transform 0.15s ease, filter 0.15s ease;
}

.pp-review-pizzeria-actions .pp-pizzeria-action-button:hover {
    color: #ffffff;
    transform: translateY(-1px);
    filter: brightness(0.96);
}

.pp-review-pizzeria-actions .pp-pizzeria-call-button {
    background: #2fa34f;
    box-shadow: none;
    margin-top: 0;
    width: auto;
}

.pp-review-pizzeria-actions .pp-pizzeria-web-button {
    background: #ed2024;
}

.pp-review-pizzeria-actions .pp-pizzeria-map-button {
    background: #1976d2;
}

.pp-review-sidebar .pp-actions {
    display: none;
}

.pp-review-sidebar {
    margin-top: -36px;
}


.pp-snabbfakta-section-title {
    margin: 24px 0 14px;
    font-size: 1.08rem;
    line-height: 1.25;
}

.pp-review-sidebar .pp-opening-hours {
    color: #707070;
    font-size: 0.9rem;
    line-height: 1.58;
}

.pp-review-sidebar .pp-status {
    margin-top: 4px;
}

@media (max-width: 640px) {

    .pp-review-pizzeria-card .pp-card-content {
        padding: 22px 18px 20px;
    }

    .pp-review-pizzeria-card .pp-pizzeria-title {
        font-size: clamp(1.9rem, 9vw, 2.5rem);
    }

    .pp-review-pizzeria-actions {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 18px;
    }

    .pp-review-pizzeria-actions .pp-pizzeria-action-button {
        width: 100%;
        min-height: 54px;
    }

    .pp-info-card {
        border-top: none !important;
    }

    .pp-quick-facts {
        border-top: none !important;
    }

/* Recensionsetiketter ovanför hero */
    .pp-review-category-labels {
	    display: flex;
	    flex-wrap: wrap;
	    gap: 8px;
	    margin: 0 0 14px;
    }

.pp-review-category-labels .pp-review-category-label {
	    display: inline-flex;
	    align-items: center;
	    padding: 5px 10px;
	    border-radius: 5px;
        background: #1976d2 !important;
	    color: #fff;
	    font-size: 0.75rem;
	    font-weight: 700;
	    line-height: 1;
	    text-transform: uppercase;
	    letter-spacing: 0.04em;
    }
	
	/* Kategorisidans hero – håll den kompakt */
.pp-category-header-image {
	width: 100%;
	height: 220px !important;
	padding: 20px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #ffffff;
}

.pp-category-header-image img {
	display: block;
	width: auto !important;
	max-width: 100% !important;
	height: 180px !important;
	max-height: 180px !important;
	object-fit: contain !important;
	margin: 0 auto;
}

/* =========================================================
   PIZZAPATRULLEN – KATEGORI-WIDGET
   Ceris-inspirerad struktur, egen styling.
   ========================================================= */

.pp-category-widget { width: 100%; }
.pp-category-widget .pp-widget-title { display:flex; align-items:center; gap:14px; margin:0 0 18px; color:#555; font-size:1.05rem; font-weight:600; line-height:1.25; }
.pp-category-widget .pp-widget-title::after { content:""; flex:1; height:1px; background:#e1ded8; }
.pp-category-widget-list { display:flex; flex-direction:column; gap:16px; }
.pp-category-widget-item { display:block; width:100%; color:inherit; text-decoration:none; }
.pp-category-widget-wrap { position:relative; height:120px; overflow:hidden; background:#e9e5de; border-radius:8px; box-shadow:0 5px 14px rgba(0,0,0,.12); }
.pp-category-widget-background { position:absolute; inset:0; overflow:hidden; }
.pp-category-widget-image { display:block; width:100%; height:100% !important; object-fit:cover; transition:transform .2s ease; }
.pp-category-widget-background::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.08); pointer-events:none; }
.pp-category-widget-inner { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.pp-category-widget-text { width:100%; padding:12px 20px; text-align:center; }
.pp-category-widget-label { display:inline-flex; align-items:center; justify-content:center; padding:6px 11px; border-radius:4px; background:#1976d2; color:#fff; font-size:.75rem; font-weight:700; line-height:1; text-transform:uppercase; letter-spacing:.04em; box-shadow:0 2px 8px rgba(0,0,0,.16); }
.pp-category-widget-item:hover .pp-category-widget-image { transform:scale(1.025); }
.pp-category-widget-item:focus-visible .pp-category-widget-wrap { outline:2px solid #1976d2; outline-offset:3px; }
.pp-category-widget-no-image { background:#d9d4ca; }
@media (max-width:640px) { .pp-category-widget-list { gap:14px; } .pp-category-widget-wrap { height:110px; } }
