/* =============================================
   PRIME EVENTS — RESPONSIVE
   ============================================= */

/* ---- Laptop: max 1200px ---- */
@media only screen and (max-width: 1200px) {
    .pf-navbar-brand img { height: 78px; }
    .pf-header.scrolled .pf-navbar-brand img { height: 58px; }

    .pf-navbar-wrapper ul li a {
        padding: 10px 10px;
        letter-spacing: 0.16em;
    }

    .pf-hero-photos {
        flex: 0 0 400px;
        height: 500px;
    }

    .pf-hero-photo-main   { width: 280px; height: 392px; }
    .pf-hero-photo-accent { width: 210px; height: 260px; }

    .pf-story-inner { gap: 48px; }
    .pf-medallion { width: 250px; height: 250px; }
}

/* ---- Tablet: max 1024px ---- */
@media only screen and (max-width: 1024px) {
    .pf-cat-output [class*="tw-grid"],
    .pf-product-output [class*="tw-grid"] {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .pf-valueprop-grid { grid-template-columns: 1fr; }

    .pf-valueprop-card {
        border-right: none;
        border-left: none !important;
        border-bottom: 1px solid rgba(201, 150, 46, 0.14);
        padding: 40px 28px;
    }

    .pf-valueprop-card:first-child {
        border-top: 1px solid rgba(201, 150, 46, 0.14);
    }

    .pf-rent-grid { grid-template-columns: 1fr; }

    .pf-rent-card { padding: 38px 30px 32px; }

    .pf-nav-phone { display: none; }

    .pf-footer-top {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .pf-footer-logo img { height: 118px; margin: 0 auto; }
    .pf-footer-tagline { max-width: none; text-align: center; margin-inline: auto; }
}

/* ---- Tablet: max 991px ---- */
@media only screen and (max-width: 991px) {
    /* Nav: collapse to a drawer */
    .pf-navbar-collapse {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #000;
        border-top: 1px solid rgba(201, 150, 46, 0.25);
        border-bottom: 1px solid rgba(201, 150, 46, 0.25);
        padding: 12px 0 20px;
        z-index: 999;
        max-height: calc(100vh - 120px);
        overflow-y: auto;
    }

    .pf-navbar-collapse.open { display: block; }

    .pf-navbar-wrapper ul {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }

    .pf-navbar-wrapper ul li { width: 100%; }

    .pf-navbar-wrapper ul li a {
        padding: 13px 26px;
        font-size: var(--font-body-sm);
        letter-spacing: 0.2em;
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

    .pf-navbar-wrapper ul li a::after { display: none; }

    .pf-navbar-wrapper ul li > ul {
        position: static;
        display: none;
        background: rgba(201, 150, 46, 0.05);
        border: none;
        border-radius: 0;
        box-shadow: none;
        padding: 0 0 0 18px;
        min-width: 0;
    }

    .pf-navbar-wrapper ul li.open > ul { display: block; }

    .pf-navbar-toggler {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* With the links collapsed, group cart and toggler on the right
       instead of letting space-between strand the cart mid-header. */
    .pf-nav-right { margin-left: auto; }

    /* Hero: stack, drop the photo composition */
    .pf-hero-inner {
        flex-direction: column;
        gap: 0;
        text-align: center;
    }

    .pf-hero-photos { display: none; }

    .pf-hero-eyebrow,
    .pf-hero-cta,
    .pf-hero-contact { justify-content: center; }

    .pf-hero-subheading,
    .pf-hero-seo {
        margin-left: auto;
        margin-right: auto;
    }

    .pf-hero-heading { font-size: clamp(40px, 8vw, 62px); }

    .pf-hero-content { padding: 140px 0 80px; }

    /* Once the hero text is centred it sits over the decorative dot field,
       which reads as noise behind body copy. */
    .pf-hero-dots { display: none; }
    .pf-hero-ring-2 { display: none; }

    /* Story: stack */
    .pf-story-inner {
        grid-template-columns: 1fr;
        gap: 48px;
        text-align: center;
    }

    .pf-story-copy p { margin-inline: auto; }

    .pf-story-stats { justify-content: center; }

    .pf-hours-list li { padding: 18px 28px; }

    .pf-testimonials-section .carousel-item { padding: 0 24px; }
    .pf-testimonials-section .carousel-control-prev { left: -6px; }
    .pf-testimonials-section .carousel-control-next { right: -6px; }

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

/* ---- Mobile: max 768px ---- */
@media only screen and (max-width: 768px) {
    .pf-navbar-brand img { height: 62px; }
    .pf-header.scrolled .pf-navbar-brand img,
    .pf-subpage-body .pf-navbar-brand img { height: 52px; }

    .pf-cat-output [class*="tw-grid"],
    .pf-product-output [class*="tw-grid"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .pf-categories-section,
    .pf-featured-section,
    .pf-rent-section,
    .pf-story-section,
    .pf-hours-section,
    .pf-testimonials-section,
    .pf-cta-band {
        padding: 70px 0;
    }

    .pf-valueprop-section { padding: 0 0 56px; }

    .pf-section-header { margin-bottom: 42px; }

    .pf-section-eyebrow { letter-spacing: 0.26em; }

    /* Tighten the eyebrow so "Columbia, South Carolina / Family Owned"
       stays on one line instead of orphaning the starburst. */
    .pf-hero-eyebrow {
        font-size: 10px;
        letter-spacing: 0.13em;
        gap: 8px;
    }

    .pf-hero-content { padding: 124px 0 64px; }

    .pf-hero-cta {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .pf-btn-primary,
    .pf-btn-outline {
        width: 100%;
        justify-content: center;
    }

    .pf-cta-actions { flex-direction: column; align-items: stretch; }

    .pf-area-list li { letter-spacing: 0.2em; gap: 12px; }

    .pf-rent-art { width: 76px; height: 76px; }
    .pf-rent-card h3 { font-size: 28px; }

    .pf-medallion { width: 210px; height: 210px; }

    .pf-story-stat {
        padding-right: 22px;
        margin-right: 22px;
    }

    .pf-story-stat b { font-size: 32px; }

    .pf-hours-list li {
        padding: 16px 20px;
        font-size: var(--font-body-md);
    }

    .pf-hours-list li:hover { padding-left: 26px; }

    .pf-hours-time { font-size: 19px; }

    .pf-testimonials-section .carousel-caption h5,
    .pf-testimonials-section .carousel-caption h5 p { font-size: 21px; }

    .pf-footer { padding-top: 56px; }

    .pf-footer-bottom {
        flex-direction: column;
        text-align: center;
        gap: 14px;
    }

    .pf-footer-nav { justify-content: center; }
}

/* ---- Small mobile: max 480px ---- */
@media only screen and (max-width: 480px) {
    .container { padding-left: 18px; padding-right: 18px; }

    .pf-cat-output [class*="tw-grid"],
    .pf-product-output [class*="tw-grid"] {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .pf-cat-output [class*="tw-grid"] > div img { height: 132px !important; }
    .pf-product-output [class*="tw-group"] > div:first-child { height: 150px !important; }

    .pf-cat-output [class*="tw-grid"] > div h3 {
        font-size: var(--font-body-xs) !important;
        padding: 13px 8px !important;
        letter-spacing: 0.1em !important;
    }

    .pf-hero-subheading { font-size: var(--font-body-lg); }

    .pf-hero-contact {
        flex-direction: column;
        gap: 12px;
    }

    .pf-account-link { letter-spacing: 0.08em; }

    .pf-nav-right { gap: 14px; }

    .pf-area-list {
        gap: 6px 12px;
    }

    .pf-area-list li {
        font-size: var(--font-body-xs);
        letter-spacing: 0.14em;
        gap: 12px;
    }

    .pf-footer-cols { grid-template-columns: 1fr; gap: 30px; }

    .pf-story-stats { flex-direction: column; }

    .pf-story-stat {
        border-right: none;
        border-bottom: 1px solid rgba(201, 150, 46, 0.18);
        margin-right: 0;
        padding: 18px 0;
        width: 100%;
    }

    .pf-story-stat:last-child { border-bottom: none; }
}
