/* =============================================
   PAGE-SPECIFIC STYLES
   Service pages, contact, location, etc.
   ============================================= */

/* ---- Service Page Content ---- */
.service-content {
    padding: var(--space-12) 0;
    background-color: var(--color-bg-light);
    background-image: radial-gradient(ellipse 80% 60% at 100% 100%, rgba(244, 78, 18, 0.06) 0%, transparent 70%);
}

.service-intro {
    font-size: var(--text-lg);
    color: var(--color-text-body);
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-8);
}

/* Tint shade options */
.service-content--illustrated {
    display: grid;
    gap: var(--space-8);
    align-items: start;
}

.service-content__copy {
    min-width: 0;
}

.service-content__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
}

@media (min-width: 992px) {
    .service-content--illustrated {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    }
}

.tint-shades {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    margin: var(--space-8) 0;
}

.shade-option {
    padding: 0;
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-primary);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.shade-option__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.shade-option h3 {
    margin-bottom: var(--space-2);
    padding: var(--space-5) var(--space-6) 0;
}

.shade-option .vlt {
    color: var(--color-primary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-3);
    padding: 0 var(--space-6);
}

.shade-option p:not(.vlt) {
    padding: 0 var(--space-6) var(--space-6);
}

/* Wrap types */
.wrap-types {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin: var(--space-8) 0;
}

.wrap-type {
    padding: var(--space-5);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
}

.wrap-type h3 {
    margin-bottom: var(--space-1);
}

.wrap-type .price {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-sm);
    margin-bottom: var(--space-2);
}

/* PPF packages */
.ppf-packages {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    margin: var(--space-8) 0;
}

.package-card {
    padding: 0;
    background-color: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.package-card__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.package-card h3,
.package-card .package-note,
.package-card ul {
    padding-left: var(--space-6);
    padding-right: var(--space-6);
}

.package-card h3 {
    padding-top: var(--space-5);
}

.package-card ul {
    padding-bottom: var(--space-6);
}

.package-card.featured {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}

.package-card h3 {
    margin-bottom: var(--space-2);
}

.package-note {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}

.package-card ul {
    list-style: none;
    padding: 0 var(--space-6);
    padding-bottom: var(--space-6);
}

.package-card li {
    padding: var(--space-2) 0;
    padding-left: var(--space-6);
    position: relative;
    font-size: var(--text-sm);
    border-bottom: 1px solid var(--color-bg-light-alt);
}

.package-card li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
}

/* Plate types */
.plate-types {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin: var(--space-8) 0;
}

.plate-type {
    padding: 0;
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.plate-type__image {
	width: 100%;
	height: 180px;
	object-fit: contain;
	display: block;
}

.plate-type h3,
.plate-type p {
    padding-left: var(--space-5);
    padding-right: var(--space-5);
}

.plate-type h3 {
    padding-top: var(--space-4);
}

.plate-type p:last-child {
    padding-bottom: var(--space-5);
}

/* Process steps */
.process-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin: var(--space-8) 0;
    counter-reset: step;
}

.step {
    display: flex;
    gap: var(--space-4);
    align-items: flex-start;
    padding: var(--space-5);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
}

.step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    background-color: var(--color-primary);
    color: var(--color-text-white);
    font-weight: var(--font-weight-bold);
    border-radius: var(--radius-full);
}

/* Caliper colours */
.caliper-colours {
    margin: var(--space-8) 0;
}

/* Trust brands */
.trust-brands {
    margin: var(--space-8) 0;
    padding: var(--space-6);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
}

/* Light options */
.light-options {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    margin: var(--space-8) 0;
}

.light-option {
    padding: var(--space-6);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-primary);
}

/* Appointment notice */
.appointment-notice {
    margin: var(--space-8) 0;
    padding: var(--space-6);
    background-color: var(--color-primary-light);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
}

/* Legal notice */
.legal-notice {
    margin: var(--space-8) 0;
    padding: var(--space-6);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-warning);
}

.legal-note {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-style: italic;
    margin-top: var(--space-4);
}

/* Additional options list */
.additional-options {
    list-style: disc;
    padding-left: var(--space-6);
}

.additional-options li {
    margin-bottom: var(--space-2);
}

/* ---- Contact Page ---- */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

.contact-info-item {
    margin-bottom: var(--space-6);
}

.contact-info-item h4 {
    color: var(--color-primary);
    margin-bottom: var(--space-2);
}

.contact-map {
    width: 100%;
    height: 350px;
    border: none;
    border-radius: var(--radius-md);
}

/* ---- Location Page ---- */
.location-services {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    margin: var(--space-6) 0;
}

.location-service-link {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
    color: var(--color-text-dark);
    font-weight: var(--font-weight-medium);
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.location-service-link:hover {
    background-color: var(--color-primary);
    color: var(--color-text-white);
}

.location-stat {
    padding: var(--space-6);
    background-color: var(--color-bg-light-alt);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--radius-md);
    color: var(--color-text-secondary);
    margin: var(--space-8) 0;
}

/* ---- Areas Covered Grid ---- */
.areas-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
    margin: var(--space-8) 0;
}

.area-card {
    display: flex;
    flex-direction: column;
    padding: var(--space-5) var(--space-6);
    background-color: var(--color-bg-light-alt);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-primary);
    color: var(--color-text-dark);
    text-decoration: none;
    transition: background-color var(--transition-fast), transform var(--transition-fast);
}

.area-card:hover {
    background-color: var(--color-primary);
    color: var(--color-text-white);
    transform: translateY(-2px);
}

.area-card__name {
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-lg);
}

.area-card__drive {
    font-size: var(--text-sm);
    opacity: 0.7;
    margin-top: var(--space-1);
}

/* ---- Enquiry Section ---- */
.enquiry-section {
    background-color: var(--color-bg-dark);
    padding: var(--space-12) 0;
}

.enquiry-section h2 {
    color: var(--color-text-white);
}

.enquiry-section p {
    color: var(--color-text-light);
}

/* ---- Brand Logos Strip (Homepage) ---- */
.brand-logos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 130px));
    justify-content: center;
    align-items: center;
    gap: var(--space-8);
}

.brand-logo {
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.gallery-brands {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--space-6);
    margin-top: var(--space-8);
}

.gallery-brands img {
    width: 130px;
    height: 100px;
    object-fit: contain;
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
}

.brand-logo img {
    display: block;
    height: 100px;
    width: 130px;
    object-fit: contain;
}

@media (min-width: 768px) {
    .brand-logos {
        grid-template-columns: repeat(4, minmax(0, 130px));
    }
}

/* ---- Welcome Section (Homepage) ---- */
.welcome-layout {
    display: grid;
    align-items: center;
    gap: var(--space-8);
}

.welcome-copy {
    min-width: 0;
}

.welcome-image {
    display: block;
    width: 100%;
    height: auto;
}

@media (min-width: 768px) {
    .welcome-layout {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    }
}

.welcome-section h1,
.welcome-section h2 {
    color: var(--color-primary);
    font-style: italic;
    font-weight: var(--font-weight-light);
    font-size: var(--text-3xl);
}

/* ---- Blog Grid & Cards ---- */
.blog-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    margin: var(--space-4) 0;
}

.blog-card {
    background-color: #fff;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.blog-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.blog-card__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.blog-card__image--placeholder {
    background-color: var(--color-bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-light);
    font-weight: var(--font-weight-semibold);
    font-size: var(--text-lg);
    text-decoration: none;
    opacity: 0.5;
}

.blog-card__content {
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.blog-card__date {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-2);
}

.blog-card__title {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-3);
    line-height: var(--leading-snug);
}

.blog-card__title a {
    color: var(--color-text-dark);
    text-decoration: none;
}

.blog-card__title a:hover {
    color: var(--color-primary);
}

.blog-card__excerpt {
    color: var(--color-text-body);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    margin-bottom: var(--space-4);
    flex: 1;
}

.blog-card__link {
    color: var(--color-primary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
}

.blog-card__link:hover {
    text-decoration: underline;
}

/* ---- Blog Article (Single Post) ---- */
.blog-article {
    max-width: 800px;
    margin: 0 auto;
}

.blog-article__meta {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding-bottom: var(--space-4);
    margin-bottom: var(--space-6);
    border-bottom: 1px solid var(--color-border);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.blog-article__author {
    font-weight: var(--font-weight-medium);
}

.blog-article__featured {
    width: 100%;
    max-width: 100%;
    border-radius: var(--radius-md);
    margin-bottom: var(--space-8);
}

.blog-article__content {
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    color: var(--color-text-body);
}

.blog-article__content h2 {
    margin-top: var(--space-8);
    margin-bottom: var(--space-4);
}

.blog-article__content h3 {
    margin-top: var(--space-6);
    margin-bottom: var(--space-3);
}

.blog-article__content p {
    margin-bottom: var(--space-4);
}

.blog-article__content img {
    max-width: 100%;
    border-radius: var(--radius-md);
    margin: var(--space-4) 0;
}

.blog-article__back {
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--color-border);
}

/* =============================================
   RESPONSIVE
   ============================================= */

@media (min-width: 576px) {
    .tint-shades {
        grid-template-columns: repeat(2, 1fr);
    }

    .wrap-types {
        grid-template-columns: repeat(2, 1fr);
    }

    .plate-types {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-steps {
        grid-template-columns: repeat(2, 1fr);
    }

    .light-options {
        grid-template-columns: repeat(2, 1fr);
    }

    .location-services {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 768px) {
    .brand-logo img {
        height: 50px;
    }

    .contact-grid {
        grid-template-columns: 1fr 1fr;
    }

    .areas-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .ppf-packages {
        grid-template-columns: repeat(3, 1fr);
    }

    .wrap-types {
        grid-template-columns: repeat(3, 1fr);
    }

    .process-steps {
        grid-template-columns: repeat(2, 1fr);
    }

    .location-services {
        grid-template-columns: repeat(3, 1fr);
    }

    .areas-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}
