@import url("https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,600&family=Montserrat:wght@300;400;500;600;700&display=swap");
@import url(variable.css?v=20260925);

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    color: var(--color-primary);
    font-family: var(--font-secondary);
    font-size: var(--font-body-lg);
    line-height: 1.7;
    background-color: var(--bg-color);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    color: var(--color-primary);
    line-height: 1.15;
    font-weight: 600;
}

a {
    text-decoration: none;
}

img {
    max-width: 100%;
}

.container {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* =============================================
   HEADER / NAV
   ============================================= */
.pf-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    transition: background 0.4s ease, backdrop-filter 0.4s ease, box-shadow 0.4s ease;
}

.pf-header.scrolled,
.pf-subpage-body .pf-header {
    background: rgba(8, 6, 26, 0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 2px 40px rgba(0, 0, 0, 0.3);
}

.pf-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    gap: 24px;
}

/* Logo */
.pf-navbar-brand img {
    height: 90px;
    width: auto;
    display: block;
    /* Brand mark is navy artwork; render it white over the dark header */
    filter: brightness(0) invert(1);
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.pf-navbar-brand:hover img {
    opacity: 0.85;
}

/* Nav Links */
.pf-navbar-collapse {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: center;
}

.pf-navbar-wrapper ul {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 4px;
}

.pf-navbar-wrapper ul li {
    position: relative;
}

.pf-navbar-wrapper ul li a {
    display: block;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.85);
    padding: 8px 14px;
    transition: color 0.25s ease;
}

.pf-navbar-wrapper ul li a:hover {
    color: var(--color-secondary);
}

/* Dropdown */
.pf-navbar-wrapper ul li > ul {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    background: rgba(20, 16, 58, 0.97);
    backdrop-filter: blur(12px);
    border: var(--border-dark);
    border-top: 2px solid var(--color-secondary);
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    min-width: 200px;
    padding: 8px 0;
    list-style: none;
}

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

.pf-navbar-wrapper ul li > ul li a {
    padding: 10px 20px;
    font-size: var(--font-body-sm);
    white-space: nowrap;
    color: rgba(255, 255, 255, 0.75);
}

.pf-navbar-wrapper ul li > ul li a:hover {
    color: var(--color-secondary);
    background: rgba(201, 168, 76, 0.08);
}

/* Nav Right */
.pf-nav-right {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
}

.pf-cart-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.85);
    transition: color 0.25s;
    cursor: pointer;
}

.pf-cart-link:hover {
    color: var(--color-secondary);
}

.pf-cart-link svg {
    width: 22px;
    height: 22px;
}

.pf-cart-count {
    position: absolute;
    top: -6px;
    right: -8px;
    width: 18px;
    height: 18px;
    font-size: 10px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    border-radius: 50%;
    background: var(--color-secondary);
    color: var(--color-primary);
}

.pf-login-btn a {
    display: inline-block;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--button-text-color);
    background: var(--button-background-color);
    padding: 10px 24px;
    border-radius: var(--radius-full);
    border: 1px solid var(--button-border-color);
    transition: background 0.25s, color 0.25s;
    white-space: nowrap;
}

.pf-login-btn a:hover {
    color: var(--button-text-hover-color);
    background: var(--button-background-hover-color);
    border-color: var(--button-border-hover-color);
}

/* Mobile Toggle */
.pf-navbar-toggler {
    display: none;
    background: none;
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: var(--radius-sm);
    color: #fff;
    padding: 8px 10px;
    cursor: pointer;
    flex-shrink: 0;
}

.pf-navbar-toggler svg {
    display: block;
    width: 22px;
    height: 22px;
}

/* =============================================
   HERO SECTION
   ============================================= */
.pf-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--bg-dark);
}

/* Gradient background */
.pf-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 80% 60% at 20% 80%, rgba(228, 25, 139, 0.13) 0%, transparent 60%),
        radial-gradient(ellipse 60% 50% at 80% 20%, rgba(201, 168, 76, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse 100% 80% at 50% 50%, rgba(20, 16, 58, 0.8) 0%, transparent 100%),
        linear-gradient(160deg, #0E0A28 0%, #08061A 40%, #130B2E 70%, #08061A 100%);
    z-index: 0;
}

/* Gold orb top-right */
.pf-hero::after {
    content: "";
    position: absolute;
    top: -120px;
    right: -120px;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201, 168, 76, 0.12) 0%, transparent 70%);
    z-index: 0;
    pointer-events: none;
}

/* Decorative rings */
.pf-hero-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(201, 168, 76, 0.08);
    pointer-events: none;
    z-index: 0;
}

.pf-hero-ring-1 {
    width: 700px;
    height: 700px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.pf-hero-ring-2 {
    width: 1000px;
    height: 1000px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-color: rgba(201, 168, 76, 0.04);
}

.pf-hero-ring-3 {
    width: 400px;
    height: 400px;
    bottom: -80px;
    left: 10%;
    border-color: rgba(228, 25, 139, 0.08);
}

/* Hero dots */
.pf-hero-dots {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.pf-hero-dots::before {
    content: "";
    position: absolute;
    width: 300px;
    height: 300px;
    top: 15%;
    left: 5%;
    background-image:
        radial-gradient(circle, rgba(201, 168, 76, 0.35) 1.5px, transparent 1.5px);
    background-size: 28px 28px;
    mask-image: radial-gradient(ellipse 100% 100% at center, black 40%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 100% 100% at center, black 40%, transparent 80%);
}

.pf-hero-dots::after {
    content: "";
    position: absolute;
    width: 240px;
    height: 240px;
    bottom: 12%;
    right: 6%;
    background-image:
        radial-gradient(circle, rgba(228, 25, 139, 0.30) 1.5px, transparent 1.5px);
    background-size: 24px 24px;
    mask-image: radial-gradient(ellipse 100% 100% at center, black 40%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 100% 100% at center, black 40%, transparent 80%);
}

/* Hero Content */
.pf-hero-content {
    position: relative;
    z-index: 1;
    padding: 120px 0 80px;
    width: 100%;
}

/* Two-column inner layout */
.pf-hero-inner {
    display: flex;
    align-items: center;
    gap: 60px;
}

/* Left: text column */
.pf-hero-text {
    flex: 1 1 auto;
    min-width: 0;
}

.pf-hero-text .pf-hero-subheading {
    margin-left: 0;
    margin-right: 0;
    text-align: left;
}

.pf-hero-text .pf-hero-cta {
    justify-content: flex-start;
}

.pf-hero-text .pf-hero-contact {
    justify-content: flex-start;
}

/* Right: photo composition */
.pf-hero-photos {
    flex: 0 0 460px;
    position: relative;
    height: 540px;
    pointer-events: none;
}

.pf-hero-photo {
    position: absolute;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.65);
}

.pf-hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Main photo — larger, rotated slightly clockwise, back layer */
.pf-hero-photo-main {
    width: 310px;
    height: 430px;
    top: 20px;
    right: 0;
    border: 2px solid rgba(201, 168, 76, 0.3);
    transform: rotate(2deg);
    z-index: 2;
}

/* Accent photo — smaller, counter-rotated, front layer */
.pf-hero-photo-accent {
    width: 240px;
    height: 300px;
    bottom: 0;
    left: 10px;
    border: 2px solid rgba(201, 168, 76, 0.55);
    transform: rotate(-2.5deg);
    z-index: 3;
}

/* Gold pill label */
.pf-hero-photo-tag {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) rotate(-1deg);
    z-index: 4;
    background: var(--color-secondary);
    color: var(--color-primary);
    font-family: var(--font-secondary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 9px 20px;
    border-radius: 50px;
    box-shadow: 0 8px 28px rgba(201, 168, 76, 0.4);
    white-space: nowrap;
}

/* Stats badge */
.pf-hero-stat-badge {
    position: absolute;
    bottom: 24px;
    right: 0;
    z-index: 5;
    background: rgba(8, 6, 26, 0.82);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(201, 168, 76, 0.25);
    border-radius: 14px;
    padding: 14px 20px;
    text-align: center;
}

.pf-hero-stat-number {
    display: block;
    font-family: var(--font-primary);
    font-size: 30px;
    font-weight: 700;
    color: var(--color-secondary);
    line-height: 1;
}

.pf-hero-stat-label {
    display: block;
    font-family: var(--font-secondary);
    font-size: 10px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.55);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-top: 5px;
}

/* Circular Logo Badge */
.pf-hero-logo-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 48px;
}

.pf-hero-logo-badge {
    position: relative;
    width: 168px;
    height: 168px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Outer rotating ring */
.pf-hero-logo-badge::before {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    background: conic-gradient(
        from 0deg,
        rgba(201, 168, 76, 0.8) 0%,
        rgba(240, 213, 133, 0.4) 25%,
        rgba(201, 168, 76, 0.1) 50%,
        rgba(240, 213, 133, 0.4) 75%,
        rgba(201, 168, 76, 0.8) 100%
    );
    animation: pf-ring-spin 8s linear infinite;
}

/* Inner glow ring */
.pf-hero-logo-badge::after {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    background: var(--bg-dark);
    z-index: 0;
}

.pf-hero-logo-inner {
    position: relative;
    z-index: 1;
    width: 168px;
    height: 168px;
    border-radius: 50%;
    background: rgba(20, 16, 58, 0.7);
    backdrop-filter: blur(12px);
    border: 2px solid rgba(201, 168, 76, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 60px rgba(201, 168, 76, 0.15), inset 0 0 40px rgba(201, 168, 76, 0.06);
    overflow: hidden;
}

.pf-hero-logo-inner img {
    width: 130px;
    height: 130px;
    object-fit: contain;
    border-radius: 50%;
}

@keyframes pf-ring-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Hero badge label */
.pf-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-secondary);
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.25);
    border-radius: var(--radius-full);
    padding: 7px 20px;
    margin-bottom: 24px;
}

.pf-hero-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-tertiary);
    box-shadow: 0 0 10px rgba(228, 25, 139, 0.6);
    animation: pf-pulse 2s ease-in-out infinite;
}

@keyframes pf-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(0.8); }
}

/* Hero Heading */
.pf-hero-heading {
    font-family: var(--font-primary);
    font-size: clamp(46px, 7vw, 84px);
    font-weight: 700;
    line-height: 1.05;
    color: #ffffff;
    margin: 0 0 24px;
    letter-spacing: -0.01em;
}

.pf-hero-heading .pf-gold {
    color: var(--color-secondary);
    font-style: italic;
}

/* Hero subheading */
.pf-hero-subheading {
    font-family: var(--font-secondary);
    font-size: var(--font-body-xl);
    font-weight: 300;
    color: rgba(255, 255, 255, 0.65);
    max-width: 520px;
    margin: 0 auto 40px;
    line-height: 1.7;
}

/* Hero CTA group */
.pf-hero-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}

.pf-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--button-text-color);
    background: var(--button-background-color);
    padding: 16px 36px;
    border-radius: var(--radius-full);
    border: 2px solid var(--button-border-color);
    transition: all 0.3s ease;
    cursor: pointer;
    white-space: nowrap;
}

.pf-btn-primary:hover {
    background: var(--button-background-hover-color);
    border-color: var(--button-border-hover-color);
    color: var(--button-text-hover-color);
    transform: translateY(-2px);
    box-shadow: var(--shadow-pink);
}

.pf-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.85);
    background: transparent;
    padding: 16px 36px;
    border-radius: var(--radius-full);
    border: 2px solid rgba(255, 255, 255, 0.25);
    transition: all 0.3s ease;
    cursor: pointer;
    white-space: nowrap;
}

.pf-btn-outline:hover {
    border-color: var(--color-tertiary);
    color: var(--color-tertiary);
    transform: translateY(-2px);
}

/* Contact line in hero */
.pf-hero-contact {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
}

.pf-hero-contact a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 500;
    color: rgba(255, 255, 255, 0.5);
    transition: color 0.25s;
}

.pf-hero-contact a:hover {
    color: var(--color-secondary);
}

.pf-hero-contact svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* =============================================
   VALUE PROPS SECTION
   ============================================= */
.pf-valueprop-section {
    background: var(--bg-dark);
    padding: 80px 0;
    position: relative;
}

.pf-valueprop-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    border-top: 1px solid rgba(255,255,255,0.06);
}

.pf-valueprop-card {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(8px);
    padding: 48px 40px;
    text-align: center;
    transition: background 0.3s;
    border-right: 1px solid rgba(255,255,255,0.06);
    position: relative;
    overflow: hidden;
}

.pf-valueprop-card:last-child {
    border-right: none;
}

.pf-valueprop-card::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--color-secondary), transparent);
    transform: scaleX(0);
    transition: transform 0.4s ease;
}

.pf-valueprop-card:hover::before {
    transform: scaleX(1);
}

.pf-valueprop-card:hover {
    background: rgba(201, 168, 76, 0.05);
}

.pf-valueprop-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201, 168, 76, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    transition: all 0.3s;
}

.pf-valueprop-card:hover .pf-valueprop-icon {
    background: rgba(201, 168, 76, 0.18);
    box-shadow: 0 0 24px rgba(201, 168, 76, 0.2);
}

.pf-valueprop-icon svg {
    width: 28px;
    height: 28px;
    stroke: var(--color-secondary);
}

.pf-valueprop-card h4 {
    font-family: var(--font-primary);
    font-size: var(--h5);
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 12px;
}

.pf-valueprop-card p {
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    color: rgba(255, 255, 255, 0.5);
    margin: 0;
    line-height: 1.65;
}

/* =============================================
   SECTION HEADERS (shared)
   ============================================= */
.pf-section-header {
    text-align: center;
    margin-bottom: 56px;
}

.pf-section-eyebrow {
    display: inline-block;
    font-family: var(--font-secondary);
    font-size: var(--font-body-xs);
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-secondary);
    margin-bottom: 12px;
}

.pf-section-title {
    font-family: var(--font-primary);
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 700;
    color: var(--color-primary);
    margin: 0 0 16px;
    line-height: 1.12;
}

.pf-section-title .pf-gold-i {
    color: var(--color-secondary);
    font-style: italic;
}

/* Fervent pink: reserved for a single signature word, not a general accent */
.pf-section-title .pf-pink-i {
    color: var(--color-tertiary);
    font-style: italic;
}

.pf-section-desc {
    font-family: var(--font-secondary);
    font-size: var(--font-body-lg);
    color: rgba(8, 6, 26, 0.55);
    max-width: 540px;
    margin: 0 auto;
    line-height: 1.7;
}

/* On dark backgrounds */
.pf-section-title.light {
    color: #ffffff;
}

.pf-section-desc.light {
    color: rgba(255,255,255,0.5);
}

/* Divider line */
.pf-divider {
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-secondary), transparent);
    margin: 16px auto 0;
    border-radius: 2px;
}

/* =============================================
   PRODUCT CATEGORIES
   ============================================= */
.pf-categories-section {
    background: var(--bg-color);
    padding: 100px 0;
}

/* .pf-cat-grid removed — global system uses Bootstrap grid */

.pf-cat-card {
    display: block;
    text-decoration: none;
    border-radius: var(--radius-md);
    overflow: hidden;
    border: var(--border-card);
    background: var(--bg-card);
    transition: all 0.35s ease;
    cursor: pointer;
    position: relative;
}

.pf-cat-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-hover);
    border-color: rgba(201, 168, 76, 0.3);
}

.pf-cat-img-wrap {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--bg-muted);
}

.pf-cat-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}

.pf-cat-card:hover .pf-cat-img-wrap img {
    transform: scale(1.06);
}

.pf-cat-label {
    padding: 16px;
    text-align: center;
}

.pf-cat-label h6 {
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 600;
    color: var(--color-primary);
    margin: 0;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.pf-cat-card:hover .pf-cat-label h6 {
    color: var(--color-secondary);
}

/* View All Categories button */
.pf-view-all-wrap {
    text-align: center;
    margin-top: 44px;
}

.pf-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--button-background-color);
    background: transparent;
    padding: 14px 32px;
    border-radius: var(--radius-full);
    border: 2px solid var(--button-border-color);
    transition: all 0.3s ease;
    cursor: pointer;
}

.pf-btn-secondary:hover {
    background: var(--button-background-color);
    color: var(--button-text-color);
    transform: translateY(-2px);
    box-shadow: var(--shadow-pink);
}

.pf-btn-secondary svg {
    width: 16px;
    height: 16px;
    transition: transform 0.3s;
}

.pf-btn-secondary:hover svg {
    transform: translateX(4px);
}

/* =============================================
   USE CASES / SERVICES
   ============================================= */
.pf-services-section {
    padding: 100px 0;
    background: var(--bg-dark);
    position: relative;
    overflow: hidden;
}

.pf-services-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(228, 25, 139, 0.08) 0%, transparent 60%),
        radial-gradient(ellipse 40% 40% at 100% 0%, rgba(201, 168, 76, 0.08) 0%, transparent 60%);
    pointer-events: none;
}

.pf-services-content {
    position: relative;
    z-index: 1;
}

.pf-services-intro {
    max-width: 640px;
    margin: 0 auto 56px;
    text-align: center;
}

.pf-services-intro h2 {
    font-family: var(--font-primary);
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 16px;
    line-height: 1.15;
}

.pf-services-intro p {
    font-family: var(--font-secondary);
    font-size: var(--font-body-lg);
    color: rgba(255,255,255,0.5);
    margin: 0;
    line-height: 1.7;
}

.pf-services-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.pf-service-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 500;
    color: rgba(255,255,255,0.75);
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--radius-full);
    padding: 10px 22px;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
}

.pf-service-tag:hover {
    background: rgba(201, 168, 76, 0.12);
    border-color: rgba(201, 168, 76, 0.4);
    color: var(--color-secondary);
    transform: translateY(-2px);
}

.pf-service-tag svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    flex-shrink: 0;
}

/* =============================================
   FEATURED PRODUCTS
   ============================================= */
.pf-featured-section {
    padding: 100px 0;
    background: var(--bg-color);
    position: relative;
}

.pf-trending-badge {
    display: inline-block;
    font-family: var(--font-secondary);
    font-size: var(--font-body-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-color-first);
    background: rgba(228, 25, 139, 0.08);
    border: 1px solid rgba(228, 25, 139, 0.22);
    border-radius: var(--radius-full);
    padding: 5px 16px;
    margin-bottom: 16px;
}

/* .pf-product-grid removed — global system uses Bootstrap grid */

.pf-product-card {
    background: var(--bg-card);
    border-radius: var(--radius-md);
    border: var(--border-card);
    overflow: hidden;
    transition: all 0.35s ease;
    cursor: pointer;
    position: relative;
}

.pf-product-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-hover);
    border-color: rgba(201, 168, 76, 0.25);
}

.pf-product-img-wrap {
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--bg-muted);
    position: relative;
}

.pf-product-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}

.pf-product-card:hover .pf-product-img-wrap img {
    transform: scale(1.06);
}

.pf-product-info {
    padding: 16px;
}

.pf-product-name {
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 500;
    color: var(--color-primary);
    margin: 0 0 6px;
    line-height: 1.4;
}

.pf-product-price {
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 700;
    color: var(--color-secondary);
    margin: 0;
}

/* =============================================
   HOURS OF OPERATION
   ============================================= */
.pf-hours-section {
    padding: 100px 0;
    background: var(--bg-dark-alt);
    position: relative;
    overflow: hidden;
}

.pf-hours-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 50% 60% at 50% 50%, rgba(201, 168, 76, 0.06) 0%, transparent 70%);
    pointer-events: none;
}

.pf-hours-inner {
    position: relative;
    z-index: 1;
    max-width: 680px;
    margin: 0 auto;
    text-align: center;
}

.pf-hours-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(201,168,76,0.15);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 40px;
}

.pf-hours-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pf-hours-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 40px;
    border-top: 1px solid rgba(255,255,255,0.05);
    font-family: var(--font-secondary);
    font-size: var(--font-body-lg);
    font-weight: 400;
    color: rgba(255,255,255,0.7);
    transition: background 0.25s;
}

.pf-hours-list li:first-child {
    border-top: none;
}

.pf-hours-list li:hover {
    background: rgba(201, 168, 76, 0.06);
}

.pf-hours-day {
    font-weight: 500;
    color: rgba(255,255,255,0.85);
}

.pf-hours-time {
    color: var(--color-secondary);
    font-weight: 600;
    font-size: var(--font-body-md);
    letter-spacing: 0.04em;
}

.pf-hours-btn-wrap {
    text-align: center;
}

/* =============================================
   TESTIMONIALS
   ============================================= */
.pf-testimonials-section {
    padding: 100px 0;
    background: var(--bg-color);
    position: relative;
}

.pf-testimonials-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(201,168,76,0.4), transparent);
}

.pf-stars {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-bottom: 24px;
}

.pf-stars svg {
    width: 22px;
    height: 22px;
    fill: var(--color-secondary);
    stroke: none;
}

/* Bootstrap carousel overrides */
.pf-testimonials-section .carousel {
    max-width: 700px;
    margin: 0 auto;
}

.pf-testimonials-section .carousel-item {
    text-align: center;
    padding: 0 48px;
}

.pf-testimonials-section .carousel-caption {
    position: static;
    color: var(--color-primary);
    padding: 0;
}

.pf-testimonials-section .carousel-caption h5,
.pf-testimonials-section .carousel-caption h5 p {
    font-family: var(--font-primary);
    font-size: clamp(20px, 2.5vw, 26px);
    font-weight: 500;
    font-style: italic;
    color: var(--color-primary);
    line-height: 1.55;
    margin-bottom: 24px;
}

.pf-testimonial-divider {
    width: 48px;
    height: 2px;
    background: var(--color-secondary);
    margin: 0 auto 16px;
    border-radius: 2px;
}

.pf-testimonials-section .carousel-caption > p {
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-secondary);
}

.pf-testimonials-section .carousel-control-prev,
.pf-testimonials-section .carousel-control-next {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(201, 168, 76, 0.1);
    border: 1px solid rgba(201,168,76,0.25);
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
    transition: all 0.25s;
}

.pf-testimonials-section .carousel-control-prev {
    left: -24px;
}

.pf-testimonials-section .carousel-control-next {
    right: -24px;
}

.pf-testimonials-section .carousel-control-prev:hover,
.pf-testimonials-section .carousel-control-next:hover {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
}

.pf-testimonials-section .carousel-control-prev-icon {
    background-image: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pf-testimonials-section .carousel-control-next-icon {
    background-image: none;
    background: transparent;
}

/* =============================================
   FOOTER
   ============================================= */
.pf-footer {
    background: var(--bg-dark);
    padding: 60px 0 32px;
    position: relative;
    overflow: hidden;
}

.pf-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(201,168,76,0.4), transparent);
}

.pf-footer-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    text-align: center;
}

.pf-footer-logo img {
    height: 76px;
    width: auto;
    display: inline-block;
    /* Brand mark is navy artwork; render it white over the dark footer */
    filter: brightness(0) invert(1);
}

.pf-footer-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 24px 0;
    border-top: 1px solid rgba(255,255,255,0.06);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    width: 100%;
    max-width: 480px;
}

.pf-footer-nav li a {
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 400;
    color: rgba(255,255,255,0.45);
    transition: color 0.25s;
}

.pf-footer-nav li a:hover {
    color: var(--color-secondary);
}

.pf-footer-copy {
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    color: rgba(255,255,255,0.3);
    margin: 0;
}

.pf-footer-copy a {
    color: rgba(255,255,255,0.4);
    transition: color 0.25s;
}

.pf-footer-copy a:hover {
    color: var(--color-secondary);
}

/* =============================================
   GLOBAL SYSTEM OVERRIDES
   The PRS system outputs Tailwind tw-* prefixed classes.
   Target with attribute selectors since global CSS is not
   loaded in demo; these rules force the correct layout.
   ============================================= */

/* ---- Search container (rendered before category cards) ---- */
.pf-cat-output #search-container {
    margin-bottom: 40px;
    text-align: center;
}

/* Hide any rogue badge / notification element injected into the search area */
.pf-cat-output #search-container > :not(div),
.pf-cat-output #search-container .badge,
.pf-cat-output #search-container [class*="badge"],
.pf-cat-output #search-container [class*="notification"],
.pf-cat-output #search-container [class*="count"]:not(input):not(button) {
    display: none !important;
}

/* Inner flex row: input + button */
.pf-cat-output #search-container > div:first-child {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    border: 1px solid rgba(201, 168, 76, 0.35) !important;
    border-radius: var(--radius-full) !important;
    padding: 6px 8px 6px 20px !important;
    background: #fff !important;
    max-width: 520px !important;
    width: 100% !important;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
}

.pf-cat-output #search-container input {
    flex: 1 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    font-family: var(--font-secondary) !important;
    font-size: var(--font-body-md) !important;
    color: var(--color-primary) !important;
    background: transparent !important;
    padding: 4px 0 !important;
    min-width: 0 !important;
}

.pf-cat-output #search-container #search-btn {
    flex-shrink: 0 !important;
    background: var(--button-background-color) !important;
    border: 2px solid var(--button-border-color) !important;
    color: var(--button-text-color) !important;
    border-radius: var(--radius-full) !important;
    font-family: var(--font-secondary) !important;
    font-size: var(--font-body-sm) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    padding: 8px 28px !important;
    cursor: pointer !important;
    transition: background 0.25s, border-color 0.25s !important;
}

.pf-cat-output #search-container #search-btn:hover {
    background: var(--button-background-hover-color) !important;
    border-color: var(--button-border-hover-color) !important;
}

/* Reset global system wrapper constraints */
.pf-cat-output .prodcatwrap {
    padding-top: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.pf-product-output .featuredproductswrap,
.pf-product-output .featuredproductswrap .container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ---- Category grid: targets tw-grid wrapper from main_category_view_tw_ui() ---- */
.pf-cat-output [class*="tw-grid"] {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 16px !important;
    margin-top: 0 !important;
}

/* Category cards: tw-relative tw-flex tw-items-center divs */
.pf-cat-output [class*="tw-grid"] > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    border-radius: var(--radius-md) !important;
    overflow: hidden !important;
    border: var(--border-card) !important;
    background: var(--bg-card) !important;
    cursor: pointer !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.35s ease,
                border-color 0.3s ease !important;
}

.pf-cat-output [class*="tw-grid"] > div:hover {
    transform: translateY(-6px) !important;
    box-shadow: var(--shadow-hover) !important;
    border-color: rgba(201, 168, 76, 0.3) !important;
}

/* Category card link (wraps image + title) */
.pf-cat-output [class*="tw-grid"] > div a {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    text-decoration: none !important;
    color: inherit !important;
}

/* Image wrapper div (tw-flex-shrink-0) — separator line for no-image contrast */
.pf-cat-output [class*="tw-grid"] > div > div:first-child {
    overflow: hidden !important;
    border-bottom: 1px solid rgba(8, 6, 26, 0.1) !important;
    background: #f0ebe0 !important;
    flex-shrink: 0 !important;
}

.pf-cat-output [class*="tw-grid"] > div img {
    width: 100% !important;
    height: 180px !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.5s ease !important;
    margin: 0 !important;
    border-radius: 0 !important;
    flex-shrink: 0 !important;
}

.pf-cat-output [class*="tw-grid"] > div:hover img {
    transform: scale(1.06) !important;
}

/* Category name (h3 with tw-text-sm etc.) */
.pf-cat-output [class*="tw-grid"] > div h3 {
    font-family: var(--font-secondary) !important;
    font-size: var(--font-body-md) !important;
    font-weight: 600 !important;
    color: var(--color-primary) !important;
    text-align: center !important;
    padding: 16px !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    transition: color 0.25s !important;
}

.pf-cat-output [class*="tw-grid"] > div:hover h3 {
    color: var(--color-secondary) !important;
}

/* ---- Product grid: targets tw-grid wrapper from get_feature_products() ---- */
.pf-product-output [class*="tw-grid"] {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
}

/* Sparse-catalog guard: when the backend returns only a few items, keep the row
   centered at a readable card width instead of stretching 1 card across 4 columns. */
.pf-cat-output [class*="tw-grid"]:has(> :last-child:nth-child(-n+3)),
.pf-product-output [class*="tw-grid"]:has(> :last-child:nth-child(-n+3)) {
    grid-template-columns: repeat(auto-fit, minmax(220px, 260px)) !important;
    justify-content: center !important;
}

/* Product cards: tw-group anchor elements */
.pf-product-output [class*="tw-group"] {
    display: flex !important;
    flex-direction: column !important;
    background: var(--bg-card) !important;
    border-radius: var(--radius-md) !important;
    border: var(--border-card) !important;
    overflow: hidden !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.35s ease,
                border-color 0.3s ease !important;
}

.pf-product-output [class*="tw-group"]:hover {
    transform: translateY(-6px) !important;
    box-shadow: var(--shadow-hover) !important;
    border-color: rgba(201, 168, 76, 0.25) !important;
}

/* Product image container */
.pf-product-output [class*="tw-group"] > div:first-child {
    height: 200px !important;
    overflow: hidden !important;
}

.pf-product-output [class*="tw-group"] img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.5s ease !important;
}

.pf-product-output [class*="tw-group"]:hover img {
    transform: scale(1.06) !important;
}

/* Product name (h3 with tw-text-center tw-mt-4) */
.pf-product-output [class*="tw-group"] h3 {
    font-family: var(--font-secondary) !important;
    font-size: var(--font-body-md) !important;
    font-weight: 500 !important;
    color: var(--color-primary) !important;
    text-align: center !important;
    padding: 14px 16px 4px !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Product price (p.featured-product-price) */
.pf-product-output [class*="tw-group"] p,
.pf-product-output .featured-product-price {
    font-family: var(--font-secondary) !important;
    font-size: var(--font-body-md) !important;
    font-weight: 700 !important;
    color: var(--color-secondary) !important;
    text-align: center !important;
    padding: 0 16px 16px !important;
    margin: 0 !important;
    display: block !important;
}

/* =============================================
   SUB-PAGE LAYOUT (site.php)
   ============================================= */
.pf-subpage-body {
    background: var(--bg-color);
}

.pf-subpage-content {
    padding: 40px 0 80px;
}

/* Container override for subpages */
.pf-subpage-content .container.subprspage {
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

/* =============================================
   HERO AWARD PROOF LINE
   ============================================= */
.pf-hero-text .pf-hero-cta {
    margin-bottom: 30px;
}

.pf-hero-awards {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
}

.pf-hero-awards li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0 22px;
    border-left: 1px solid rgba(201, 168, 76, 0.22);
}

.pf-hero-awards li:first-child {
    padding-left: 0;
    border-left: none;
}

.pf-hero-awards strong {
    font-family: var(--font-primary);
    font-size: 23px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-secondary);
}

.pf-hero-awards span {
    font-family: var(--font-secondary);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
}

/* =============================================
   AWARDS SECTION
   ============================================= */
.pf-awards-section {
    position: relative;
    padding: 104px 0;
    background: var(--bg-dark);
    overflow: hidden;
}

/* Hairline gold rule, matches the testimonials treatment */
.pf-awards-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(201, 168, 76, 0.45), transparent);
}

/* Atmosphere: two soft light pools + a faint gallery-wall grid */
.pf-awards-glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 40% 50% at 20% 35%, rgba(201, 168, 76, 0.11), transparent 70%),
        radial-gradient(ellipse 45% 55% at 85% 72%, rgba(228, 25, 139, 0.08), transparent 70%);
}

.pf-awards-glow::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
    background-size: 26px 26px;
    -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, #000, transparent);
    mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, #000, transparent);
}

.pf-awards-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 60px;
    align-items: center;
}

/* ---- Hall of Fame seal ---- */
.pf-hof {
    margin: 0;
    text-align: center;
}

.pf-hof-medal {
    position: relative;
    display: grid;
    place-items: center;
    width: 260px;
    height: 260px;
    margin: 0 auto 26px;
    border-radius: 50%;
    border: 1px solid rgba(201, 168, 76, 0.28);
    background:
        radial-gradient(circle at 50% 36%, rgba(201, 168, 76, 0.18), rgba(8, 6, 26, 0) 70%),
        rgba(255, 255, 255, 0.03);
    box-shadow:
        inset 0 0 42px rgba(201, 168, 76, 0.10),
        var(--shadow-gold);
}

.pf-hof-ring {
    position: absolute;
    inset: 10px;
    border-radius: 50%;
    border: 1px dashed rgba(201, 168, 76, 0.32);
    animation: pf-hof-spin 44s linear infinite;
}

@keyframes pf-hof-spin {
    to { transform: rotate(360deg); }
}

.pf-hof-laurel {
    position: absolute;
    inset: 24px;
}

.pf-hof-laurel path {
    fill: none;
    stroke: rgba(201, 168, 76, 0.5);
    stroke-width: 1.6;
    stroke-linecap: round;
}

.pf-hof-laurel ellipse {
    fill: rgba(201, 168, 76, 0.42);
}

.pf-hof-text {
    position: relative;
    z-index: 2;
    display: block;
    max-width: 140px;
}

.pf-hof-org {
    display: block;
    font-family: var(--font-secondary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 8px;
}

.pf-hof-title {
    display: block;
    font-family: var(--font-primary);
    font-size: 36px;
    font-style: italic;
    font-weight: 600;
    line-height: 1.02;
    color: var(--color-secondary);
}

.pf-hof-caption {
    max-width: 300px;
    margin: 0 auto;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.45);
}

/* ---- Award ledger ---- */
.pf-award-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 26px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.pf-award-row:first-child {
    padding-top: 0;
    border-top: none;
}

.pf-award-id {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 14px;
    align-items: center;
}

.pf-award-mark {
    grid-row: 1 / 3;
    width: 26px;
    height: 26px;
    fill: var(--color-secondary);
    opacity: 0.85;
}

.pf-award-org {
    font-family: var(--font-secondary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
}

.pf-award-name {
    font-family: var(--font-primary);
    font-size: 25px;
    font-weight: 600;
    line-height: 1.2;
    color: #ffffff;
}

.pf-award-years {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.pf-award-year {
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--color-secondary);
    padding: 9px 18px;
    border-radius: var(--radius-full);
    background: rgba(201, 168, 76, 0.08);
    border: 1px solid rgba(201, 168, 76, 0.28);
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.pf-award-year:hover {
    transform: translateY(-3px);
    background: rgba(201, 168, 76, 0.16);
    box-shadow: 0 8px 24px rgba(201, 168, 76, 0.18);
}

.pf-awards-note {
    max-width: 460px;
    margin: 28px 0 26px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.45);
}

/* ---- Official badge artwork (images/awards/) ---- */
.pf-awards-badges {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 26px 34px;
    margin-top: 64px;
    padding-top: 48px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.pf-awards-badges img {
    height: 76px;
    width: auto;
    padding: 10px 14px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.pf-awards-badges img:hover {
    transform: translateY(-6px) rotate(-1deg);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.5);
}

/* =============================================
   SEO LONG-FORM SECTION
   ============================================= */
.pf-seo-section {
    padding: 100px 0;
    background: var(--bg-color);
    border-top: 1px solid rgba(8, 6, 26, 0.06);
}

.pf-seo-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 64px;
    align-items: start;
}

.pf-seo-title {
    font-family: var(--font-primary);
    font-size: clamp(30px, 3.6vw, 46px);
    font-weight: 700;
    line-height: 1.14;
    color: var(--color-primary);
    margin: 0 0 24px;
}

.pf-seo-body p {
    font-family: var(--font-secondary);
    font-size: var(--font-body-lg);
    line-height: 1.8;
    color: rgba(8, 6, 26, 0.62);
    margin: 0 0 20px;
}

.pf-seo-body .pf-seo-lead {
    font-size: var(--font-body-xl);
    color: rgba(8, 6, 26, 0.78);
}

.pf-seo-subtitle {
    font-family: var(--font-primary);
    font-size: var(--h5);
    font-weight: 600;
    color: var(--color-primary);
    margin: 36px 0 12px;
}

.pf-seo-areas {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
}

.pf-seo-area {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px 9px 14px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    font-weight: 600;
    color: var(--color-primary);
    background: #ffffff;
    border: 1px solid rgba(201, 168, 76, 0.3);
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-card);
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.pf-seo-area svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    fill: var(--color-secondary);
}

.pf-seo-area:hover {
    transform: translateY(-2px);
    border-color: var(--color-secondary);
    box-shadow: var(--shadow-hover);
}

/* ---- Aside card ---- */
.pf-seo-card {
    position: sticky;
    top: 110px;
    padding: 36px 32px;
    background: var(--bg-dark-alt);
    border: 1px solid rgba(201, 168, 76, 0.2);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

.pf-seo-card h3 {
    margin: 0 0 16px;
    font-family: var(--font-secondary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-secondary);
}

.pf-seo-card .pf-seo-card-sub {
    margin-top: 30px;
}

.pf-seo-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pf-seo-list li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 11px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.72);
}

.pf-seo-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-secondary);
    opacity: 0.7;
}

.pf-seo-list-alt li {
    color: #ffffff;
    font-weight: 500;
}

.pf-seo-cta {
    width: 100%;
    justify-content: center;
    margin-top: 30px;
}

.pf-seo-phone {
    margin: 14px 0 0;
    font-family: var(--font-secondary);
    font-size: var(--font-body-sm);
    text-align: center;
    color: rgba(255, 255, 255, 0.45);
}

.pf-seo-phone a {
    color: var(--color-secondary);
    font-weight: 600;
}

/* =============================================
   MOTION PREFERENCES
   ============================================= */
@media (prefers-reduced-motion: reduce) {
    .pf-hof-ring {
        animation: none;
    }

    .pf-award-year,
    .pf-seo-area,
    .pf-awards-badges img {
        transition: none;
    }
}

/* =============================================
   CATALOG HOMEPAGE (2026-09-29)
   Masthead + categories + testimonials + FAQ.
   Legacy homepage styles above are kept so
   _backup/index.full-site.20260929.php can be restored as-is.
   ============================================= */
/* Header: solid from the top, since the page opens on the light catalog */
.pf-catalog-body .pf-header {
    background: rgba(8, 6, 26, 0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 2px 40px rgba(0, 0, 0, 0.3);
}

/* Header contact (replaces site navigation) */
.pf-header-contact {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 1;
    gap: 36px;
}

.pf-header-contact a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-secondary);
    font-size: var(--font-body-md);
    font-weight: 500;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.85);
    transition: color 0.25s ease;
}

.pf-header-contact a:hover {
    color: var(--accent-gold-light);
}

.pf-header-contact svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--color-secondary);
    transition: transform 0.3s ease;
}

.pf-header-contact a:hover svg {
    transform: rotate(-8deg) scale(1.08);
}

.pf-catalog-categories {
    padding: 200px 0 100px;
    scroll-margin-top: 110px;
}

@keyframes pf-catalog-rise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: none; }
}

/* ---- FAQ ---- */
.pf-faq-section {
    padding: 100px 0 110px;
    background: var(--bg-card);
    border-top: var(--border-lightgray);
    scroll-margin-top: 110px;
}

.pf-faq-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr);
    gap: 64px;
    align-items: start;
}

.pf-faq-intro {
    position: sticky;
    top: 150px;
}

.pf-faq-intro .pf-section-title {
    margin-bottom: 0;
}

.pf-divider-left {
    margin: 18px 0 24px;
}

.pf-faq-note {
    font-size: var(--font-body-md);
    color: rgba(8, 6, 26, 0.6);
    line-height: 1.7;
    margin: 0 0 28px;
}

.pf-faq-call {
    padding: 12px 24px;
}

.pf-faq-list {
    border-top: 1px solid rgba(8, 6, 26, 0.1);
}

.pf-faq-item {
    border-bottom: 1px solid rgba(8, 6, 26, 0.1);
}

.pf-faq-item summary {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 28px;
    align-items: baseline;
    gap: 12px;
    padding: 24px 0;
    cursor: pointer;
    list-style: none;
}

.pf-faq-item summary::-webkit-details-marker {
    display: none;
}

.pf-faq-item summary:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 4px;
    border-radius: 4px;
}

.pf-faq-num {
    font-family: var(--font-primary);
    font-size: 20px;
    font-style: italic;
    color: var(--color-secondary);
}

.pf-faq-q {
    font-family: var(--font-primary);
    font-size: clamp(20px, 2.1vw, 24px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-primary);
    transition: color 0.25s ease;
}

.pf-faq-item summary:hover .pf-faq-q,
.pf-faq-item[open] .pf-faq-q {
    color: var(--button-background-color);
}

/* Plus that turns into a minus */
.pf-faq-icon {
    position: relative;
    align-self: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid rgba(201, 168, 76, 0.5);
    transition: background 0.25s ease, border-color 0.25s ease;
}

.pf-faq-icon::before,
.pf-faq-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 1.5px;
    background: var(--color-primary);
    transform: translate(-50%, -50%);
    transition: transform 0.3s ease, background 0.25s ease;
}

.pf-faq-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.pf-faq-item[open] .pf-faq-icon {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
}

.pf-faq-item[open] .pf-faq-icon::before,
.pf-faq-item[open] .pf-faq-icon::after {
    background: #ffffff;
}

.pf-faq-item[open] .pf-faq-icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.pf-faq-a {
    padding: 0 40px 28px 52px;
    font-size: var(--font-body-md);
    line-height: 1.8;
    color: rgba(8, 6, 26, 0.68);
    animation: pf-catalog-rise 0.35s ease both;
}

.pf-faq-a p:last-child {
    margin-bottom: 0;
}

.pf-faq-a a {
    color: var(--button-background-color);
    text-decoration: underline;
}

@media only screen and (max-width: 991px) {
    .pf-header-contact {
        gap: 24px;
    }

    .pf-faq-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .pf-faq-intro {
        position: static;
    }
}

@media only screen and (max-width: 768px) {
    /* Phone keeps its number; email collapses to its icon */
    .pf-header-contact {
        gap: 18px;
    }

    .pf-header-contact a {
        font-size: var(--font-body-sm);
    }

    .pf-header-contact a[href^="mailto:"] span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .pf-header-contact svg {
        width: 22px;
        height: 22px;
    }

    .pf-catalog-body .pf-catalog-categories {
        padding: 150px 0 64px;
    }

    .pf-faq-section {
        padding: 64px 0 72px;
    }

    .pf-faq-item summary {
        grid-template-columns: 30px minmax(0, 1fr) 28px;
        padding: 20px 0;
    }

    .pf-faq-a {
        padding: 0 0 24px 42px;
    }
}

/* Long single-word category names ("Candleholders", "Miscellaneous") clip in the 2-up phone grid */
@media only screen and (max-width: 480px) {
    .pf-cat-output [class*="tw-grid"] > div h3 {
        font-size: 12px !important;
        letter-spacing: 0.02em !important;
        padding: 14px 8px !important;
        overflow-wrap: anywhere;
        hyphens: auto;
    }
}
