/* ═══════════════════════════════════════
   LVPR - Main Stylesheet
   ═══════════════════════════════════════ */

@font-face {
    font-family: 'Nineties Headliner';
    src: url('../fonts/nineties-headliner-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Awesome Serif';
    src: url('../fonts/awesome-serif-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Awesome Serif';
    src: url('../fonts/awesome-serif-bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Awesome Serif';
    src: url('../fonts/awesome-serif-light-italic.woff2') format('woff2');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Awesome Serif';
    src: url('../fonts/awesome-serif-italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Awesome Serif';
    src: url('../fonts/awesome-serif-bold-italic.woff2') format('woff2');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

:root {
    --lvpr-cream: #ede8e1;
    --lvpr-grey-blue: #536880;
    --lvpr-light-blue: #8ca1c9;
    --lvpr-dark-blue: #364d65;
    --lvpr-white: #ffffff;
    --lvpr-font-heading: 'Nineties Headliner', cursive;
    --lvpr-font-sub: 'Awesome Serif', serif;
    --lvpr-font-body: 'Poppins', sans-serif;
    --lvpr-side-pad: clamp(1.5rem, 15vw, 14rem);
    --lvpr-content-max: none;
    --lvpr-text-base: clamp(1.1rem, 0.7rem + 1vw, 1.75rem);
    --lvpr-hero-cloud-h: 100vh;
}

@supports (height: 100svh) {
    :root { --lvpr-hero-cloud-h: 100svh; }
}
@supports (height: 100dvh) {
    :root { --lvpr-hero-cloud-h: 100dvh; }
}

/* ─── Sitewide header (blog + single post pages) ─── */
.lvpr-site-header {
    background: var(--lvpr-cream);
    padding: 1.5rem var(--lvpr-side-pad);
    display: flex;
    align-items: center;
}

.lvpr-site-header__logo {
    display: inline-flex;
    text-decoration: none;
}

.lvpr-site-header__logo img {
    height: clamp(3.5rem, 5vw + 1rem, 5.5rem);
    width: auto;
    display: block;
}

@media (max-width: 600px) {
    .lvpr-site-header { padding: 1rem 1.5rem; }
    .lvpr-site-header__logo img { height: 3rem; }
}

/* ─── Floating Hamburger Nav ─── */
.lvpr-nav__toggle {
    position: fixed;
    top: clamp(1rem, 2vw, 1.5rem);
    right: clamp(1rem, 2vw, 1.5rem);
    z-index: 1000;
    width: clamp(2.5rem, 4vw, 3.25rem);
    height: clamp(2.5rem, 4vw, 3.25rem);
    border-radius: 50%;
    background: var(--lvpr-cream);
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: clamp(0.25rem, 0.5vw, 0.35rem);
    padding: 0;
    box-shadow: 0 4px 14px rgba(54, 77, 101, 0.18);
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.lvpr-nav__toggle:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 18px rgba(54, 77, 101, 0.25);
}

.lvpr-nav__bar {
    display: block;
    width: clamp(1.1rem, 1.8vw, 1.5rem);
    height: clamp(2px, 0.25vw, 3px);
    background: var(--lvpr-grey-blue);
    border-radius: 999px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.lvpr-nav__toggle.is-open .lvpr-nav__bar:nth-child(1) {
    transform: translateY(0.5rem) rotate(45deg);
}
.lvpr-nav__toggle.is-open .lvpr-nav__bar:nth-child(2) {
    opacity: 0;
}
.lvpr-nav__toggle.is-open .lvpr-nav__bar:nth-child(3) {
    transform: translateY(-0.55rem) rotate(-45deg);
}

.lvpr-nav {
    position: fixed;
    top: 0;
    right: 0;
    width: min(28rem, 100vw);
    height: 100vh;
    background: var(--lvpr-cream);
    box-shadow: -10px 0 40px rgba(54, 77, 101, 0.15);
    z-index: 999;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    padding: 6rem 3rem 3rem;
    overflow-y: auto;
}

.lvpr-nav.is-open { transform: translateX(0); }

.lvpr-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.lvpr-nav__list a {
    display: block;
    font-family: var(--lvpr-font-heading);
    text-transform: uppercase;
    font-size: 1.75rem;
    color: var(--lvpr-grey-blue);
    text-decoration: none;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(83, 104, 128, 0.15);
    transition: color 0.2s ease, padding-left 0.2s ease;
}

.lvpr-nav__list a:hover {
    color: var(--lvpr-light-blue);
    padding-left: 0.5rem;
}

@media (max-width: 600px) {
    .lvpr-nav { padding: 5rem 2rem 2rem; }
    .lvpr-nav__list a { font-size: 1.5rem; }
}

/* ─── Hero topbar social bar ─── */
.lvpr-hero__social {
    margin-top: 0 !important;
    width: auto !important;
    flex: 0 0 auto;
    margin-left: auto;
    gap: 1rem;
    justify-content: flex-end;
    align-items: center;
    background: var(--lvpr-dark-blue);
    padding: 0.65rem 1.25rem;
    border-radius: 999px;
}

.lvpr-hero__social .lvpr-social__link {
    color: var(--lvpr-cream);
}

.lvpr-hero__social .lvpr-social__link svg {
    width: clamp(1.25rem, 1.6vw, 1.65rem);
    height: clamp(1.25rem, 1.6vw, 1.65rem);
}

.lvpr-hero__social .lvpr-social__link:hover {
    color: var(--lvpr-light-blue);
}

/* ─── Reset / Base ─── */
*, *::before, *::after { box-sizing: border-box; }

html {
    font-size: 100%;
    background-color: var(--lvpr-cream);
    overscroll-behavior: none;
}

body {
    background-color: var(--lvpr-cream);
    color: var(--lvpr-grey-blue);
    font-family: var(--lvpr-font-body);
    font-size: var(--lvpr-text-base);
    line-height: 1.4;
    margin: 0;
    -webkit-font-smoothing: antialiased;
    overscroll-behavior: none;
}

/* ─── Resets (no parent theme styles loaded) ─── */
img { max-width: 100%; height: auto; }

h1, h2, h3, h4, p, blockquote, figure {
    margin: 0;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    word-wrap: normal !important;
}

/* ─── Layout ─── */
.lvpr-site {
    text-align: left;
    position: relative;
    z-index: 0;
    overflow-x: clip;
    overflow-y: visible;
}

.lvpr-container {
    max-width: var(--lvpr-content-max);
    margin: 0;
    padding: 0 var(--lvpr-side-pad);
    text-align: left;
}

.lvpr-section {
    padding: 3.5rem 0;
}

.lvpr-section__heading {
    font-family: var(--lvpr-font-heading);
    font-weight: 400;
    font-style: normal;
    font-size: clamp(3.5rem, 2rem + 2vw, 5.5rem);
    color: var(--lvpr-grey-blue);
    text-align: left;
    text-transform: uppercase;
    margin: 0 0 clamp(2rem, 3vw, 3.125rem);
    line-height: 1.15;
}

/* ─── Hero ─── */
section.lvpr-hero.lvpr-section {
    padding: 0;
    position: relative;
    z-index: 2;
    overflow: visible;
}

.lvpr-hero__cloud-wrap {
    position: relative;
    z-index: 2;
    margin-left: var(--lvpr-side-pad);
    margin-right: var(--lvpr-side-pad);
}

/* Cloud image — handles both plain <img> and Imagify's <picture> wrapper */
.lvpr-hero__cloud-wrap picture,
.lvpr-hero__cloud-wrap img {
    width: 100%;
    display: block;
    height: auto;
}

/* Logo + CTA bar floating over hero */
.lvpr-hero__topbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4rem clamp(1.5rem, 3vw, 2.5rem) 1.5rem !important;
    max-width: none;
}

.lvpr-hero__logo {
    flex: 0 0 auto;
}

.lvpr-hero__logo img {
    display: block;
    height: clamp(6rem, 6vw + 2rem, 9rem);
    width: auto;
    object-fit: contain;
}

.lvpr-hero__logo-text {
    font-family: var(--lvpr-font-heading);
    font-size: 2rem;
    color: var(--lvpr-grey-blue);
}

.lvpr-btn.lvpr-hero__cta {
    flex-shrink: 0;
    font-family: var(--lvpr-font-heading);
    font-size: clamp(1.25rem, 0.75rem + 0.75vw, 2rem);
    text-transform: uppercase;
    padding: 0.9rem 2.25rem;
    background: var(--lvpr-dark-blue);
    border-color: var(--lvpr-dark-blue);
    color: var(--lvpr-cream);
}

.lvpr-btn.lvpr-hero__cta:hover {
    background: var(--lvpr-light-blue);
    border-color: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
}

/* Sections below hero */
.lvpr-site > .lvpr-section:not(.lvpr-hero) {
    position: relative;
    background-color: var(--lvpr-cream);
}

.lvpr-hero__text {
    position: absolute;
    z-index: 2;
    left: 0;
    right: 0;
    top: 30%;
    padding: 0 clamp(1.5rem, 3vw, 2.5rem);
    text-align: left;
}

.lvpr-hero__heading {
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-weight: 300;
    font-size: clamp(5rem, 3rem + 8vw, 11rem);
    color: var(--lvpr-grey-blue);
    margin: 0 0 0.65rem;
    line-height: 0.92;
    text-align: left;
    opacity: 1;
}

.lvpr-hero__tagline {
    font-family: var(--lvpr-font-sub);
    font-style: normal;
    font-size: clamp(2.9rem, 0.5rem + 1.75vw, 3.25rem);
    color: var(--lvpr-grey-blue);
    max-width: 90%;
    margin: 0;
    text-align: left;
    opacity: 0;
    animation: fadeUp 1s ease 0.4s forwards;
}

.lvpr-hero__tagline strong,
.lvpr-hero__tagline b {
    font-weight: 700;
}

/* Hero animation — parent uses translateY(-50%) for centering,
   so animations offset from that baseline */
.animate-in {
    opacity: 0;
    animation: fadeInHeading 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInHeading {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Scroll-triggered fade-in */
.lvpr-section {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.lvpr-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.lvpr-hero {
    opacity: 1;
    transform: none;
}

/* ─── About ─── */
.lvpr-about__text {
    font-size: var(--lvpr-text-base);
    line-height: 1.4;
    text-align: left;
    color: var(--lvpr-dark-blue);
}

.lvpr-about__text p { margin-bottom: 1.15rem; }
.lvpr-about__text strong { color: var(--lvpr-dark-blue); font-weight: 700; }

/* ─── Services ─── */
.lvpr-services__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    width: 90%;
    margin: 0 auto;
    justify-items: center;
}

.lvpr-service-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.2em;
    border: 1.5px solid rgb(160, 181, 203);
    border-radius: 100px;
    background: transparent;
    color: var(--lvpr-grey-blue);
    font-family: var(--lvpr-font-sub);
    font-size: clamp(1.75rem, 1rem + 1.5vw, 2.75rem);
    text-align: center;
    cursor: default;
}

.lvpr-service-btn__arrow { display: none; }

/* ─── Clients ─── */
.lvpr-clients__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-auto-rows: 90px;
    row-gap: 2rem;
    column-gap: 3rem;
    align-items: center;
    justify-items: center;
    width: 100%;
}

.lvpr-client {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    padding: 0.75rem;
}

.lvpr-client__logo,
.lvpr-client img {
    max-width: 100%;
    max-height: 90px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    filter: brightness(0) saturate(100%) invert(58%) sepia(14%) saturate(900%) hue-rotate(186deg) brightness(82%) contrast(90%);
    transition: transform 0.35s ease;
}

.lvpr-client:hover img,
.lvpr-client:hover .lvpr-client__logo {
    transform: scale(1.08);
}

.lvpr-client__name {
    font-family: var(--lvpr-font-body);
    font-size: 0.85rem;
    color: var(--lvpr-grey-blue);
    text-align: center;
}

/* ─── Press Slider ─── */
.lvpr-press {
    overflow: hidden;
    margin-top: 6rem;
    padding-top: 3rem;
    padding-bottom: 5rem;
}

.lvpr-press__slider {
    overflow: hidden;
    width: 100%;
    mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
    margin-bottom: 1.5rem;
}

.lvpr-press__slider:last-child {
    margin-bottom: 0;
}

.lvpr-press__track {
    display: flex;
    flex-wrap: nowrap;
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
    width: max-content;
    will-change: transform;
}

.lvpr-press__track--left {
    animation: pressScrollLeft 50s linear infinite;
}

.lvpr-press__track--right {
    animation: pressScrollRight 50s linear infinite;
}

.lvpr-press__slider:hover .lvpr-press__track {
    animation-play-state: paused;
}

@keyframes pressScrollLeft {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes pressScrollRight {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

.lvpr-press__item { flex-shrink: 0; }

.lvpr-press__logo,
.lvpr-press__item img {
    height: clamp(50px, 6vw, 80px);
    width: auto;
    object-fit: contain;
    transition: transform 0.35s ease;
}

.lvpr-press__item:hover img,
.lvpr-press__item:hover .lvpr-press__logo {
    transform: scale(1.12);
}

.lvpr-press__name {
    font-family: var(--lvpr-font-body);
    font-size: 0.9rem;
    color: var(--lvpr-grey-blue);
    white-space: nowrap;
}

/* ─── Love Letters / Testimonials ─── */
.lvpr-love-letters__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem;
    align-items: stretch;
    width: 100%;
}

.lvpr-testimonial {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    height: 100%;
}

.lvpr-testimonial__quote {
    flex: 1 1 auto;
}

.lvpr-testimonial__quote {
    position: relative;
    font-family: var(--lvpr-font-body);
    font-size: 1.15rem;
    line-height: 1.55;
    color: var(--lvpr-grey-blue);
    margin: 2rem 0 1.5rem;
    padding: 2.25rem 2rem;
    border: 1.5px solid var(--lvpr-grey-blue);
    border-radius: 20px;
    background: #ebe6df;
    text-align: left;
    width: 100%;
}

.lvpr-testimonial__quote::before,
.lvpr-testimonial__quote::after {
    content: '';
    position: absolute;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    background: #8ca1c9;
    pointer-events: none;
}

.lvpr-testimonial__quote::before,
.lvpr-testimonial__quote::after {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: 8rem;
    line-height: 1;
    color: #ede8e1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 3rem;
}

.lvpr-testimonial__quote::before {
    content: '\201C';
    top: 0;
    left: 0;
    transform: translate(-35%, -50%);
}

.lvpr-testimonial__quote::after {
    content: '\201D';
    bottom: 0;
    right: 0;
    transform: translate(35%, 50%);
}

/* Colored side accent — first and third card */
.lvpr-love-letters__grid .lvpr-testimonial:first-child .lvpr-testimonial__quote {
    box-shadow: -10px 0 0 #8ca1c9;
}

.lvpr-love-letters__grid .lvpr-testimonial:nth-child(3) .lvpr-testimonial__quote {
    box-shadow: 10px 0 0 #8ca1c9;
}

.lvpr-testimonial__quote p {
    margin: 0;
    position: relative;
    z-index: 1;
}

.lvpr-testimonial__quote p + p {
    margin-top: 0.9rem;
}

.lvpr-testimonial__footer {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 0.5rem;
    padding-left: 0.5rem;
}

.lvpr-testimonial__image {
    flex: 0 0 auto;
}

.lvpr-testimonial__image img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.lvpr-testimonial__attr {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.lvpr-testimonial__person {
    font-family: var(--lvpr-font-heading);
    font-weight: 700;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--lvpr-grey-blue);
}

.lvpr-testimonial__role {
    font-family: var(--lvpr-font-sub);
    font-style: normal;
    font-size: 1.25rem;
    color: var(--lvpr-grey-blue);
    line-height: 1.2;
}

/* ─── FAQ ─── */
.lvpr-faq {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.lvpr-faq__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 60rem;
    width: 90%;
    margin: 0 auto;
}

.lvpr-faq__item {
    border-top: 1.5px solid var(--lvpr-light-blue);
    padding: 1.25rem 0;
}

.lvpr-faq__item:last-child {
    border-bottom: 1.5px solid var(--lvpr-light-blue);
}

.lvpr-faq__question {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: clamp(1.35rem, 0.9rem + 0.6vw, 1.85rem);
    color: var(--lvpr-dark-blue);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    line-height: 1.3;
}

.lvpr-faq__question::-webkit-details-marker { display: none; }

.lvpr-faq__question::after {
    content: '+';
    font-family: var(--lvpr-font-body);
    font-size: 1.5em;
    font-weight: 300;
    line-height: 1;
    color: var(--lvpr-light-blue);
    transition: transform 0.25s ease;
    flex-shrink: 0;
}

.lvpr-faq__item[open] .lvpr-faq__question::after {
    transform: rotate(45deg);
}

.lvpr-faq__answer {
    font-family: var(--lvpr-font-body);
    font-size: var(--lvpr-text-base);
    color: var(--lvpr-grey-blue);
    line-height: 1.55;
    padding-top: 1rem;
    max-width: 50rem;
}

.lvpr-faq__answer p { margin: 0 0 0.85rem; }
.lvpr-faq__answer p:last-child { margin-bottom: 0; }

/* ─── Contact ─── */
.lvpr-contact .lvpr-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.lvpr-contact__text {
    font-size: var(--lvpr-text-base);
    margin: 1.25rem 0;
    max-width: 38rem;
    text-align: left;
    color: var(--lvpr-grey-blue);
}

/* "Why Wait" heading — matches section heading */
.lvpr-social-heading {
    margin-top: 3rem;
    margin-bottom: 1.5rem;
}

.lvpr-social-heading h3 {
    font-family: var(--lvpr-font-heading);
    font-weight: 400;
    font-style: normal;
    font-size: clamp(2.75rem, 1rem + 3.5vw, 5.5rem);
    color: var(--lvpr-grey-blue);
    text-align: left;
    text-transform: uppercase;
    line-height: 1.15;
    margin: 0;
}

/* ─── Buttons ─── */
.lvpr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    font-family: var(--lvpr-font-heading);
    font-size: clamp(1.25rem, 0.75rem + 1vw, 2rem);
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    transition: all 0.25s ease;
    cursor: pointer;
}

.lvpr-btn--primary {
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
    border: 2px solid var(--lvpr-light-blue);
}

.lvpr-btn--primary:hover {
    background: var(--lvpr-grey-blue);
    border-color: var(--lvpr-grey-blue);
    color: var(--lvpr-cream);
}

.lvpr-btn--secondary {
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
    border: 2px solid var(--lvpr-light-blue);
}

.lvpr-btn--secondary:hover {
    background: var(--lvpr-grey-blue);
    border-color: var(--lvpr-grey-blue);
    color: var(--lvpr-cream);
}

/* Contact section — matching button widths */
.lvpr-contact .lvpr-btn {
    min-width: 18rem;
}

.lvpr-btn__arrow {
    margin-left: 0.25rem;
    font-size: 1.15em;
    line-height: 1;
}

/* ─── Social Icons ─── */
.lvpr-social {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin-top: 1.25rem;
    width: 100%;
}

.lvpr-social__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--lvpr-light-blue);
    transition: color 0.2s;
}

.lvpr-social__link:hover {
    color: var(--lvpr-grey-blue);
}

.lvpr-social__link svg {
    width: clamp(3rem, 5vw, 4.5rem);
    height: clamp(3rem, 5vw, 4.5rem);
}

/* ─── Instagram Feed ─── */
.lvpr-instagram-feed {
    margin-top: 2.5rem;
    width: 100%;
    text-align: left;
    align-self: flex-start;
}

/* Smash Balloon free only does grids — force a single horizontally-scrollable
   row of 6 visible tiles (3 on mobile), with arrow buttons for navigation.
   !important is required because the plugin sets widths via inline style. */
.lvpr-instagram-feed {
    position: relative;
}

.lvpr-instagram-feed__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.lvpr-instagram-feed__viewport::-webkit-scrollbar { display: none; }

.lvpr-instagram-feed #sb_instagram { padding: 0 !important; }
.lvpr-instagram-feed #sb_instagram #sbi_images,
.lvpr-instagram-feed #sb_instagram .sbi_images {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: max-content !important;
    min-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
.lvpr-instagram-feed #sb_instagram .sbi_item {
    flex: 0 0 calc((100vw - 2 * var(--lvpr-side-pad) - 5 * 8px) / 6) !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    scroll-snap-align: start;
}
.lvpr-instagram-feed #sb_instagram .sbi_photo_wrap,
.lvpr-instagram-feed #sb_instagram .sbi_photo {
    aspect-ratio: 1 / 1;
    height: auto !important;
    width: 100% !important;
}
.lvpr-instagram-feed #sb_instagram #sbi_load { display: none !important; }

/* Carousel arrow buttons */
.lvpr-instagram-feed__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: clamp(2.5rem, 3vw, 3rem);
    height: clamp(2.5rem, 3vw, 3rem);
    border-radius: 50%;
    border: none;
    background: var(--lvpr-cream);
    color: var(--lvpr-grey-blue);
    box-shadow: 0 4px 14px rgba(54, 77, 101, 0.2);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}

.lvpr-instagram-feed__arrow:hover {
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
    transform: translateY(-50%) scale(1.05);
}

.lvpr-instagram-feed__arrow[hidden] { display: none; }

.lvpr-instagram-feed__arrow--prev { left: -1.25rem; }
.lvpr-instagram-feed__arrow--next { right: -1.25rem; }

@media (max-width: 900px) {
    .lvpr-instagram-feed #sb_instagram .sbi_item {
        flex-basis: calc((100vw - 2 * var(--lvpr-side-pad) - 2 * 8px) / 3) !important;
    }
    .lvpr-instagram-feed__arrow--prev { left: 0.25rem; }
    .lvpr-instagram-feed__arrow--next { right: 0.25rem; }
}

/* Instagram placeholder grid */
.lvpr-ig-placeholder {
    margin-top: 3rem;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.5rem;
    width: 100%;
}

.lvpr-ig-placeholder__tile {
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, var(--lvpr-light-blue), var(--lvpr-grey-blue));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lvpr-cream);
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, filter 0.3s ease;
}

.lvpr-ig-placeholder__tile:hover {
    filter: brightness(1.1);
    transform: scale(1.02);
}

.lvpr-ig-placeholder__tile svg {
    width: 32%;
    height: 32%;
    opacity: 0.9;
}

/* Varied tints so it looks less uniform */
.lvpr-ig-placeholder__tile[style*="--i:1"] { background: linear-gradient(135deg, var(--lvpr-light-blue), var(--lvpr-grey-blue)); }
.lvpr-ig-placeholder__tile[style*="--i:2"] { background: linear-gradient(135deg, var(--lvpr-grey-blue), var(--lvpr-dark-blue)); }
.lvpr-ig-placeholder__tile[style*="--i:3"] { background: linear-gradient(135deg, #ebe6df, var(--lvpr-light-blue)); }
.lvpr-ig-placeholder__tile[style*="--i:4"] { background: linear-gradient(135deg, var(--lvpr-dark-blue), var(--lvpr-grey-blue)); }
.lvpr-ig-placeholder__tile[style*="--i:5"] { background: linear-gradient(135deg, var(--lvpr-light-blue), #ebe6df); }
.lvpr-ig-placeholder__tile[style*="--i:6"] { background: linear-gradient(135deg, var(--lvpr-grey-blue), var(--lvpr-light-blue)); }

@media (max-width: 900px) {
    .lvpr-ig-placeholder {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ─── Footer ─── */
.lvpr-footer {
    padding: 1.5rem 0;
    font-size: 0.8rem;
    color: var(--lvpr-grey-blue);
    opacity: 0.6;
}

.lvpr-footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(83, 104, 128, 0.2);
    padding-top: 1.5rem;
}

.lvpr-footer__left {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.lvpr-footer__sep { opacity: 0.5; }

/* ═══════════════════════════════════════
   Blog (archive + single)
   ═══════════════════════════════════════ */

.lvpr-blog,
.lvpr-single {
    background: var(--lvpr-cream);
    min-height: 100vh;
    padding-bottom: 6rem;
}

/* Header */
.lvpr-blog__header {
    padding: 3rem 0 4rem;
    text-align: center;
}

.lvpr-blog__eyebrow {
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-size: 1.35rem;
    color: var(--lvpr-light-blue);
    margin: 0 0 0.75rem;
    letter-spacing: 0.02em;
}

.lvpr-blog__pagetitle {
    font-family: var(--lvpr-font-heading);
    font-weight: 400;
    font-size: clamp(4rem, 3rem + 3vw, 7rem);
    color: var(--lvpr-grey-blue);
    text-transform: uppercase;
    line-height: 0.95;
    margin: 0 0 1.5rem;
}

.lvpr-blog__intro {
    font-family: var(--lvpr-font-sub);
    font-size: clamp(1.15rem, 0.9rem + 0.4vw, 1.5rem);
    color: var(--lvpr-dark-blue);
    max-width: 40rem;
    margin: 0 auto;
    line-height: 1.5;
}

/* Grid layout — 2 columns, featured post spans full width */
.lvpr-blog__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2.5rem, 4vw, 4rem) clamp(1.5rem, 2.5vw, 2.5rem);
    margin-top: 1rem;
}

@media (max-width: 1200px) and (min-width: 1025px) {
    .lvpr-blog__grid { grid-template-columns: 1fr; }
}

.lvpr-blog__post {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    transition: transform 0.35s ease;
}

.lvpr-blog__post:hover { transform: translateY(-3px); }

/* Featured (first) post */
.lvpr-blog__post--featured {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: clamp(2rem, 4vw, 4rem);
}

.lvpr-blog__post--featured .lvpr-blog__thumb {
    flex: 1 1 55%;
}

.lvpr-blog__post--featured .lvpr-blog__content {
    flex: 1 1 45%;
}

.lvpr-blog__post--featured .lvpr-blog__title {
    font-size: clamp(2rem, 1.25rem + 1.5vw, 3rem);
    line-height: 1.1;
}

.lvpr-blog__post--featured .lvpr-blog__excerpt {
    font-size: 1.125rem;
}

/* Thumbnail */
.lvpr-blog__thumb {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 14px;
    position: relative;
    background: linear-gradient(135deg, var(--tint, var(--lvpr-light-blue)), var(--lvpr-grey-blue));
}

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

.lvpr-blog__post:hover .lvpr-blog__thumb img {
    transform: scale(1.03);
}

/* Placeholder for posts without a featured image */
.lvpr-blog__thumb-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.15), transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(255, 255, 255, 0.12), transparent 50%);
}

.lvpr-blog__post--featured .lvpr-blog__thumb { aspect-ratio: 16 / 11; }

/* Content */
.lvpr-blog__content {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.lvpr-blog__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-size: 1.15rem;
    color: var(--lvpr-grey-blue);
}

.lvpr-blog__author,
.lvpr-single__author {
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    color: var(--lvpr-grey-blue);
}

/* Sticky posts get a subtle highlight */
.lvpr-blog__post.sticky::before {
    content: 'Pinned';
    display: inline-block;
    font-family: var(--lvpr-font-heading);
    text-transform: uppercase;
    font-size: 0.85rem;
    color: var(--lvpr-cream);
    background: var(--lvpr-light-blue);
    padding: 0.2rem 0.7rem;
    border-radius: 50px;
    align-self: flex-start;
    margin-bottom: 0.5rem;
    letter-spacing: 0.05em;
}

.lvpr-blog__cat {
    font-family: var(--lvpr-font-body);
    font-size: 0.8rem;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--lvpr-light-blue);
    font-weight: 600;
}

.lvpr-blog__cat-sep { opacity: 0.5; }

.lvpr-blog__title {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: clamp(1.75rem, 1rem + 1vw, 2.5rem);
    color: var(--lvpr-dark-blue);
    line-height: 1.2;
    margin: 0;
}

.lvpr-blog__title a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(var(--lvpr-light-blue), var(--lvpr-light-blue));
    background-size: 0 2px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    transition: background-size 0.35s ease, color 0.2s ease;
}

.lvpr-blog__post:hover .lvpr-blog__title a {
    background-size: 100% 2px;
    color: var(--lvpr-grey-blue);
}

.lvpr-blog__excerpt {
    font-size: var(--lvpr-text-base);
    line-height: 1.5;
    color: var(--lvpr-grey-blue);
}

.lvpr-blog__excerpt p { margin: 0; }

.lvpr-blog__more {
    font-family: var(--lvpr-font-heading);
    font-size: 1.25rem;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--lvpr-grey-blue);
    align-self: flex-start;
    transition: color 0.2s ease, letter-spacing 0.2s ease;
    letter-spacing: 0.02em;
    margin-top: 0.25rem;
}

.lvpr-blog__more:hover {
    color: var(--lvpr-light-blue);
    letter-spacing: 0.04em;
}

.lvpr-blog__empty {
    text-align: center;
    padding: 4rem 0;
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    color: var(--lvpr-grey-blue);
}

/* Blog layout with sidebar */
.lvpr-blog__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: clamp(3rem, 5vw, 5rem);
    align-items: start;
}

.lvpr-blog__main { min-width: 0; }

/* Sidebar */
.lvpr-sidebar {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    position: sticky;
    top: 2rem;
}

.lvpr-sidebar__widget {
    border-top: 1.5px solid var(--lvpr-light-blue);
    padding-top: 1.25rem;
}

.lvpr-sidebar__title {
    font-family: var(--lvpr-font-heading);
    font-weight: 400;
    font-size: 2.25rem;
    text-transform: uppercase;
    color: var(--lvpr-grey-blue);
    margin: 0 0 1rem;
    line-height: 1;
}

.lvpr-sidebar__search {
    border: 1.5px solid var(--lvpr-grey-blue);
    border-radius: 50px;
    padding: 0.25rem 1rem;
    background: transparent;
}

.lvpr-sidebar__search input {
    width: 100%;
    border: 0;
    background: transparent;
    font-family: var(--lvpr-font-body);
    font-size: 0.95rem;
    color: var(--lvpr-dark-blue);
    padding: 0.55rem 0;
    outline: none;
}

.lvpr-sidebar__search input::placeholder { color: var(--lvpr-grey-blue); opacity: 0.7; }

/* Autocomplete search dropdown */
.lvpr-search {
    position: relative;
}

.lvpr-search__results {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    background: var(--lvpr-cream);
    border: 1.5px solid var(--lvpr-grey-blue);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(54, 77, 101, 0.15);
    max-height: 24rem;
    overflow-y: auto;
    z-index: 50;
}

.lvpr-search__result {
    display: block;
    padding: 0.85rem 1rem;
    text-decoration: none;
    color: var(--lvpr-dark-blue);
    border-bottom: 1px solid rgba(83, 104, 128, 0.12);
    transition: background 0.15s ease, color 0.15s ease;
}

.lvpr-search__result:last-child { border-bottom: 0; }

.lvpr-search__result:hover,
.lvpr-search__result:focus {
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
}

.lvpr-search__result-title {
    display: block;
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.25;
    margin-bottom: 0.2rem;
}

.lvpr-search__result-excerpt {
    display: block;
    font-family: var(--lvpr-font-body);
    font-size: 0.85rem;
    opacity: 0.85;
    line-height: 1.4;
}

.lvpr-search__empty {
    padding: 1rem;
    margin: 0;
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    color: var(--lvpr-grey-blue);
    text-align: center;
}

.lvpr-sidebar__list,
.lvpr-sidebar__cats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.lvpr-sidebar__list li {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.lvpr-sidebar__list a {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: 1.2rem;
    color: var(--lvpr-dark-blue);
    text-decoration: none;
    line-height: 1.3;
    transition: color 0.2s ease;
}

.lvpr-sidebar__list a:hover { color: var(--lvpr-light-blue); }

.lvpr-sidebar__list time {
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-size: 1rem;
    color: var(--lvpr-grey-blue);
    opacity: 0.8;
}

.lvpr-sidebar__cats li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(83, 104, 128, 0.15);
    padding-bottom: 0.5rem;
}

.lvpr-sidebar__cats li:last-child { border-bottom: 0; }

.lvpr-sidebar__cats a {
    font-family: var(--lvpr-font-body);
    font-size: 1.15rem;
    color: var(--lvpr-grey-blue);
    text-decoration: none;
    transition: color 0.2s ease;
}

.lvpr-sidebar__cats a:hover { color: var(--lvpr-light-blue); }

.lvpr-sidebar__count {
    font-family: var(--lvpr-font-body);
    font-size: 0.8rem;
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
    border-radius: 50px;
    padding: 0.1rem 0.6rem;
    min-width: 1.75rem;
    text-align: center;
}

.lvpr-sidebar__cta p {
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-size: 1.2rem;
    color: var(--lvpr-dark-blue);
    margin: 0 0 1rem;
    line-height: 1.4;
}

.lvpr-sidebar__cta .lvpr-btn {
    min-width: 0;
    width: 100%;
    font-size: 0.95rem;
    padding: 0.6rem 1rem;
}

/* Pagination */
.lvpr-blog__pagination {
    margin-top: 4rem;
    display: flex;
    justify-content: center;
}

.lvpr-blog__pagination .nav-links {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.lvpr-blog__pagination a,
.lvpr-blog__pagination span {
    padding: 0.5rem 0.9rem;
    border-radius: 50px;
    text-decoration: none;
    font-family: var(--lvpr-font-body);
    font-size: 1rem;
    color: var(--lvpr-grey-blue);
    border: 1.5px solid transparent;
    transition: all 0.2s ease;
}

.lvpr-blog__pagination a:hover {
    border-color: var(--lvpr-light-blue);
    color: var(--lvpr-light-blue);
}

.lvpr-blog__pagination .current {
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
    border-color: var(--lvpr-light-blue);
}

/* Single post */
.lvpr-single__header { padding: 3rem 0 1rem; text-align: left; }

.lvpr-single__back {
    font-family: var(--lvpr-font-heading);
    font-size: 1rem;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--lvpr-grey-blue);
    transition: color 0.2s ease;
}

.lvpr-single__back:hover {
    color: var(--lvpr-light-blue);
}

.lvpr-single__article {
    padding-top: 1rem;
}

.lvpr-single__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.lvpr-single__date {
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-size: 1rem;
    color: var(--lvpr-grey-blue);
    opacity: 0.85;
}

.lvpr-single__meta .lvpr-blog__cat {
    color: var(--lvpr-light-blue);
    text-decoration: none;
}

.lvpr-single__meta .lvpr-blog__cat:hover { color: var(--lvpr-grey-blue); }

.lvpr-single__title {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: clamp(2.5rem, 1.5rem + 2vw, 3.75rem);
    color: var(--lvpr-dark-blue);
    line-height: 1.1;
    margin: 0 0 2rem;
}

.lvpr-single__featured {
    margin: 0 0 2.5rem;
    border-radius: 14px;
    overflow: hidden;
}

/* Full-width hero image above the post */
.lvpr-single__hero {
    margin: 0 var(--lvpr-side-pad) 3rem;
    overflow: hidden;
    max-height: 60vh;
}

.lvpr-single__hero img {
    width: 100%;
    height: auto;
    display: block;
    max-height: 60vh;
    object-fit: cover;
}

.lvpr-single__featured img {
    width: 100%;
    height: auto;
    display: block;
}

.lvpr-single__content {
    font-size: var(--lvpr-text-base);
    line-height: 1.6;
    color: var(--lvpr-dark-blue);
}

.lvpr-single__content p,
.lvpr-single__content ul,
.lvpr-single__content ol,
.lvpr-single__content blockquote,
.lvpr-single__content h2,
.lvpr-single__content h3,
.lvpr-single__content img {
    margin: 0 0 1.5rem;
}

.lvpr-single__content h2 {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: clamp(2rem, 1.25rem + 1vw, 2.75rem);
    color: var(--lvpr-grey-blue);
    margin-top: 2.5rem;
}

.lvpr-single__content h3 {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: clamp(1.5rem, 1rem + 0.8vw, 2.25rem);
    color: var(--lvpr-grey-blue);
    margin-top: 2rem;
}

.lvpr-single__content a {
    color: var(--lvpr-light-blue);
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
}

.lvpr-single__content a:hover {
    color: var(--lvpr-grey-blue);
}

.lvpr-single__content blockquote {
    border-left: 3px solid var(--lvpr-light-blue);
    padding: 0.5rem 0 0.5rem 1.5rem;
    font-family: var(--lvpr-font-sub);
    font-style: italic;
    font-size: clamp(1.5rem, 1rem + 0.8vw, 2rem);
    color: var(--lvpr-grey-blue);
}

.lvpr-single__content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

.lvpr-single__footer-nav {
    margin-top: 4rem;
    text-align: center;
}

/* Share buttons */
.lvpr-single__share {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1.5px solid var(--lvpr-light-blue);
}

.lvpr-single__share-label {
    font-family: var(--lvpr-font-heading);
    text-transform: uppercase;
    font-size: 1rem;
    color: var(--lvpr-grey-blue);
    margin-right: 0.5rem;
}

.lvpr-single__share-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 1.5px solid var(--lvpr-grey-blue);
    border-radius: 50px;
    color: var(--lvpr-grey-blue);
    text-decoration: none;
    font-family: var(--lvpr-font-body);
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lvpr-single__share-link:hover {
    background: var(--lvpr-light-blue);
    border-color: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
}

.lvpr-single__share-link.is-copied {
    background: var(--lvpr-grey-blue);
    border-color: var(--lvpr-grey-blue);
    color: var(--lvpr-cream);
}

/* Post tags */
.lvpr-single__tags {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1.5px solid var(--lvpr-light-blue);
    font-family: var(--lvpr-font-body);
    font-size: 0.95rem;
    color: var(--lvpr-grey-blue);
}

.lvpr-single__tags-label {
    font-weight: 700;
    margin-right: 0.5rem;
}

.lvpr-single__tags a {
    display: inline-block;
    background: #ebe6df;
    color: var(--lvpr-grey-blue);
    padding: 0.25rem 0.75rem;
    border-radius: 50px;
    text-decoration: none;
    margin-right: 0.35rem;
    transition: background 0.2s ease, color 0.2s ease;
}

.lvpr-single__tags a:hover {
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
}

/* Next / previous post navigation */
.lvpr-single__nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1.5px solid var(--lvpr-light-blue);
}

.lvpr-single__nav-link {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.25rem 1.5rem;
    background: #ebe6df;
    border-radius: 14px;
    text-decoration: none;
    color: var(--lvpr-grey-blue);
    transition: transform 0.25s ease, background 0.25s ease;
}

.lvpr-single__nav-link:hover {
    transform: translateY(-2px);
    background: var(--lvpr-light-blue);
    color: var(--lvpr-cream);
}

.lvpr-single__nav-link--next {
    text-align: right;
    grid-column: 2;
}

.lvpr-single__nav-label {
    font-family: var(--lvpr-font-heading);
    text-transform: uppercase;
    font-size: 0.9rem;
    opacity: 0.85;
}

.lvpr-single__nav-title {
    font-family: var(--lvpr-font-sub);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.3;
}

/* Blog layout responsive */
@media (max-width: 1024px) {
    .lvpr-blog__layout {
        grid-template-columns: 1fr;
    }

    .lvpr-sidebar {
        position: static;
        margin-top: 4rem;
        border-top: 1.5px solid var(--lvpr-light-blue);
        padding-top: 2.5rem;
    }

    .lvpr-sidebar__widget:first-child { border-top: 0; padding-top: 0; }
}

@media (max-width: 600px) {
    .lvpr-single__nav {
        grid-template-columns: 1fr;
    }
    .lvpr-single__nav-link--next {
        grid-column: 1;
        text-align: left;
    }
}

/* Blog responsive */
@media (max-width: 900px) {
    .lvpr-blog__post--featured {
        flex-direction: column;
        gap: 1.25rem;
    }
    .lvpr-blog__post--featured .lvpr-blog__thumb { aspect-ratio: 16 / 10; }
}

@media (max-width: 600px) {
    .lvpr-blog__grid {
        grid-template-columns: 1fr;
    }
}

/* ─── Responsive ─── */
@media (max-width: 1200px) {
    :root { --lvpr-side-pad: clamp(1.5rem, 4vw, 4rem); }

    .lvpr-hero__tagline {
        white-space: normal;
        font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    }

    .lvpr-hero__heading {
        font-size: clamp(4rem, 2.5rem + 6vw, 8rem);
    }

    .lvpr-hero__logo img {
        height: clamp(4.5rem, 8vw, 7rem);
    }

    .lvpr-hero__topbar {
        padding: 2rem 1.5rem 1rem !important;
    }

    .lvpr-btn.lvpr-hero__cta {
        font-size: clamp(1rem, 0.5vw + 0.75rem, 1.5rem);
        padding: 0.6rem 1.25rem;
    }

    .lvpr-clients__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    :root { --lvpr-side-pad: 1.5rem; }

    .lvpr-love-letters__grid {
        grid-template-columns: 1fr;
    }
    .lvpr-clients__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    /* Hero: stack logo on top, social below, both centered */
    .lvpr-hero__topbar {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        padding: 2rem 1rem 1rem !important;
    }

    .lvpr-hero__logo {
        text-align: center;
    }

    .lvpr-hero__logo img {
        height: clamp(5rem, 14vw, 8rem);
        margin: 0 auto;
    }

    .lvpr-hero__social {
        margin-left: 0 !important;
        justify-content: center;
    }

    .lvpr-hero__text {
        top: 40%;
        bottom: auto;
        text-align: center;
        padding: 0 1.5rem;
    }

    .lvpr-hero__heading,
    .lvpr-hero__tagline {
        text-align: center;
        max-width: 100%;
    }

    .lvpr-hero__tagline {
        margin: 0 auto;
    }
}

@media (max-width: 767px) {
    .lvpr-section { padding: 2rem 0; }

    section.lvpr-hero.lvpr-section { padding: 0; }

    .lvpr-hero__cloud-wrap {
        margin-left: 0;
        margin-right: 0;
    }

    .lvpr-hero__heading {
        font-size: clamp(3.5rem, 1rem + 10vw, 5.5rem);
    }

    .lvpr-hero__tagline {
        font-size: clamp(1.25rem, 0.75rem + 2vw, 1.85rem);
    }

    .lvpr-hero__logo img {
        height: clamp(4rem, 15vw, 6rem);
    }

    .lvpr-hero__topbar {
        padding: 1.5rem 1rem 1rem !important;
    }

    .lvpr-btn.lvpr-hero__cta {
        font-size: 1rem;
        padding: 0.5rem 1.25rem;
    }

    .lvpr-clients__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lvpr-services__grid {
        grid-template-columns: 1fr;
    }

    .lvpr-contact .lvpr-btn {
        min-width: 0;
        width: 100%;
    }
}

@media (max-width: 520px) {
    .lvpr-love-letters__grid {
        grid-template-columns: 1fr;
    }
    .lvpr-clients__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
