.sohv-campers-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.sohv-camper-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 10px;
    overflow: hidden;
}

.sohv-camper-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.sohv-camper-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.sohv-camper-card__content { padding: 18px; }
.sohv-camper-card__title { margin: 0 0 10px; font-size: 20px; }
.sohv-camper-card__meta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; opacity: .75; }
.sohv-camper-card__price { font-size: 22px; font-weight: 700; margin-bottom: 16px; }
.sohv-camper-button { display: inline-block; padding: 10px 16px; border-radius: 4px; background: #222; color: #fff; text-decoration: none; }

/* Single camper */
.sohv-single-camper {
    --sohv-ink: #151515;
    --sohv-muted: #6b6b6b;
    --sohv-line: #e8e8e8;
    --sohv-soft: #f7f7f7;
    --sohv-accent: #c98b3a;
    --sohv-accent-dark: #ad7229;
    background: #fff;
    color: var(--sohv-ink);
    padding: 34px 20px 64px;
}

.sohv-single-camper * { box-sizing: border-box; }
.sohv-single-camper__inner { width: min(1320px, 100%); margin: 0 auto; }
.sohv-single-camper__breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 24px; color: #888; font-size: 13px; }
.sohv-single-camper__breadcrumbs a { color: inherit; text-decoration: none; }
.sohv-single-camper__breadcrumbs a:hover { color: var(--sohv-ink); }

.sohv-single-camper__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
    gap: clamp(30px, 4vw, 58px);
    align-items: start;
}

.sohv-gallery { min-width: 0; }
.sohv-gallery__stage { position: relative; overflow: hidden; border-radius: 14px; background: #f2f2f2; aspect-ratio: 4 / 3; }
.sohv-gallery__main { display: block; width: 100%; height: 100%; object-fit: cover; }
.sohv-gallery__placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #888; }
.sohv-gallery__badge { position: absolute; z-index: 3; top: 16px; left: 16px; padding: 8px 13px; border-radius: 999px; background: #232323; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .02em; }
.sohv-gallery__arrow { position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: #111; font-size: 32px; line-height: 1; cursor: pointer; box-shadow: 0 4px 18px rgba(0,0,0,.14); }
.sohv-gallery__arrow:hover { background: #fff; }
.sohv-gallery__arrow--prev { left: 16px; }
.sohv-gallery__arrow--next { right: 16px; }
.sohv-gallery__counter { position: absolute; left: 16px; bottom: 16px; z-index: 3; padding: 7px 10px; border-radius: 7px; background: rgba(25,25,25,.78); color: #fff; font-size: 12px; font-weight: 700; }
.sohv-gallery__thumbs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(96px, 118px); gap: 10px; overflow-x: auto; padding: 12px 2px 4px; scrollbar-width: thin; }
.sohv-gallery__thumb { padding: 0; border: 2px solid transparent; border-radius: 9px; overflow: hidden; background: #eee; aspect-ratio: 4 / 3; cursor: pointer; }
.sohv-gallery__thumb.is-active { border-color: var(--sohv-accent); }
.sohv-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.sohv-single-camper__summary { min-width: 0; }
.sohv-single-camper__title { margin: 0 0 14px; font-size: clamp(31px, 3vw, 46px); line-height: 1.06; letter-spacing: -.025em; }
.sohv-single-camper__quickfacts { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 24px; }
.sohv-single-camper__quickfacts span { display: inline-flex; gap: 6px; align-items: center; padding: 7px 10px; border-radius: 7px; background: var(--sohv-soft); color: #555; font-size: 13px; }
.sohv-single-camper__quickfacts strong { color: #888; font-weight: 600; }
.sohv-single-camper__price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin: 0 0 13px; }
.sohv-single-camper__price { margin: 0; font-size: clamp(28px, 3vw, 38px); line-height: 1; font-weight: 800; letter-spacing: -.02em; }
.sohv-single-camper__before-price { color: #999; text-decoration: line-through; font-size: 16px; }
.sohv-single-camper__lead { margin: 0 0 24px; color: #4a4a4a; font-size: 15px; line-height: 1.65; }

.sohv-single-camper__specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--sohv-line); border-left: 1px solid var(--sohv-line); margin-bottom: 26px; }
.sohv-spec { min-height: 70px; padding: 13px 15px; border-right: 1px solid var(--sohv-line); border-bottom: 1px solid var(--sohv-line); display: flex; flex-direction: column; justify-content: center; gap: 3px; background: #fff; }
.sohv-spec__label { color: #888; font-size: 11px; line-height: 1.25; text-transform: uppercase; letter-spacing: .04em; }
.sohv-spec strong { font-size: 14px; line-height: 1.35; }

.sohv-dealer-card { padding: 24px; border-radius: 14px; background: linear-gradient(135deg, #faf7f2 0%, #f6f2ed 100%); border: 1px solid #eee8e0; }
.sohv-dealer-card__top { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 18px; margin-bottom: 17px; border-bottom: 1px solid rgba(0,0,0,.08); }
.sohv-dealer-card__eyebrow { display: block; margin-bottom: 3px; color: #777; font-size: 12px; }
.sohv-dealer-card h2 { margin: 0; font-size: 24px; line-height: 1.2; }
.sohv-dealer-card__logo { max-width: 170px; max-height: 62px; object-fit: contain; }
.sohv-dealer-card__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 18px; margin-bottom: 19px; font-size: 13px; }
.sohv-dealer-card__details a, .sohv-dealer-card__details span { color: #444; text-decoration: none; overflow-wrap: anywhere; }
.sohv-dealer-card__details a:hover { color: var(--sohv-accent-dark); }
.sohv-dealer-card__button { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; padding: 12px 18px; border-radius: 8px; background: var(--sohv-accent); color: #fff !important; text-decoration: none !important; text-transform: uppercase; font-size: 13px; font-weight: 800; letter-spacing: .02em; transition: transform .15s ease, background .15s ease; }
.sohv-dealer-card__button:hover { background: var(--sohv-accent-dark); transform: translateY(-1px); }
.sohv-dealer-card__button.is-disabled { background: #aaa; cursor: default; }

.sohv-single-camper__about { margin-top: clamp(38px, 5vw, 62px); padding: clamp(24px, 3vw, 38px); border: 1px solid var(--sohv-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 28px rgba(0,0,0,.035); }
.sohv-single-camper__about h2 { margin: 0 0 16px; font-size: 25px; }
.sohv-single-camper__description { color: #444; font-size: 15px; line-height: 1.75; }
.sohv-single-camper__description p:first-child { margin-top: 0; }
.sohv-single-camper__description p:last-child { margin-bottom: 0; }

@media (max-width: 980px) {
    .sohv-single-camper__hero { grid-template-columns: 1fr; }
    .sohv-single-camper__summary { max-width: none; }
    .sohv-dealer-card__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .sohv-campers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .sohv-campers-grid { grid-template-columns: 1fr; }
    .sohv-single-camper { padding: 22px 14px 44px; }
    .sohv-single-camper__breadcrumbs { margin-bottom: 16px; }
    .sohv-gallery__stage { border-radius: 10px; }
    .sohv-gallery__arrow { width: 38px; height: 38px; font-size: 28px; }
    .sohv-gallery__arrow--prev { left: 10px; }
    .sohv-gallery__arrow--next { right: 10px; }
    .sohv-gallery__counter { left: 10px; bottom: 10px; }
    .sohv-gallery__thumbs { grid-auto-columns: 82px; gap: 7px; }
    .sohv-single-camper__title { font-size: 31px; }
    .sohv-single-camper__specs { grid-template-columns: 1fr 1fr; }
    .sohv-dealer-card { padding: 19px; }
    .sohv-dealer-card__top { align-items: flex-start; }
    .sohv-dealer-card__logo { max-width: 120px; max-height: 48px; }
    .sohv-dealer-card__details { grid-template-columns: 1fr; }
}
