/* ============================================================
   Oravine — Public site visual enhancement layer
   Scoped entirely to .oravine-site so the admin is untouched.
   Layers premium depth, motion and polish on top of the
   compiled Tailwind utilities already in the markup.
   ============================================================ */

/* Colour, radius, spacing and motion tokens live in oravine-ui.css,
   which loads after this file. Only the legacy shadow aliases used by
   the rules below are declared here — they alias the shared elevation
   scale so there is still one source of truth. */
.oravine-site {
    --os-green-dark: color-mix(in srgb, var(--os-green), #16240a 18%);
    --os-shadow-sm: var(--os-e-1);
    --os-shadow-md: var(--os-e-2);
    --os-shadow-lg: var(--os-e-3);
    --os-shadow-green: var(--os-e-brand);

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    scroll-behavior: smooth;
}

/* Respect reduced-motion preferences everywhere below. */
@media (prefers-reduced-motion: reduce) {
    .oravine-site * {
        animation-duration: 0.001ms !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}

/* Links never show an underline decoration on the public site
   (overrides Tailwind hover:underline utilities such as the "back" links). */
.oravine-site a,
.oravine-site a:hover,
.oravine-site a:focus,
.oravine-site a:active {
    text-decoration: none;
}

/* ---------- Typography polish ---------- */

.oravine-site h1 {
    letter-spacing: -0.025em;
    line-height: 1.05;
}

.oravine-site h2 {
    letter-spacing: -0.02em;
}

.oravine-site h3 {
    letter-spacing: -0.01em;
}

/* Heading accents are handled by the `.os-kicker` component in
   oravine-ui.css — a decorative bar under every centred H2 added
   noise without carrying meaning. */

/* ---------- Buttons: premium gradient + lift + sheen ---------- */

.oravine-site .btn-primary,
.oravine-site .btn-secondary {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.25s ease,
                background-color 0.25s ease,
                color 0.25s ease;
    will-change: transform;
}

.oravine-site .btn-primary {
    background-image: linear-gradient(135deg, #acc62a 0%, var(--os-green) 45%, var(--os-green-dark) 100%);
    box-shadow: var(--os-shadow-green);
    border: none;
}

.oravine-site .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 30px -8px rgba(154, 182, 26, 0.55);
    color: #fff;
}

.oravine-site .btn-primary:active {
    transform: translateY(0);
}

/* Sweeping sheen on hover */
.oravine-site .btn-primary::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(110deg, transparent 25%, rgba(255, 255, 255, 0.4) 50%, transparent 75%);
    transform: translateX(-120%);
    transition: transform 0.7s ease;
}

.oravine-site .btn-primary:hover::before {
    transform: translateX(120%);
}

.oravine-site .btn-secondary {
    backdrop-filter: blur(4px);
}

.oravine-site .btn-secondary:hover {
    transform: translateY(-2px);
    background-color: var(--os-green);
    color: #fff;
    box-shadow: var(--os-shadow-green);
}

/* ---------- Cards: soft elevation + smooth hover lift ---------- */

/* Base depth for the card pattern (rounded-2xl blocks) */
.oravine-site .rounded-2xl {
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.3s ease,
                border-color 0.3s ease;
}

/* Bordered cards get a real shadow instead of a flat outline */
.oravine-site .rounded-2xl.border {
    box-shadow: var(--os-shadow-sm);
}

/* Only cards that lead somewhere lift on hover — a static block that
   moves under the pointer promises an interaction it doesn't have. */
.oravine-site a.rounded-2xl:hover,
.oravine-site button.rounded-2xl:hover,
.oravine-site .rounded-2xl.group:hover {
    transform: translateY(-4px);
    box-shadow: var(--os-shadow-lg);
    border-color: rgba(154, 182, 26, 0.45);
}

/* Product/feature imagery zoom a touch more smoothly */
.oravine-site .rounded-2xl img {
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Hero: layered gradient mesh backdrop ---------- */

.oravine-site main > section:first-child {
    background:
        radial-gradient(60rem 40rem at 85% -10%, rgba(154, 182, 26, 0.16), transparent 60%),
        radial-gradient(48rem 36rem at -10% 10%, rgba(154, 182, 26, 0.10), transparent 55%),
        linear-gradient(180deg, #ffffff 0%, var(--oravine-light, #f8fce1) 100%);
}

.oravine-site main > section:first-child h1 {
    font-size: clamp(2.5rem, 6vw, 4.25rem);
}

/* Gradient text on the highlighted hero word */
.oravine-site main > section:first-child h1 .text-oravine-green {
    background: linear-gradient(120deg, var(--os-green), var(--os-green-deep));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Feature icon tiles are now the `.os-icon-tile` component
   (oravine-ui.css) rather than a structural selector that broke
   whenever the utility classes on a card changed. */

/* Solution chips: small branded icon badge */
.oravine-site .solution-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    border-radius: 0.85rem;
    background: #fff;
    color: var(--os-green-deep);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
    transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

.oravine-site .solution-icon svg {
    width: 1.3rem;
    height: 1.3rem;
}

.oravine-site a:hover .solution-icon {
    transform: scale(1.05);
    background: var(--os-green);
    color: #fff;
}

/* ---------- Section rhythm ---------- */

.oravine-site section {
    position: relative;
}

/* ---------- Header: glassy, animated nav links, scroll shadow ---------- */

.oravine-site header {
    transition: box-shadow 0.3s ease, background-color 0.3s ease, height 0.3s ease;
}

.oravine-site header.is-scrolled {
    box-shadow: 0 6px 24px -10px rgba(16, 24, 40, 0.22);
    background-color: rgba(255, 255, 255, 0.85);
    backdrop-filter: saturate(180%) blur(12px);
}

/* Nav link states live on the `.os-nav-link` component
   (oravine-ui.css) so desktop and mobile stay in sync. */

/* ---------- Footer polish ---------- */

.oravine-site footer {
    background-image:
        radial-gradient(40rem 20rem at 80% 0%, rgba(154, 182, 26, 0.12), transparent 60%),
        linear-gradient(180deg, #1b2430 0%, var(--oravine-dark, var(--os-ink)) 100%);
}

.oravine-site footer a {
    transition: color 0.2s ease, transform 0.2s ease;
}

/* Footer link and social-chip styling lives on `.os-footer-link`
   and `.os-social` (oravine-ui.css). */

/* ---------- Inputs: friendlier focus rings ---------- */

.oravine-site input,
.oravine-site textarea,
.oravine-site select {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.oravine-site input:focus,
.oravine-site textarea:focus,
.oravine-site select:focus {
    box-shadow: 0 0 0 4px rgba(154, 182, 26, 0.15);
}

/* ---------- Category / filter pills ---------- */

.oravine-site button.rounded-full {
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.oravine-site button.rounded-full:hover {
    transform: translateY(-1px);
}

/* ---------- Scroll-reveal motion ---------- */

.oravine-site [data-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.oravine-site [data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

/* Stagger children when a container is revealed */
.oravine-site [data-reveal-stagger] > * {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.oravine-site [data-reveal-stagger].is-visible > * {
    opacity: 1;
    transform: none;
}

.oravine-site [data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: 0.08s; }
.oravine-site [data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: 0.16s; }
.oravine-site [data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: 0.24s; }
.oravine-site [data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: 0.32s; }
.oravine-site [data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: 0.40s; }

/* ========================================================
   Product page — unified ps-toolbar + product-card grid
   ======================================================== */

/* ── Toolbar container ── */
/* One rounded card holding search | pills | sort all in a row.
   On mobile the search stacks above pills+sort. */
.oravine-site .ps-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    background: #fff;
    border: 1.5px solid var(--os-line);
    border-radius: 1.25rem;
    box-shadow: 0 4px 20px -4px rgba(16, 24, 40, 0.09);
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.oravine-site .ps-toolbar:focus-within {
    border-color: rgba(154, 182, 26, 0.55);
    box-shadow: 0 0 0 3px rgba(154, 182, 26, 0.12),
                0 4px 20px -4px rgba(16, 24, 40, 0.1);
}

/* ── Search section ── */
.oravine-site .ps-field {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 100%;                  /* full row on mobile */
    min-width: 0;
    border-bottom: 1px solid var(--os-line);
}

@media (min-width: 768px) {
    .oravine-site .ps-field {
        flex: 1 1 auto;              /* grows on desktop */
        border-bottom: none;
        border-right: 1px solid var(--os-line);
    }
}

.oravine-site .ps-icon {
    position: absolute;
    left: 1.1rem;
    display: flex;
    align-items: center;
    color: var(--os-ink-faint);
    pointer-events: none;
}

.oravine-site .ps-icon svg {
    width: 1.1rem;
    height: 1.1rem;
}

.oravine-site .ps-input {
    width: 100%;
    padding: 0.9rem 2.75rem 0.9rem 2.6rem;
    border: none;
    background: transparent;
    font-size: 0.9375rem;
    color: var(--os-ink);
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}

.oravine-site .ps-input::placeholder { color: var(--os-ink-faint); }

.oravine-site .ps-input::-webkit-search-cancel-button,
.oravine-site .ps-input::-webkit-search-decoration { display: none; }

/* × clear button */
.oravine-site .ps-clear {
    position: absolute;
    right: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    background: var(--os-surface-sunk);
    color: var(--os-ink-muted);
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    transition: background-color 0.2s ease, color 0.2s ease,
                transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.oravine-site .ps-clear svg { width: 0.75rem; height: 0.75rem; }

.oravine-site .ps-clear:hover {
    background: var(--os-green);
    color: #fff;
    transform: rotate(90deg) scale(1.1);
}

/* ── Category pills section (horizontally scrollable) ── */
.oravine-site .ps-cats {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.625rem 0.875rem;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.oravine-site .ps-cats::-webkit-scrollbar { display: none; }

/* ── Category pills ── */
.oravine-site .cat-pill {
    padding: 0.35rem 0.875rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 500;
    border: 1.5px solid var(--os-line);
    background: transparent;
    color: var(--os-ink-body);
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background-color 0.18s ease, color 0.18s ease,
                border-color 0.18s ease, box-shadow 0.18s ease;
}

.oravine-site .cat-pill:hover {
    background: rgba(154, 182, 26, 0.10);
    color: var(--os-green-deep);
    border-color: rgba(154, 182, 26, 0.4);
}

.oravine-site .cat-pill.is-active {
    background: var(--os-green);
    color: #fff;
    border-color: var(--os-green);
    box-shadow: 0 2px 8px -1px rgba(154, 182, 26, 0.45);
}

/* ── Sort dropdown ── */
.oravine-site .ps-sort {
    flex-shrink: 0;
    padding: 0.9rem 2.25rem 0.9rem 1rem;
    border: none;
    border-left: 1px solid var(--os-line);
    background-color: #fafafa;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239ca3af' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 0.9rem;
    appearance: none;
    -webkit-appearance: none;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--os-ink-body);
    cursor: pointer;
    white-space: nowrap;
    outline: none;
    transition: background-color 0.15s ease;
}

.oravine-site .ps-sort:focus { background-color: var(--os-surface-sunk); }

/* ── Result / total count ── */
.oravine-site .ps-count,
.oravine-site .ps-total {
    font-size: 0.8125rem;
    color: var(--os-ink-faint);
    animation: ps-fade-slide 0.25s ease;
}

.oravine-site .ps-count strong { color: var(--os-green-deep); font-weight: 700; }
.oravine-site .ps-count em    { font-style: italic; color: var(--os-ink-body); }

@keyframes ps-fade-slide {
    from { opacity: 0; transform: translateY(-5px); }
    to   { opacity: 1; transform: none; }
}

/* ── Product card ── */
.oravine-site .product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1.5px solid var(--os-line);
    border-radius: 1.25rem;
    overflow: hidden;
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.3s ease,
                border-color 0.3s ease;
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.05);
}

.oravine-site .product-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 48px -12px rgba(16, 24, 40, 0.16);
    border-color: rgba(154, 182, 26, 0.35);
}

/* Bestseller ribbon */
.oravine-site .product-badge {
    position: absolute;
    top: 0.875rem;
    left: 0.875rem;
    z-index: 10;
    background: var(--os-green);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
}

/* Image section */
.oravine-site .product-img {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #f6fadf 0%, #edf2d6 100%);
    overflow: hidden;
}

.oravine-site .product-img img {
    width: 68%;
    height: 68%;
    object-fit: contain;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.oravine-site .product-card:hover .product-img img {
    transform: scale(1.1);
}

/* Text body */
.oravine-site .product-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.1rem 1.25rem 1.25rem;
    gap: 0.25rem;
}

.oravine-site .product-cat {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--os-green);
}

.oravine-site .product-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--os-ink);
    line-height: 1.35;
    margin: 0;
}

.oravine-site .product-desc {
    font-size: 0.8125rem;
    color: var(--os-ink-muted);
    line-height: 1.55;
    margin: 0.1rem 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Price + CTA row */
.oravine-site .product-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.875rem;
    border-top: 1px solid var(--os-surface-sunk);
}

.oravine-site .price-tag {
    font-size: 1.0625rem;
    font-weight: 700;
    background: linear-gradient(120deg, var(--os-green), var(--os-green-deep));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    flex-shrink: 0;
}

/* "Where to Buy" inline link with arrow */
.oravine-site .product-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--os-green-deep);
    transition: gap 0.2s ease, color 0.2s ease;
    flex-shrink: 0;
}

.oravine-site .product-cta svg {
    width: 0.875rem;
    height: 0.875rem;
    transition: transform 0.2s ease;
}

.oravine-site .product-card:hover .product-cta {
    color: var(--os-green);
    gap: 0.5rem;
}

.oravine-site .product-card:hover .product-cta svg {
    transform: translateX(3px);
}

/* ── Empty state ── */
.oravine-site .ps-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5rem 1rem;
    text-align: center;
    animation: ps-fade-slide 0.35s ease;
}

.oravine-site .ps-empty-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 1.75rem;
    background: var(--os-surface-sunk);
    color: #c4c9d4;
    margin-bottom: 1.5rem;
}

.oravine-site .ps-empty-icon svg { width: 2.5rem; height: 2.5rem; }
.oravine-site .ps-empty-title { font-size: 1.125rem; font-weight: 600; color: var(--os-ink); margin: 0 0 0.5rem; }
.oravine-site .ps-empty-sub   { font-size: 0.9375rem; color: var(--os-ink-muted); margin: 0 0 1.75rem; }

.oravine-site .ps-empty-btn {
    padding: 0.625rem 1.75rem;
    border-radius: 999px;
    background: var(--os-green);
    color: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 14px -3px rgba(154, 182, 26, 0.45);
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s ease;
}

.oravine-site .ps-empty-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px -4px rgba(154, 182, 26, 0.55);
}

/* ========================================================
   Product discovery experience
   ======================================================== */
.oravine-site .section-kicker {
    display: inline-block;
    color: var(--os-green-deep);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1;
    text-transform: uppercase;
}

.oravine-site .home-product-lines {
    position: relative;
    overflow: hidden;
    padding: 4.5rem 0;
    background:
        radial-gradient(circle at 12% 8%, rgba(154, 182, 26, .12), transparent 28rem),
        var(--os-surface-soft);
}

.oravine-site .product-lines-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .7fr);
    align-items: end;
    gap: 2rem;
    margin-bottom: 1.8rem;
}

.oravine-site .product-lines-heading h2 {
    margin: .7rem 0 0;
    color: var(--os-ink);
    font-family: var(--os-display, Georgia, serif);
    font-size: clamp(2rem, 3.2vw, 3.25rem);
    line-height: 1;
}

.oravine-site .product-lines-heading > p {
    margin: 0;
    color: var(--os-ink-muted);
    font-size: .96rem;
    line-height: 1.65;
}

.oravine-site .product-lines-grid {
    display: grid;
    grid-template-columns: repeat(var(--product-line-count), minmax(0, 1fr));
    gap: 1rem;
}

.oravine-site .product-line-card {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 13rem;
    overflow: hidden;
    border: 1px solid rgba(95, 116, 16, .12);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 14px 38px -32px rgba(30, 48, 20, .42);
    color: inherit;
    transition: transform .35s cubic-bezier(.22, 1, .36, 1), box-shadow .35s ease, border-color .35s ease;
}

.oravine-site .product-line-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: .22rem;
    background: var(--os-green);
}

.oravine-site .product-line-card:nth-child(even) {
    background: linear-gradient(145deg, var(--os-dark-raised), #17271e);
    color: #fff;
}

.oravine-site .product-line-card:hover {
    transform: translateY(-4px);
    border-color: rgba(154, 182, 26, .42);
    box-shadow: 0 24px 48px -34px rgba(30, 48, 20, .52);
}

.oravine-site .product-line-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 13rem;
    padding: 1.45rem;
}

.oravine-site .product-line-count {
    padding: .32rem .58rem;
    border: 1px solid rgba(95, 116, 16, .16);
    border-radius: 999px;
    background: rgba(154, 182, 26, .09);
    color: var(--os-green-deep);
    font-size: .64rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.oravine-site .product-line-card:nth-child(even) .product-line-count {
    border-color: rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .08);
    color: var(--os-green-on-dark);
}

.oravine-site .product-line-copy h3 {
    margin: 1rem 0 .55rem;
    color: var(--os-ink);
    font-family: var(--os-display, Georgia, serif);
    font-size: clamp(1.35rem, 2vw, 1.85rem);
    line-height: 1.12;
}

.oravine-site .product-line-card:nth-child(even) h3 { color: #fff; }
.oravine-site .product-line-copy p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--os-ink-muted);
    font-size: .8rem;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.oravine-site .product-line-card:nth-child(even) p { color: rgba(255,255,255,.66); }

.oravine-site .product-line-action {
    display: inline-block;
    margin-top: auto;
    padding-top: .85rem;
    color: var(--os-green-deep);
    font-size: .74rem;
    font-weight: 750;
    text-decoration: underline;
    text-decoration-color: rgba(95, 116, 16, .28);
    text-underline-offset: .24rem;
}

.oravine-site .product-line-card:nth-child(even) .product-line-action { color: var(--os-green-on-dark); }

.oravine-site .product-line-visual { position: relative; min-width: 0; }
.oravine-site .line-orbit {
    position: absolute;
    width: 20rem;
    aspect-ratio: 1;
    top: 50%;
    left: 51%;
    border: 1px solid rgba(154, 182, 26, .22);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(154, 182, 26, .16), rgba(154, 182, 26, .03) 55%, transparent 56%);
    transform: translate(-50%, -50%);
}

.oravine-site .product-line-card:nth-child(even) .line-orbit { border-color: rgba(220, 233, 155, .18); }
.oravine-site .line-product {
    position: absolute;
    z-index: 1;
    width: 70%;
    height: 72%;
    left: 15%;
    top: 14%;
    object-fit: contain;
    filter: drop-shadow(0 22px 18px rgba(24, 35, 20, .18));
    transition: transform .45s cubic-bezier(.22, 1, .36, 1);
}
.oravine-site .line-product-1 { width: 46%; height: 48%; left: -4%; top: 44%; transform: rotate(-7deg); }
.oravine-site .line-product-2 { width: 42%; height: 44%; left: 61%; top: 47%; transform: rotate(8deg); }
.oravine-site .product-line-card:hover .line-product-0 { transform: translateY(-.45rem) rotate(1deg); }
.oravine-site .product-line-card:hover .line-product-1 { transform: translate(-.25rem, -.2rem) rotate(-10deg); }
.oravine-site .product-line-card:hover .line-product-2 { transform: translate(.25rem, -.2rem) rotate(11deg); }
.oravine-site .line-fallback { opacity: .82; }

.oravine-site .products-hero {
    position: relative;
    overflow: hidden;
    padding: 6.3rem 0 5.25rem;
    background:
        radial-gradient(circle at 82% 38%, rgba(154, 182, 26, .18), transparent 21rem),
        linear-gradient(135deg, var(--os-surface-soft), #fff 62%);
}

.oravine-site .products-hero::after {
    content: "";
    position: absolute;
    width: 28rem;
    height: 28rem;
    right: -7rem;
    top: -13rem;
    border: 1px solid rgba(154, 182, 26, .2);
    border-radius: 50%;
}

.oravine-site .products-hero-copy { position: relative; z-index: 1; max-width: 47rem; }
.oravine-site .products-hero-copy h1 {
    margin: .8rem 0 1rem;
    color: var(--os-ink);
    font-family: var(--os-display, Georgia, serif);
    font-size: clamp(2.7rem, 6vw, 5.4rem);
    line-height: .98;
    letter-spacing: -.035em;
}
.oravine-site .products-hero-copy h1 span { color: var(--os-green); }
.oravine-site .products-hero-copy p { max-width: 40rem; margin: 0; color: var(--os-ink-muted); font-size: 1.08rem; line-height: 1.75; }

.oravine-site .product-catalogue-section { padding: 3.5rem 0 6rem; background: #fff; }
.oravine-site .catalogue-layout { display: grid; grid-template-columns: 17.5rem minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.oravine-site .catalogue-filters {
    position: sticky;
    top: 6.4rem;
    overflow: hidden;
    border: 1px solid var(--os-line);
    border-radius: 1.5rem;
    background: var(--os-surface-soft);
    box-shadow: 0 16px 45px -35px rgba(31, 48, 26, .5);
}
.oravine-site .filter-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.5rem 1.35rem 1.1rem; }
.oravine-site .filter-eyebrow { color: var(--os-ink-faint); font-size: .65rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.oravine-site .filter-heading h2 { margin: .25rem 0 0; color: var(--os-ink); font-size: 1.2rem; font-weight: 750; }
.oravine-site .filter-heading button { border: 0; background: transparent; color: var(--os-green-deep); font-size: .72rem; font-weight: 700; cursor: pointer; }
.oravine-site .filter-search { padding: 0 1.35rem 1.25rem; }
.oravine-site .filter-search label { display: block; margin-bottom: .45rem; color: var(--os-ink-body); font-size: .73rem; font-weight: 700; }
.oravine-site .filter-search-control { position: relative; display: flex; align-items: center; }
.oravine-site .filter-search-control > span { position: absolute; left: .8rem; color: var(--os-ink-faint); font-size: 1.15rem; }
.oravine-site .filter-search-control input { width: 100%; height: 2.8rem; padding: 0 2.25rem; border: 1px solid var(--os-line-strong); border-radius: .85rem; background: #fff; color: var(--os-ink); font-size: .82rem; outline: none; }
.oravine-site .filter-search-control input:focus { border-color: rgba(154,182,26,.7); box-shadow: 0 0 0 3px rgba(154,182,26,.1); }
.oravine-site .filter-search-control button { position: absolute; right: .55rem; width: 1.65rem; height: 1.65rem; border: 0; border-radius: 50%; background: var(--os-surface-sunk); color: #59635d; cursor: pointer; }
.oravine-site .filter-group { padding: 1.25rem 1.35rem; border-top: 1px solid var(--os-line); }
.oravine-site .filter-group h3 { margin: 0 0 .75rem; color: var(--os-ink); font-size: .77rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.oravine-site .filter-options { display: grid; gap: .2rem; }
.oravine-site .filter-option { display: grid; grid-template-columns: 1rem minmax(0,1fr) auto; align-items: center; gap: .65rem; width: 100%; padding: .48rem 0; border: 0; background: transparent; color: var(--os-ink-body); text-align: start; cursor: pointer; }
.oravine-site .filter-option:hover { color: var(--os-ink); }
.oravine-site .filter-check { width: 1rem; height: 1rem; border: 1.5px solid #cdd4ca; border-radius: .28rem; background: #fff; box-shadow: inset 0 0 0 3px #fff; }
.oravine-site .filter-option.is-active { color: var(--os-green-deep); font-weight: 700; }
.oravine-site .filter-option.is-active .filter-check { border-color: var(--os-green); background: var(--os-green); }
.oravine-site .filter-option small { min-width: 1.5rem; padding: .13rem .4rem; border-radius: 999px; background: var(--os-surface-sunk); color: #7c857f; font-size: .65rem; text-align: center; }

.oravine-site .catalogue-toolbar { min-height: 3.5rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.35rem; }
.oravine-site .catalogue-count { color: var(--os-ink-muted); font-size: .84rem; font-weight: 650; }
.oravine-site .catalogue-sort { min-width: 11.5rem; height: 2.65rem; padding: 0 2.2rem 0 .85rem; border: 1px solid var(--os-line-strong); border-radius: .8rem; background: #fff; color: var(--os-ink-body); font-size: .78rem; font-weight: 650; outline: none; }
.oravine-site .catalogue-sort:focus { border-color: rgba(154,182,26,.7); }
.oravine-site .active-filter-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.oravine-site .active-filter-list button { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .6rem; border: 0; border-radius: 999px; background: #f0f5dc; color: var(--os-green-deep); font-size: .7rem; font-weight: 700; cursor: pointer; }
.oravine-site .catalogue-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.2rem; }
.oravine-site .catalogue-grid .product-card { border-radius: 1.35rem; }
.oravine-site .catalogue-grid .product-img { aspect-ratio: 1.12 / 1; }
.oravine-site .catalogue-grid .product-name { margin-top: .25rem; font-size: 1rem; }
.oravine-site .catalogue-grid .product-name a { color: inherit; }
.oravine-site .product-image-link { position: relative; display: block; }
.oravine-site .product-meta-row { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .55rem; }
.oravine-site .product-meta-row span { padding: .22rem .48rem; border-radius: .38rem; background: var(--os-surface-sunk); color: var(--os-ink-muted); font-size: .65rem; }
.oravine-site .product-cta span { transition: transform .2s ease; }
.oravine-site .product-card:hover .product-cta span { transform: translateX(3px); }
.oravine-site .catalogue-mobile-bar { display: none; }

/* Product detail */
.oravine-site .product-detail-loading { display: grid; min-height: 60vh; place-items: center; }
.oravine-site .product-detail-page { padding: 1.6rem 0 6rem; background: linear-gradient(#fafbf7, #fff 34rem); }
.oravine-site .product-breadcrumb { display: flex; align-items: center; gap: .65rem; overflow: hidden; margin-bottom: 1.5rem; color: var(--os-ink-faint); font-size: .75rem; white-space: nowrap; }
.oravine-site .product-breadcrumb a { color: var(--os-ink-muted); }
.oravine-site .product-breadcrumb strong { overflow: hidden; color: var(--os-ink); font-weight: 650; text-overflow: ellipsis; }
.oravine-site .product-detail-hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); min-height: 36rem; overflow: hidden; border: 1px solid var(--os-line); border-radius: 2rem; background: #fff; box-shadow: 0 28px 80px -58px rgba(26, 45, 20, .55); }
.oravine-site .product-detail-media { position: relative; display: grid; min-height: 34rem; overflow: hidden; place-items: center; background: radial-gradient(circle at 50% 47%, #f8fbe8 0 28%, #edf3d2 29% 48%, #e7edc9 49% 100%); }
.oravine-site .product-detail-media img { position: relative; z-index: 2; width: 64%; height: 70%; object-fit: contain; filter: drop-shadow(0 35px 28px rgba(43, 59, 24, .2)); }
.oravine-site .detail-badge { position: absolute; z-index: 3; top: 1.5rem; left: 1.5rem; padding: .45rem .8rem; border-radius: 999px; background: var(--os-dark-raised); color: #fff; font-size: .68rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.oravine-site .detail-media-orbit { position: absolute; border: 1px solid rgba(95,116,16,.2); border-radius: 50%; }
.oravine-site .detail-media-orbit-one { width: 30rem; height: 30rem; }
.oravine-site .detail-media-orbit-two { width: 23rem; height: 23rem; }
.oravine-site .product-detail-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,5vw,4.5rem); }
.oravine-site .detail-kicker { align-self: flex-start; margin-bottom: 1rem; color: var(--os-green-deep); font-size: .73rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.oravine-site .product-detail-copy h1 { margin: 0; color: var(--os-ink); font-family: var(--os-display, Georgia, serif); font-size: clamp(2.3rem,4.7vw,4.2rem); line-height: 1.02; letter-spacing: -.03em; }
.oravine-site .detail-lead { margin: 1.35rem 0 0; color: var(--os-ink-muted); font-size: 1rem; line-height: 1.78; }
.oravine-site .detail-attributes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; margin-top: 1.7rem; }
.oravine-site .detail-attributes div { padding: .85rem; border-radius: .75rem; background: #f7f8f5; }
.oravine-site .detail-attributes span,.oravine-site .detail-price span { display: block; margin-bottom: .22rem; color: var(--os-ink-faint); font-size: .62rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.oravine-site .detail-attributes strong { display: block; overflow: hidden; color: var(--os-ink-body); font-size: .78rem; font-weight: 700; text-overflow: ellipsis; }
.oravine-site .detail-purchase-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.8rem; padding-top: 1.6rem; border-top: 1px solid var(--os-line); }
.oravine-site .detail-price strong { color: #1f3126; font-size: 1.65rem; }
.oravine-site .detail-primary-action { display: inline-flex; align-items: center; gap: .7rem; padding: .9rem 1.25rem; border-radius: .85rem; background: var(--os-green); color: #fff; font-size: .85rem; font-weight: 750; box-shadow: 0 12px 24px -13px rgba(95,116,16,.7); transition: transform .2s ease, background .2s ease; }
.oravine-site .detail-primary-action:hover { transform: translateY(-2px); background: var(--os-green-deep); }
.oravine-site .detail-assurance { display: flex; align-items: flex-start; gap: .75rem; margin-top: 1.5rem; color: #69726c; }
.oravine-site .detail-assurance > span { display: grid; flex: 0 0 1.65rem; height: 1.65rem; border-radius: 50%; background: #eff4df; color: #6e8518; font-size: .75rem; place-items: center; }
.oravine-site .detail-assurance p { margin: 0; font-size: .72rem; line-height: 1.45; }
.oravine-site .detail-assurance strong { color: #344038; }

.oravine-site .product-information-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; margin-top: 4.5rem; }
.oravine-site .product-info-card { position: relative; overflow: hidden; min-height: 20rem; padding: 2.5rem; border: 1px solid var(--os-line); border-radius: 1.5rem; background: var(--os-surface-soft); }
.oravine-site .product-info-card.is-accent { background: var(--os-dark-raised); color: #fff; }
.oravine-site .info-number { position: absolute; top: 1.5rem; right: 1.75rem; color: rgba(95,116,16,.16); font-family: var(--os-display,serif); font-size: 4.5rem; font-weight: 800; line-height: 1; }
.oravine-site .product-info-card.is-accent .info-number { color: rgba(255,255,255,.08); }
.oravine-site .product-info-card h2 { position: relative; margin: .55rem 0 2rem; color: var(--os-ink); font-family: var(--os-display,serif); font-size: 2rem; }
.oravine-site .product-info-card.is-accent h2 { color: #fff; }
.oravine-site .product-info-card.is-accent .section-kicker { color: var(--os-green-on-dark); }
.oravine-site .product-info-card p { position: relative; margin: 0; color: var(--os-ink-muted); font-size: .92rem; line-height: 1.85; white-space: pre-line; }
.oravine-site .product-info-card.is-accent p { color: rgba(255,255,255,.7); }

.oravine-site .related-products-section { padding-top: 5rem; }
.oravine-site .related-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.8rem; }
.oravine-site .related-heading h2 { margin: .55rem 0 0; color: #1d2a21; font-family: var(--os-display,serif); font-size: clamp(2rem,4vw,3rem); }
.oravine-site .related-heading > a { color: var(--os-green-deep); font-size: .82rem; font-weight: 750; }
.oravine-site .related-products-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.2rem; }
.oravine-site .related-product-card { padding: 1rem 1rem 1.25rem; border: 1px solid var(--os-line); border-radius: 1.2rem; background: #fff; color: inherit; transition: transform .25s ease, box-shadow .25s ease; }
.oravine-site .related-product-card:hover { transform: translateY(-4px); box-shadow: 0 22px 45px -34px rgba(26,45,20,.55); }
.oravine-site .related-product-card > div { display: grid; aspect-ratio: 1.6/1; margin-bottom: 1rem; border-radius: .85rem; background: #f1f5df; place-items: center; }
.oravine-site .related-product-card img { width: 56%; height: 78%; object-fit: contain; }
.oravine-site .related-product-card > span { color: var(--os-green-deep); font-size: .65rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.oravine-site .related-product-card h3 { margin: .35rem 0 .55rem; color: #263129; font-size: .95rem; }
.oravine-site .related-product-card > strong { color: var(--os-green-deep); font-size: .95rem; }
.oravine-site .product-not-found { display: flex; min-height: 64vh; flex-direction: column; align-items: center; justify-content: center; padding: 3rem 1.5rem; text-align: center; }
.oravine-site .product-not-found > span { color: #dfe7bd; font-family: var(--os-display,serif); font-size: 6rem; font-weight: 800; line-height: 1; }
.oravine-site .product-not-found h1 { margin: 1rem 0 .5rem; color: #243128; font-family: var(--os-display,serif); font-size: 2.5rem; }
.oravine-site .product-not-found p { color: var(--os-ink-muted); }
.oravine-site .product-not-found a { margin-top: 1.25rem; padding: .8rem 1.2rem; border-radius: .75rem; background: var(--os-green); color: #fff; font-weight: 700; }

@media (max-width: 1100px) {
    .oravine-site .catalogue-layout { grid-template-columns: 15.5rem minmax(0,1fr); gap: 1.5rem; }
    .oravine-site .catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
    .oravine-site .home-product-lines { padding: 3.5rem 0; }
    .oravine-site .product-lines-heading { grid-template-columns: 1fr; gap: .75rem; margin-bottom: 1.5rem; }
    .oravine-site .product-lines-heading h2 { font-size: 2.25rem; }
    .oravine-site .product-lines-grid { grid-template-columns: 1fr; gap: .75rem; }
    .oravine-site .product-line-card { min-height: 0; }
    .oravine-site .product-line-copy { min-height: 0; padding: 1.25rem; }
    .oravine-site .products-hero { padding: 4.2rem 0 3.8rem; }
    .oravine-site .product-catalogue-section { padding-top: 1.25rem; }
    .oravine-site .catalogue-mobile-bar { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-bottom: 1rem; }
    .oravine-site .mobile-filter-button { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 2.65rem; border: 1px solid var(--os-line-strong); border-radius: .8rem; background: #fff; color: var(--os-ink-body); font-size: .78rem; font-weight: 700; }
    .oravine-site .mobile-filter-button strong { display: grid; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--os-green); color: #fff; font-size: .66rem; place-items: center; }
    .oravine-site .catalogue-sort { min-width: 0; width: 100%; }
    .oravine-site .catalogue-layout { display: block; }
    .oravine-site .catalogue-filters { position: static; display: none; margin-bottom: 1.2rem; }
    .oravine-site .catalogue-filters.is-open { display: block; }
    .oravine-site .desktop-sort { display: none; }
    .oravine-site .catalogue-toolbar { min-height: auto; margin-bottom: 1rem; }
    .oravine-site .catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
    .oravine-site .catalogue-grid .product-body { padding: .9rem; }
    .oravine-site .catalogue-grid .product-name { font-size: .9rem; }
    .oravine-site .catalogue-grid .product-desc { display: none; }
    .oravine-site .catalogue-grid .product-meta-row { display: none; }
    .oravine-site .catalogue-grid .product-footer { align-items: flex-start; flex-direction: column; }
    .oravine-site .catalogue-grid .product-cta { font-size: .72rem; }
    .oravine-site .product-detail-page { padding-top: 1rem; }
    .oravine-site .product-detail-hero { grid-template-columns: 1fr; border-radius: 1.35rem; }
    .oravine-site .product-detail-media { min-height: 24rem; }
    .oravine-site .product-detail-copy { padding: 2rem 1.35rem 2.4rem; }
    .oravine-site .detail-attributes { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .oravine-site .detail-purchase-row { align-items: stretch; flex-direction: column; }
    .oravine-site .detail-primary-action { justify-content: center; }
    .oravine-site .product-information-grid { grid-template-columns: 1fr; margin-top: 2.5rem; }
    .oravine-site .product-info-card { min-height: 0; padding: 1.7rem; }
    .oravine-site .related-products-grid { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
    .oravine-site .catalogue-grid { grid-template-columns: 1fr; }
}

html[dir="rtl"] .oravine-site .product-line-copy { padding: 1.45rem; }
html[dir="rtl"] .oravine-site .filter-search-control > span { right: .8rem; left: auto; }
html[dir="rtl"] .oravine-site .filter-search-control button { right: auto; left: .55rem; }
html[dir="rtl"] .oravine-site .detail-badge { right: 1.5rem; left: auto; }
html[dir="rtl"] .oravine-site .info-number { right: auto; left: 1.75rem; }

@media (max-width: 767px) {
    html[dir="rtl"] .oravine-site .product-line-copy { padding: 1.25rem; }
}

/* ================================================================
   Homepage hero carousel
   ================================================================ */

.oravine-site .hero-carousel {
    --hero-accent: var(--os-green);
    --pointer-x: 0;
    --pointer-y: 0;
    position: relative;
    isolation: isolate;
    min-height: clamp(34rem, 72vh, 48rem);
    overflow: hidden;
    background: #f7f8f4;
}

.oravine-site .hero-carousel-track,
.oravine-site .hero-slide {
    min-height: inherit;
}

.oravine-site .hero-slide {
    position: absolute;
    inset: 0;
    display: grid;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(1.025);
    transition: opacity .75s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1), visibility .75s;
}

.oravine-site .hero-slide:first-child { position: relative; }
.oravine-site .hero-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; transform: scale(1); z-index: 1; }

.oravine-site .hero-slide-media,
.oravine-site .hero-slide-media img,
.oravine-site .hero-slide-wash {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.oravine-site .hero-slide-media { z-index: -3; overflow: hidden; }
.oravine-site .hero-slide-media img { object-fit: cover; transform: scale(1.04); transition: transform 7s linear; }
.oravine-site .hero-slide.is-active .hero-slide-media img { transform: scale(1); }

.oravine-site .hero-slide-wash {
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(249,250,247,var(--hero-overlay, .82)) 0%, rgba(249,250,247,calc(var(--hero-overlay, .82) * .92)) 39%, rgba(249,250,247,calc(var(--hero-overlay, .82) * .38)) 67%, rgba(249,250,247,.04) 100%),
        linear-gradient(180deg, rgba(255,255,255,.08), rgba(17,24,39,.08));
}

.oravine-site .hero-style-immersive .hero-slide-wash {
    background: linear-gradient(90deg, rgba(7,12,9,calc(var(--hero-overlay, .82) * .9)) 0%, rgba(7,12,9,calc(var(--hero-overlay, .82) * .68)) 42%, rgba(7,12,9,.1) 76%, transparent 100%);
}
.oravine-site .hero-style-immersive .hero-copy h1 { color: #fff; text-shadow: 0 10px 38px rgba(0,0,0,.18); }
.oravine-site .hero-style-immersive .hero-copy > p { color: rgba(255,255,255,.78); }
.oravine-site .hero-style-immersive .hero-eyebrow { color: color-mix(in srgb, var(--hero-accent), white 48%); }
.oravine-site .hero-style-immersive .hero-btn-secondary { color: #fff; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.12); }

.oravine-site .hero-slide:not(:has(.hero-slide-media)) .hero-slide-wash {
    background:
        radial-gradient(circle at 79% 45%, color-mix(in srgb, var(--hero-accent), transparent 72%) 0 13%, transparent 13.4%),
        radial-gradient(circle at 79% 45%, transparent 0 20%, color-mix(in srgb, var(--hero-accent), transparent 86%) 20.3% 20.7%, transparent 21%),
        linear-gradient(118deg, var(--os-surface-soft) 0 54%, color-mix(in srgb, var(--hero-accent), white 65%) 100%);
}

.oravine-site .hero-orbit {
    position: absolute;
    z-index: -1;
    border: 1px solid color-mix(in srgb, var(--hero-accent), transparent 56%);
    transform: rotate(33deg);
    pointer-events: none;
}
.oravine-site .hero-orbit-one { width: 17rem; height: 17rem; right: 11%; top: 16%; border-radius: 35% 65% 58% 42% / 52% 38% 62% 48%; }
.oravine-site .hero-orbit-two { width: 7rem; height: 7rem; right: 28%; bottom: 12%; border-radius: 50%; background: color-mix(in srgb, var(--hero-accent), transparent 90%); }
.oravine-site .hero-slide:has(.hero-slide-media) .hero-orbit { opacity: .45; }

.oravine-site .hero-visual-stage {
    position: absolute;
    z-index: -1;
    top: 8%;
    right: max(4%, calc((100vw - 80rem) / 2));
    width: min(44vw, 35rem);
    height: 84%;
    display: grid;
    place-items: center;
    perspective: 1100px;
    pointer-events: none;
    transform-style: preserve-3d;
    transform: rotateX(calc(var(--pointer-y) * -3deg)) rotateY(calc(var(--pointer-x) * 4deg));
    transition: transform .18s ease-out;
}
.oravine-site .hero-content-right .hero-visual-stage { right: auto; left: max(4%, calc((100vw - 80rem) / 2)); }
.oravine-site .hero-content-center .hero-visual-stage { left: 50%; right: auto; width: min(54vw, 44rem); transform: translateX(-50%) rotateX(calc(var(--pointer-y) * -2deg)) rotateY(calc(var(--pointer-x) * 3deg)); opacity: .34; }
.oravine-site .hero-depth-glow { position: absolute; width: 69%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 36% 32%, rgba(255,255,255,.88), color-mix(in srgb, var(--hero-accent), transparent 42%) 42%, transparent 72%); filter: blur(6px); transform: translateZ(-80px); }
.oravine-site .hero-depth-ring { position: absolute; border: 1px solid color-mix(in srgb, var(--hero-accent), transparent 43%); border-radius: 50%; box-shadow: 0 0 45px color-mix(in srgb, var(--hero-accent), transparent 82%); }
.oravine-site .hero-depth-ring-one { width: 84%; aspect-ratio: 1; transform: translateZ(-20px) rotateX(68deg) rotateZ(-18deg); animation: hero-ring-spin 16s linear infinite; }
.oravine-site .hero-depth-ring-two { width: 58%; aspect-ratio: 1; border-style: dashed; transform: translateZ(30px) rotateY(69deg) rotateZ(24deg); animation: hero-ring-spin-reverse 20s linear infinite; }
.oravine-site .hero-foreground-product { position: relative; z-index: 3; width: 84%; height: 88%; object-fit: contain; filter: drop-shadow(0 2.8rem 1.5rem rgba(31,41,18,.24)); transform: translate3d(calc(var(--pointer-x) * 11px), calc(var(--pointer-y) * 9px), 80px) rotate(calc(var(--pointer-x) * 1deg)); animation: hero-product-float 5.6s ease-in-out infinite; }
.oravine-site .hero-depth-chip { position: absolute; z-index: 4; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.72); border-radius: 1rem; background: rgba(255,255,255,.52); box-shadow: 0 15px 35px rgba(39,49,11,.12); backdrop-filter: blur(12px); }
.oravine-site .hero-depth-chip-one { top: 20%; right: 1%; width: 3.6rem; height: 3.6rem; transform: translate3d(calc(var(--pointer-x) * 17px), calc(var(--pointer-y) * 13px), 110px) rotate(9deg); }
.oravine-site .hero-depth-chip-one span { color: var(--hero-accent); font-size: 1.25rem; }
.oravine-site .hero-depth-chip-two { left: 4%; bottom: 20%; width: 2rem; height: 2rem; border-radius: 50%; background: color-mix(in srgb, var(--hero-accent), white 73%); transform: translate3d(calc(var(--pointer-x) * -14px), calc(var(--pointer-y) * -10px), 70px); }
.oravine-site .hero-style-editorial .hero-depth-glow { border-radius: 34% 66% 58% 42% / 59% 35% 65% 41%; }
.oravine-site .hero-style-editorial .hero-depth-ring-two,
.oravine-site .hero-style-editorial .hero-depth-chip { display: none; }
@keyframes hero-product-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -14px; } }
@keyframes hero-ring-spin { to { rotate: 360deg; } }
@keyframes hero-ring-spin-reverse { to { rotate: -360deg; } }

.oravine-site .hero-slide-inner {
    width: min(100% - 2rem, 80rem);
    min-height: inherit;
    margin-inline: auto;
    padding-block: clamp(5rem, 11vw, 8.5rem) 7rem;
    display: flex;
    align-items: center;
}

.oravine-site .hero-copy { width: min(43rem, 59%); }
.oravine-site .hero-content-center .hero-slide-inner { justify-content: center; text-align: center; }
.oravine-site .hero-content-center .hero-copy { width: min(48rem, 78%); }
.oravine-site .hero-content-center .hero-eyebrow,
.oravine-site .hero-content-center .hero-actions { justify-content: center; }
.oravine-site .hero-content-right .hero-slide-inner { justify-content: flex-end; }
.oravine-site .hero-content-right .hero-slide-wash { transform: scaleX(-1); }

.oravine-site .hero-eyebrow {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 1.2rem;
    color: color-mix(in srgb, var(--hero-accent), #35410b 42%);
    font-size: .75rem;
    font-weight: 750;
    letter-spacing: .16em;
    line-height: 1.2;
    text-transform: uppercase;
}
.oravine-site .hero-eyebrow span { width: 2rem; height: 2px; background: var(--hero-accent); }

.oravine-site .hero-copy h1 {
    margin: 0;
    max-width: 13ch;
    color: #111314;
    font-size: clamp(3rem, 6vw, 5.8rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .95;
    text-wrap: balance;
}
.oravine-site .hero-content-center .hero-copy h1 { margin-inline: auto; }
.oravine-site .hero-copy h1 span { display: block; color: var(--hero-accent); }
.oravine-site .hero-copy > p {
    max-width: 37rem;
    margin: 1.65rem 0 0;
    color: #667085;
    font-family: Inter, Arial, sans-serif;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    line-height: 1.7;
    text-wrap: pretty;
}
.oravine-site .hero-content-center .hero-copy > p { margin-inline: auto; }

.oravine-site .hero-eyebrow,
.oravine-site .hero-copy h1,
.oravine-site .hero-copy > p,
.oravine-site .hero-actions {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .55s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.oravine-site .hero-slide.is-active .hero-eyebrow,
.oravine-site .hero-slide.is-active .hero-copy h1,
.oravine-site .hero-slide.is-active .hero-copy > p,
.oravine-site .hero-slide.is-active .hero-actions { opacity: 1; transform: none; }
.oravine-site .hero-slide.is-active .hero-copy h1 { transition-delay: .08s; }
.oravine-site .hero-slide.is-active .hero-copy > p { transition-delay: .16s; }
.oravine-site .hero-slide.is-active .hero-actions { transition-delay: .24s; }

.oravine-site .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 2rem; }
.oravine-site .hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    min-height: 3.2rem;
    padding: .75rem 1.45rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: Inter, Arial, sans-serif;
    font-size: .91rem;
    font-weight: 650;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.oravine-site .hero-btn-primary { color: #fff; background: color-mix(in srgb, var(--hero-accent), #46560d 17%); box-shadow: 0 12px 28px -10px color-mix(in srgb, var(--hero-accent), transparent 25%); }
.oravine-site .hero-btn-primary span { font-size: 1.15rem; transition: transform .2s ease; }
.oravine-site .hero-btn-primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 17px 34px -12px color-mix(in srgb, var(--hero-accent), transparent 10%); }
.oravine-site .hero-btn-primary:hover span { transform: translateX(3px); }
.oravine-site .hero-btn-secondary { color: #27310b; background: rgba(255,255,255,.62); border-color: rgba(39,49,11,.23); backdrop-filter: blur(8px); }
.oravine-site .hero-btn-secondary:hover { color: #111; background: #fff; transform: translateY(-2px); }

.oravine-site .hero-carousel-controls {
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 2rem;
    width: min(100% - 2rem, 80rem);
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
}
.oravine-site .hero-dots,
.oravine-site .hero-arrows { display: flex; align-items: center; gap: .5rem; pointer-events: auto; }
.oravine-site .hero-dot { width: 2.5rem; height: 1.5rem; display: flex; align-items: center; padding: 0; border: 0; background: transparent; }
.oravine-site .hero-dot span { width: 100%; height: 3px; overflow: hidden; border-radius: 99px; background: rgba(31,41,55,.2); }
.oravine-site .hero-dot span::after { content: ""; display: block; width: 100%; height: 100%; background: var(--os-green); transform: scaleX(0); transform-origin: left; }
.oravine-site .hero-dot.is-active span::after { animation: hero-progress var(--slide-duration, 7000ms) linear forwards; }
@keyframes hero-progress { to { transform: scaleX(1); } }
.oravine-site .hero-arrows button { width: 2.8rem; height: 2.8rem; border-radius: 50%; border: 1px solid rgba(31,41,55,.18); background: rgba(255,255,255,.72); color: var(--os-ink); backdrop-filter: blur(10px); transition: background .2s, color .2s, transform .2s; }
.oravine-site .hero-arrows button:hover { color: #fff; background: var(--os-green); transform: translateY(-2px); }

@media (max-width: 760px) {
    .oravine-site .hero-carousel { min-height: 39rem; }
    .oravine-site .hero-slide-wash { background: linear-gradient(180deg, rgba(249,250,247,.96), rgba(249,250,247,.88) 61%, rgba(249,250,247,.32)); }
    .oravine-site .hero-slide-inner { padding-block: 5.5rem 6rem; align-items: flex-start; }
    .oravine-site .hero-copy,
    .oravine-site .hero-content-center .hero-copy { width: 100%; text-align: start; }
    .oravine-site .hero-content-center .hero-slide-inner,
    .oravine-site .hero-content-right .hero-slide-inner { justify-content: flex-start; }
    .oravine-site .hero-content-center .hero-copy h1 { margin-inline: 0; }
    .oravine-site .hero-content-center .hero-copy > p { margin-inline: 0; }
    .oravine-site .hero-content-center .hero-eyebrow,
    .oravine-site .hero-content-center .hero-actions { justify-content: flex-start; }
    .oravine-site .hero-copy h1 { font-size: clamp(2.75rem, 13vw, 4.3rem); }
    .oravine-site .hero-arrows { display: none; }
    .oravine-site .hero-dots { width: 100%; }
    .oravine-site .hero-dot { flex: 1; }
    .oravine-site .hero-visual-stage { top: 38%; right: -18%; width: 78vw; height: 57%; opacity: .28; }
    .oravine-site .hero-content-right .hero-visual-stage,
    .oravine-site .hero-content-center .hero-visual-stage { top: 38%; left: auto; right: -18%; width: 78vw; height: 57%; transform: none; opacity: .25; }
    .oravine-site .hero-foreground-product { width: 78%; height: 92%; }
}

@media (prefers-reduced-motion: reduce) {
    .oravine-site .hero-slide,
    .oravine-site .hero-slide-media img,
    .oravine-site .hero-eyebrow,
    .oravine-site .hero-copy h1,
    .oravine-site .hero-copy > p,
    .oravine-site .hero-actions { transition: none !important; transform: none !important; }
    .oravine-site .hero-visual-stage,
    .oravine-site .hero-foreground-product { animation: none !important; transform: none !important; }
    .oravine-site .hero-depth-ring { animation: none !important; }
    .oravine-site .hero-dot.is-active span::after { animation: none; transform: scaleX(1); }
}

/* ================================================================
   Homepage category solutions scroller
   ================================================================ */

.oravine-site .home-solutions {
    overflow: hidden;
    padding: clamp(4.5rem, 8vw, 7.25rem) 0;
    background:
        radial-gradient(circle at 8% 16%, rgba(154, 182, 26, .11), transparent 24rem),
        linear-gradient(180deg, #fff 0%, #f8faf5 100%);
}

.oravine-site .solutions-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 31rem);
    align-items: end;
    gap: 2rem;
    margin-bottom: 2.25rem;
}

.oravine-site .solutions-heading h2 {
    max-width: 13ch;
    margin: .55rem 0 0;
    color: var(--os-dark);
    font-size: clamp(2.2rem, 4.2vw, 4.25rem);
    font-weight: 690;
    letter-spacing: -.052em;
    line-height: .98;
    text-wrap: balance;
}

.oravine-site .solutions-heading > p {
    margin: 0 0 .25rem;
    color: var(--os-ink-muted);
    font-size: 1.02rem;
    line-height: 1.75;
    text-wrap: pretty;
}

.oravine-site .solutions-scroller {
    display: grid;
    grid-auto-columns: minmax(18rem, 31%);
    grid-auto-flow: column;
    gap: 1.15rem;
    overflow-x: auto;
    padding: .2rem .1rem 1.4rem;
    scroll-padding-inline: .1rem;
    scroll-snap-type: inline mandatory;
    scrollbar-color: var(--os-green) var(--os-line);
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}

.oravine-site .solutions-scroller::-webkit-scrollbar { height: 6px; }
.oravine-site .solutions-scroller::-webkit-scrollbar-track { border-radius: 999px; background: var(--os-line); }
.oravine-site .solutions-scroller::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--os-green); }

.oravine-site .solution-slide {
    position: relative;
    min-height: 28rem;
    overflow: hidden;
    scroll-snap-align: start;
    border: 1px solid rgba(44, 60, 38, .1);
    border-radius: 1.55rem;
    background: #fff;
    box-shadow: 0 20px 55px -42px rgba(38, 55, 31, .55);
    transition: transform .3s cubic-bezier(.22,1,.36,1), border-color .25s, box-shadow .3s;
}

.oravine-site .solution-slide:hover {
    transform: translateY(-5px);
    border-color: rgba(154, 182, 26, .5);
    box-shadow: 0 28px 58px -37px rgba(48, 67, 29, .55);
}

.oravine-site .solution-slide-media {
    position: relative;
    display: grid;
    height: 13rem;
    overflow: hidden;
    place-items: center;
    background:
        radial-gradient(circle at 70% 22%, rgba(255,255,255,.76), transparent 24%),
        linear-gradient(145deg, #eff4d9, #dce8a8);
}

.oravine-site .solution-slide-media::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 45%;
    background: linear-gradient(transparent, rgba(14, 22, 14, .12));
    pointer-events: none;
}

.oravine-site .solution-slide-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s cubic-bezier(.22,1,.36,1);
}

.oravine-site .solution-slide:hover .solution-slide-media img { transform: scale(1.045); }

.oravine-site .solution-slide-media > span {
    color: rgba(84, 105, 15, .26);
    font-size: 5.5rem;
    font-weight: 750;
    letter-spacing: -.08em;
}

.oravine-site .solution-slide-copy {
    display: flex;
    min-height: 15rem;
    padding: 1.55rem 1.55rem 1.45rem;
    flex-direction: column;
}

.oravine-site .solution-slide-label {
    overflow: hidden;
    color: #78825d;
    font-size: .67rem;
    font-weight: 780;
    letter-spacing: .13em;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.oravine-site .solution-slide h3 {
    margin: .65rem 0 0;
    color: var(--os-ink);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 670;
    letter-spacing: -.035em;
    line-height: 1.12;
    text-wrap: balance;
}

.oravine-site .solution-slide p {
    display: -webkit-box;
    overflow: hidden;
    margin: .75rem 0 0;
    color: var(--os-ink-muted);
    font-size: .9rem;
    line-height: 1.58;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.oravine-site .solution-slide-action {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: auto;
    padding-top: 1.15rem;
    color: #687d16;
    font-size: .74rem;
    font-weight: 780;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.oravine-site .solution-slide-action b { font-size: 1rem; transition: transform .2s; }
.oravine-site .solution-slide:hover .solution-slide-action b { transform: translateX(4px); }

html[dir="rtl"] .oravine-site .solution-slide-action b { transform: scaleX(-1); }
html[dir="rtl"] .oravine-site .solution-slide:hover .solution-slide-action b { transform: scaleX(-1) translateX(4px); }

@media (max-width: 900px) {
    .oravine-site .solutions-heading { grid-template-columns: 1fr; gap: 1rem; }
    .oravine-site .solutions-heading > p { max-width: 42rem; }
    .oravine-site .solutions-scroller { grid-auto-columns: minmax(17rem, 54%); }
}

@media (max-width: 600px) {
    .oravine-site .home-solutions { padding: 4rem 0; }
    .oravine-site .solutions-heading { margin-bottom: 1.55rem; }
    .oravine-site .solutions-scroller { grid-auto-columns: 85%; gap: .85rem; margin-inline-end: -1rem; }
    .oravine-site .solution-slide { min-height: 25.5rem; border-radius: 1.25rem; }
    .oravine-site .solution-slide-media { height: 11.5rem; }
    .oravine-site .solution-slide-copy { min-height: 14rem; padding: 1.3rem; }
}

/* ================================================================
   Homepage smile results and customer feedback
   ================================================================ */

.oravine-site .home-results,
.oravine-site .home-feedback { padding: clamp(4.5rem, 8vw, 7rem) 0; overflow: hidden; }
.oravine-site .home-results {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 10% 15%, rgba(154,182,26,.13), transparent 26rem),
        radial-gradient(circle at 92% 80%, rgba(154,182,26,.07), transparent 22rem),
        var(--os-dark);
}
.oravine-site .home-results::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(to bottom,black,transparent 78%);
}
.oravine-site .home-feedback { background: linear-gradient(180deg, var(--os-surface-soft), #fff); }

.oravine-site .results-heading,
.oravine-site .feedback-heading {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(18rem,32rem);
    gap: 2rem;
    align-items: end;
    margin-bottom: 2.25rem;
}
.oravine-site .results-heading h2,
.oravine-site .feedback-heading h2 {
    max-width: 13ch;
    margin: .55rem 0 0;
    font-size: clamp(2.35rem, 4.5vw, 4.45rem);
    font-weight: 690;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}
.oravine-site .results-heading h2 { color: #fff; }
.oravine-site .feedback-heading h2 { color: var(--os-dark); }
.oravine-site .results-heading > p,
.oravine-site .feedback-heading > p { margin: 0; font-size: 1rem; line-height: 1.75; text-wrap: pretty; }
.oravine-site .results-heading > p { color: rgba(255,255,255,.64); }
.oravine-site .feedback-heading > p { color: var(--os-ink-muted); }
.oravine-site .home-results .section-kicker { color: var(--os-green-on-dark); }

.oravine-site .results-scroller,
.oravine-site .feedback-scroller {
    display: grid;
    grid-auto-flow: column;
    gap: 1.2rem;
    overflow-x: auto;
    padding: .15rem .1rem 1.35rem;
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}
.oravine-site .results-scroller { grid-auto-columns: minmax(31rem, 54%); scrollbar-color: var(--os-green) rgba(255,255,255,.12); }
.oravine-site .feedback-scroller { grid-auto-columns: minmax(19rem, 32%); scrollbar-color: var(--os-green) var(--os-line); }
.oravine-site .results-scroller::-webkit-scrollbar,
.oravine-site .feedback-scroller::-webkit-scrollbar { height: 6px; }
.oravine-site .results-scroller::-webkit-scrollbar-thumb,
.oravine-site .feedback-scroller::-webkit-scrollbar-thumb { border-radius: 99px; background: var(--os-green); }

.oravine-site .result-card {
    overflow: hidden;
    scroll-snap-align: start;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 1.55rem;
    background: var(--os-dark-raised);
    box-shadow: 0 25px 55px -36px rgba(0,0,0,.8);
    transition: transform .3s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s;
}
.oravine-site .result-card:hover { transform:translateY(-5px); border-color:rgba(200,223,90,.4); box-shadow:0 30px 60px -34px rgba(0,0,0,.9); }
.oravine-site .smile-comparison {
    --comparison-position: 50%;
    position: relative;
    isolation: isolate;
    height: clamp(20rem, 36vw, 29rem);
    overflow: hidden;
    background: #111;
    user-select: none;
    touch-action: pan-y;
}
.oravine-site .comparison-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.oravine-site .comparison-before {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 100%;
    overflow: hidden;
    clip-path: inset(0 calc(100% - var(--comparison-position)) 0 0);
}
.oravine-site .comparison-before .comparison-image { width: 100%; }
.oravine-site .comparison-divider {
    position: absolute;
    z-index: 4;
    top: 0;
    bottom: 0;
    left: var(--comparison-position);
    width: 2px;
    background: rgba(255,255,255,.95);
    transform: translateX(-50%);
    pointer-events: none;
}
.oravine-site .comparison-divider span {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    width: 3.15rem;
    height: 3.15rem;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #101511;
    color: #fff;
    font-size: 1.15rem;
    box-shadow: 0 8px 22px rgba(0,0,0,.3);
    transform: translate(-50%,-50%);
}
.oravine-site .smile-comparison input[type="range"] {
    position: absolute;
    z-index: 6;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    cursor: ew-resize;
    opacity: 0;
}
.oravine-site .comparison-label {
    position: absolute;
    z-index: 5;
    bottom: 1rem;
    padding: .55rem .8rem;
    border-radius: 999px;
    background: rgba(12,17,13,.7);
    color: #fff;
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
    pointer-events: none;
}
.oravine-site .comparison-instruction {
    position:absolute;
    z-index:5;
    top:1rem;
    left:50%;
    padding:.5rem .78rem;
    border:1px solid rgba(255,255,255,.25);
    border-radius:999px;
    background:rgba(10,15,11,.62);
    color:rgba(255,255,255,.9);
    font-size:.66rem;
    font-weight:720;
    letter-spacing:.06em;
    text-transform:uppercase;
    backdrop-filter:blur(9px);
    transform:translateX(-50%);
    transition:opacity .25s,transform .25s;
    pointer-events:none;
}
.oravine-site .smile-comparison.is-interacting .comparison-instruction { opacity:0; transform:translate(-50%,-5px); }
.oravine-site .label-before { left: 1rem; }
.oravine-site .label-after { right: 1rem; }
.oravine-site .result-copy { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1rem; padding:1.45rem 1.55rem 1.6rem; align-items:start; }
.oravine-site .result-copy > span { display:grid; width:2.3rem; height:2.3rem; place-items:center; border:1px solid rgba(200,223,90,.25); border-radius:50%; color:var(--os-green-on-dark); font-size:.67rem; font-weight:760; }
.oravine-site .result-copy h3 { margin: 0; color: #fff; font-size: 1.35rem; font-weight: 650; letter-spacing: -.025em; }
.oravine-site .result-copy p { margin: .55rem 0 0; color: rgba(255,255,255,.59); font-size: .9rem; line-height: 1.6; }

.oravine-site .feedback-card {
    position: relative;
    display: flex;
    min-height: 24rem;
    padding: 1.75rem;
    flex-direction: column;
    scroll-snap-align: start;
    overflow: hidden;
    border: 1px solid rgba(42,58,37,.1);
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 22px 50px -38px rgba(36,50,29,.55);
}
.oravine-site .feedback-quote { height: 3rem; color: var(--os-green); font-family: Georgia,serif; font-size: 4.5rem; line-height: .85; }
.oravine-site .feedback-card > p { display: -webkit-box; overflow: hidden; margin: 1rem 0 1.8rem; color: var(--os-ink-body); font-size: 1rem; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 6; }
.oravine-site .feedback-person { display: flex; align-items: center; gap: .85rem; margin-top: auto; }
.oravine-site .feedback-avatar { display: grid; flex: 0 0 3.3rem; width: 3.3rem; height: 3.3rem; overflow: hidden; place-items: center; border-radius: 50%; background: #eaf0d3; color: #637611; font-weight: 760; }
.oravine-site .feedback-avatar img { width: 100%; height: 100%; object-fit: cover; }
.oravine-site .feedback-person strong,.oravine-site .feedback-person small { display: block; }
.oravine-site .feedback-person strong { color: #1f2921; font-size: .93rem; }
.oravine-site .feedback-person small { margin-top: .15rem; color: var(--os-ink-muted); font-size: .75rem; }
.oravine-site .feedback-certificate { display: flex; align-items: center; gap: .45rem; margin-top: 1.15rem; padding-top: 1rem; border-top: 1px solid var(--os-line); color: #66751e; font-size: .72rem; font-weight: 700; }
.oravine-site .feedback-certificate span { display: grid; width: 1.25rem; height: 1.25rem; place-items: center; border-radius: 50%; background: #edf3d8; }

@media (max-width: 900px) {
    .oravine-site .results-heading,.oravine-site .feedback-heading { grid-template-columns: 1fr; gap: 1rem; }
    .oravine-site .results-scroller { grid-auto-columns: 78%; }
    .oravine-site .feedback-scroller { grid-auto-columns: 54%; }
}
@media (max-width: 600px) {
    .oravine-site .home-results,.oravine-site .home-feedback { padding: 4rem 0; }
    .oravine-site .results-scroller,.oravine-site .feedback-scroller { margin-inline-end: -1rem; }
    .oravine-site .results-scroller { grid-auto-columns: 91%; }
    .oravine-site .feedback-scroller { grid-auto-columns: 85%; }
    .oravine-site .smile-comparison { height: 20rem; }
    .oravine-site .comparison-divider span { width: 2.7rem; height: 2.7rem; }
    .oravine-site .comparison-instruction { top:.75rem; max-width:70%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .oravine-site .feedback-card { min-height: 22rem; padding: 1.45rem; }
}

html[dir="rtl"] .oravine-site .comparison-before { clip-path: inset(0 0 0 calc(100% - var(--comparison-position))); }
html[dir="rtl"] .oravine-site .comparison-divider { right: var(--comparison-position); left: auto; transform: translateX(50%); }
html[dir="rtl"] .oravine-site .label-before { right: 1rem; left: auto; }
html[dir="rtl"] .oravine-site .label-after { right: auto; left: 1rem; }

/* Product detail data states */
.oravine-site .detail-image-placeholder {
    position: relative;
    z-index: 2;
    display: flex;
    width: 70%;
    min-height: 20rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    border: 1px solid rgba(95, 116, 16, .16);
    border-radius: 2rem;
    background: rgba(255, 255, 255, .44);
    box-shadow: 0 24px 48px -36px rgba(43, 59, 24, .4);
    backdrop-filter: blur(8px);
}

.oravine-site .product-detail-media .detail-image-placeholder img {
    width: 8rem;
    height: 8rem;
    opacity: .72;
    filter: none;
}

.oravine-site .detail-image-placeholder span {
    color: #62721d;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.oravine-site .detail-attributes strong.is-in-stock { color: #66800d; }
.oravine-site .detail-attributes strong.is-out-of-stock { color: #a34d45; }
.oravine-site .product-info-card.is-empty p { color: #8d958f; font-style: italic; }
.oravine-site .product-info-card.is-accent.is-empty p { color: rgba(255, 255, 255, .54); }

@media (max-width: 767px) {
    .oravine-site .detail-image-placeholder { width: 76%; min-height: 15rem; }
    .oravine-site .product-detail-media .detail-image-placeholder img { width: 6.5rem; height: 6.5rem; }
}

/* ================================================================
   Blog editorial experience
   ================================================================ */

.oravine-site .blog-header-shell { position: relative; isolation: isolate; overflow: hidden; }
.oravine-site .blog-header-shell .os-public-page-header { background: radial-gradient(circle at 18% 20%, rgba(154,182,26,.12), transparent 24rem), linear-gradient(135deg, #f7f9f1, #fff 58%, #f1f5e3); }
.oravine-site .blog-header-shell .os-display { font-size: clamp(3.4rem, 8vw, 7rem); letter-spacing: -.065em; }
.oravine-site .blog-header-orbit { position: absolute; z-index: 0; border: 1px solid rgba(154,182,26,.3); border-radius: 50%; pointer-events: none; animation: blog-orbit 18s linear infinite; }
.oravine-site .blog-header-orbit-one { width: 17rem; height: 17rem; right: 8%; top: 12%; }
.oravine-site .blog-header-orbit-two { width: 5rem; height: 5rem; left: 13%; bottom: 18%; background: rgba(154,182,26,.1); animation-direction: reverse; animation-duration: 12s; }
@keyframes blog-orbit { to { rotate: 360deg; } }

.oravine-site .blog-discovery-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.oravine-site .blog-discovery-bar .os-blog-filters { flex: 1; margin: 0; }
.oravine-site .blog-search { width: min(100%, 19rem); min-height: 3rem; display: flex; align-items: center; gap: .6rem; padding: 0 .85rem; border: 1px solid rgba(31,41,55,.12); border-radius: 999px; background: #fff; box-shadow: 0 10px 30px rgba(31,41,55,.05); transition: border-color .2s, box-shadow .2s; }
.oravine-site .blog-search:focus-within { border-color: var(--os-green); box-shadow: 0 0 0 4px rgba(154,182,26,.12); }
.oravine-site .blog-search > span:first-child { color: var(--os-green-ink); font-size: 1.3rem; }
.oravine-site .blog-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--os-ink); background: transparent; font: inherit; font-size: .88rem; }
.oravine-site .blog-search button { width: 1.7rem; height: 1.7rem; border: 0; border-radius: 50%; color: #667085; background: #f1f3ed; }

.oravine-site .blog-featured-story { min-height: 32rem; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr); overflow: hidden; border: 1px solid rgba(31,41,55,.08); border-radius: 2rem; color: inherit; background: #f5f7ef; box-shadow: 0 28px 70px -46px rgba(26,39,14,.42); transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s; }
.oravine-site .blog-featured-story:hover { color: inherit; transform: translateY(-5px); box-shadow: 0 36px 85px -45px rgba(26,39,14,.55); }
.oravine-site .blog-featured-media { position: relative; min-height: 28rem; overflow: hidden; background: linear-gradient(145deg, #edf2df, #dce7b8); }
.oravine-site .blog-featured-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.22,1,.36,1); }
.oravine-site .blog-featured-story:hover .blog-featured-media img { transform: scale(1.045); }
.oravine-site .blog-featured-index { position: absolute; left: 1.5rem; bottom: 1.2rem; color: rgba(255,255,255,.92); font-size: 3rem; font-weight: 700; text-shadow: 0 3px 18px rgba(0,0,0,.28); }
.oravine-site .blog-featured-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4.5rem); }
.oravine-site .blog-featured-kicker,
.oravine-site .blog-editorial-copy > span,
.oravine-site .blog-post-kicker,
.oravine-site .blog-related-heading > span { color: var(--os-green-ink); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.oravine-site .blog-featured-copy h2 { margin: .9rem 0 0; color: var(--os-ink); font-size: clamp(2.15rem, 4vw, 3.8rem); line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
.oravine-site .blog-featured-copy > p { margin: 1.35rem 0 0; color: #667085; line-height: 1.7; text-wrap: pretty; }
.oravine-site .blog-featured-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1rem; margin-top: 2rem; color: #7b837e; font-size: .76rem; }
.oravine-site .blog-featured-meta b { margin-inline-start: auto; display: inline-flex; align-items: center; gap: .45rem; color: #33410b; font-size: .82rem; }
.oravine-site .blog-featured-meta b i { font-size: 1.1rem; font-style: normal; transition: transform .2s; }
.oravine-site .blog-featured-story:hover .blog-featured-meta b i { transform: translateX(4px); }

.oravine-site .blog-editorial-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(1.1rem, 2.2vw, 2rem); margin-top: clamp(2rem, 4vw, 3.5rem); }
.oravine-site .blog-editorial-card { grid-column: span 4; min-width: 0; color: inherit; }
.oravine-site .blog-editorial-card:nth-child(5n + 1),
.oravine-site .blog-editorial-card:nth-child(5n + 2) { grid-column: span 6; }
.oravine-site .blog-editorial-card:hover { color: inherit; }
.oravine-site .blog-editorial-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 1.35rem; background: #eef2e3; }
.oravine-site .blog-editorial-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.22,1,.36,1); }
.oravine-site .blog-editorial-media.is-placeholder img { object-fit: contain; padding: 20%; opacity: .42; }
.oravine-site .blog-editorial-card:hover .blog-editorial-media img { transform: scale(1.055); }
.oravine-site .blog-editorial-media > span { position: absolute; top: .85rem; right: .85rem; min-width: 2rem; padding: .3rem .45rem; border-radius: .5rem; color: #fff; background: rgba(17,24,39,.34); backdrop-filter: blur(8px); font-size: .66rem; font-weight: 750; text-align: center; }
.oravine-site .blog-editorial-copy { padding: 1.15rem .15rem 0; }
.oravine-site .blog-editorial-copy h2 { margin: .55rem 0 0; color: var(--os-ink); font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.18; letter-spacing: -.025em; text-wrap: balance; }
.oravine-site .blog-editorial-copy p { display: -webkit-box; overflow: hidden; margin: .8rem 0 0; color: #707874; font-size: .9rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.oravine-site .blog-editorial-copy > div { display: flex; align-items: center; justify-content: space-between; margin-top: 1rem; padding-top: .8rem; border-top: 1px solid rgba(31,41,55,.08); color: #8a918d; font-size: .73rem; }
.oravine-site .blog-editorial-copy b { color: var(--os-green-ink); font-size: 1.1rem; transition: transform .2s; }
.oravine-site .blog-editorial-card:hover .blog-editorial-copy b { transform: rotate(45deg); }

.oravine-site .blog-post-hero { overflow: hidden; padding: clamp(7rem, 11vw, 9rem) 0 clamp(3rem, 7vw, 6rem); background: radial-gradient(circle at 78% 20%, rgba(154,182,26,.15), transparent 27rem), linear-gradient(145deg, #f7f9f2, #fff); }
.oravine-site .blog-post-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(22rem, 1.1fr); gap: clamp(2.5rem, 7vw, 6rem); align-items: center; margin-top: 2rem; }
.oravine-site .blog-post-heading h1 { margin: .9rem 0 0; color: #111; font-size: clamp(3rem, 6vw, 5.8rem); line-height: .96; letter-spacing: -.058em; text-wrap: balance; }
.oravine-site .blog-post-heading > p { margin: 1.5rem 0 0; color: #68716c; font-size: 1.05rem; line-height: 1.75; text-wrap: pretty; }
.oravine-site .blog-post-meta { display: flex; flex-wrap: wrap; gap: .75rem 1.3rem; margin-top: 1.8rem; color: #858d88; font-size: .76rem; }
.oravine-site .blog-post-cover { position: relative; aspect-ratio: 4 / 3; transform: rotate(1.4deg); }
.oravine-site .blog-post-cover::before { content: ""; position: absolute; inset: 8% -5% -6% 8%; border-radius: 2rem; background: color-mix(in srgb, var(--os-green), white 72%); transform: rotate(-4deg); }
.oravine-site .blog-post-cover img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; border-radius: 2rem; box-shadow: 0 28px 60px -32px rgba(24,37,16,.4); }
.oravine-site .blog-post-cover.is-placeholder img { object-fit: contain; padding: 22%; background: #eef2e3; }
.oravine-site .blog-post-cover > div { position: absolute; z-index: 2; right: -1rem; bottom: 12%; width: 3.2rem; height: 3.2rem; border: 1px solid rgba(255,255,255,.7); border-radius: 1rem; background: rgba(255,255,255,.55); backdrop-filter: blur(10px); animation: hero-product-float 5s ease-in-out infinite; }

.oravine-site .blog-article-body { padding: clamp(4rem, 8vw, 7.5rem) 0; }
.oravine-site .blog-reading-layout { display: grid; grid-template-columns: 9rem minmax(0, 44rem); gap: clamp(2rem, 5vw, 5rem); justify-content: center; }
.oravine-site .blog-reading-rail { position: sticky; top: 7rem; height: max-content; display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; color: #838c87; font-size: .68rem; text-transform: uppercase; letter-spacing: .13em; }
.oravine-site .blog-reading-rail span { color: var(--os-green-ink); font-weight: 800; }
.oravine-site .blog-reading-rail i { width: 3rem; height: 1px; background: var(--os-green); }
.oravine-site .blog-article-column { min-width: 0; }
.oravine-site .blog-prose { max-width: none; color: #444d48; font-size: clamp(1.05rem, 1.5vw, 1.18rem); line-height: 1.9; }
.oravine-site .blog-prose p:first-child::first-letter { float: inline-start; margin: .08em .12em 0 0; color: var(--os-green-ink); font-family: Georgia, serif; font-size: 4.6rem; line-height: .75; }

.oravine-site .blog-related-section { padding: clamp(4rem, 7vw, 6.5rem) 0; background: #f5f7f1; }
.oravine-site .blog-related-heading { margin-bottom: 2rem; }
.oravine-site .blog-related-heading h2 { margin: .55rem 0 0; color: #151815; font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.045em; }
.oravine-site .blog-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.oravine-site .blog-related-grid a { padding: 1rem; border: 1px solid rgba(31,41,55,.07); border-radius: 1.35rem; color: inherit; background: #fff; transition: transform .25s, box-shadow .25s; }
.oravine-site .blog-related-grid a:hover { color: inherit; transform: translateY(-4px); box-shadow: 0 20px 40px -30px rgba(25,38,17,.45); }
.oravine-site .blog-related-grid img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: .9rem; background: #edf1e3; }
.oravine-site .blog-related-grid span { display: block; margin-top: 1rem; color: var(--os-green-ink); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.oravine-site .blog-related-grid h3 { margin: .5rem 0 0; color: #202520; font-size: 1.15rem; line-height: 1.25; }
.oravine-site .blog-related-grid b { display: block; margin-top: 1rem; color: #617712; font-size: .76rem; }

html[dir="rtl"] .oravine-site .blog-featured-index { right: 1.5rem; left: auto; }
html[dir="rtl"] .oravine-site .blog-editorial-media > span { right: auto; left: .85rem; }
html[dir="rtl"] .oravine-site .blog-prose p:first-child::first-letter { float: inline-start; margin: .08em 0 0 .12em; }

@media (max-width: 900px) {
    .oravine-site .blog-featured-story,
    .oravine-site .blog-post-hero-grid { grid-template-columns: 1fr; }
    .oravine-site .blog-featured-media { min-height: 22rem; }
    .oravine-site .blog-editorial-card,
    .oravine-site .blog-editorial-card:nth-child(5n + 1),
    .oravine-site .blog-editorial-card:nth-child(5n + 2) { grid-column: span 6; }
    .oravine-site .blog-post-cover { max-height: 32rem; }
}

@media (max-width: 680px) {
    .oravine-site .blog-discovery-bar { align-items: stretch; flex-direction: column; }
    .oravine-site .blog-search { width: 100%; }
    .oravine-site .blog-featured-story { border-radius: 1.3rem; }
    .oravine-site .blog-featured-media { min-height: 17rem; }
    .oravine-site .blog-featured-copy { padding: 1.6rem; }
    .oravine-site .blog-featured-meta b { width: 100%; margin-inline-start: 0; }
    .oravine-site .blog-editorial-card,
    .oravine-site .blog-editorial-card:nth-child(n) { grid-column: 1 / -1; }
    .oravine-site .blog-reading-layout { grid-template-columns: 1fr; }
    .oravine-site .blog-reading-rail { position: static; flex-direction: row; align-items: center; }
    .oravine-site .blog-related-grid { grid-template-columns: 1fr; }
    .oravine-site .blog-post-heading h1 { font-size: clamp(2.7rem, 13vw, 4.2rem); }
}

@media (prefers-reduced-motion: reduce) {
    .oravine-site .blog-header-orbit,
    .oravine-site .blog-post-cover > div { animation: none; }
}

/* ================================================================
   Clean product catalogue and transparent product presentation
   ================================================================ */

.oravine-site main > section.products-hero:first-child,
.oravine-site .products-hero {
    padding: clamp(5.5rem, 10vw, 8rem) 0 clamp(3.5rem, 7vw, 5.5rem);
    border-bottom: 1px solid rgba(17,24,39,.08);
    background: #fff !important;
}
.oravine-site .products-hero::after { width: 18rem; height: 18rem; top: auto; right: 8%; bottom: -13rem; border-color: rgba(17,24,39,.09); }
.oravine-site .products-hero-copy { max-width: 56rem; }
.oravine-site .products-hero-copy h1 { max-width: 12ch; margin: 1rem 0 1.25rem; font-size: clamp(3.5rem, 8vw, 7rem); letter-spacing: -.062em; }
.oravine-site .products-hero-copy h1 span { color: var(--os-green-ink); }
.oravine-site .products-hero-copy p { max-width: 37rem; color: #69716d; }
.oravine-site .product-catalogue-section { padding: clamp(2.5rem, 5vw, 4.5rem) 0 7rem; background: #fff; }
.oravine-site .catalogue-layout { grid-template-columns: 15.5rem minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); }

/* Filters are intentionally background-free: hierarchy comes from type and rules. */
.oravine-site .catalogue-filters { overflow: visible; border: 0; border-inline-end: 1px solid rgba(17,24,39,.1); border-radius: 0; background: transparent; box-shadow: none; }
.oravine-site .filter-heading { padding: .25rem 1.5rem 1.35rem 0; }
.oravine-site .filter-heading h2 { font-size: 1.05rem; }
.oravine-site .filter-heading button { padding: 0; color: #5f6863; text-decoration: underline; text-underline-offset: .2rem; }
.oravine-site .filter-search { padding: 0 1.5rem 1.5rem 0; }
.oravine-site .filter-search label { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.oravine-site .filter-search-control input { height: 2.65rem; padding-inline: 1.8rem 1.6rem; border: 0; border-bottom: 1px solid #aeb5b1; border-radius: 0; background: transparent; }
.oravine-site .filter-search-control input:focus { border-color: #111; box-shadow: none; }
.oravine-site .filter-search-control > span { left: 0; color: #5e6662; }
.oravine-site .filter-search-control button { right: 0; background: transparent; }
.oravine-site .filter-group { padding: 1.25rem 1.5rem 1.25rem 0; border-top-color: rgba(17,24,39,.09); }
.oravine-site .filter-group h3 { color: #232825; font-size: .69rem; letter-spacing: .11em; }
.oravine-site .filter-options { gap: .15rem; }
.oravine-site .filter-option { padding: .55rem 0; color: #626a66; }
.oravine-site .filter-option:hover { color: #111; }
.oravine-site .filter-check { width: .82rem; height: .82rem; border: 1px solid #9ea5a1; border-radius: 50%; background: transparent; box-shadow: none; }
.oravine-site .filter-option.is-active { color: #111; font-weight: 720; }
.oravine-site .filter-option.is-active .filter-check { border-color: #111; background: transparent; box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 8px #111; }
.oravine-site .filter-option small { padding: 0; border-radius: 0; background: transparent; color: #9a9f9c; }
.oravine-site .catalogue-sort { height: 2.45rem; border: 0; border-bottom: 1px solid #9fa6a2; border-radius: 0; background-color: transparent; }
.oravine-site .active-filter-list button { padding: .28rem 0; border-bottom: 1px solid #68706c; border-radius: 0; background: transparent; color: #4b534f; }
.oravine-site .catalogue-count { color: #737b77; font-weight: 500; }

.oravine-site .catalogue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 3vw, 2.5rem); }
.oravine-site .catalogue-grid .product-card-clean { overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.oravine-site .catalogue-grid .product-card-clean:hover { border-color: transparent; box-shadow: none; transform: none; }
.oravine-site .product-card-clean .product-image-link { overflow: hidden; border: 1px solid rgba(17,24,39,.08); border-radius: 1.5rem; background: transparent; box-shadow: 0 18px 42px -36px rgba(36,48,23,.55); transition: border-color .35s ease, box-shadow .35s ease, transform .45s cubic-bezier(.22,1,.36,1); }
.oravine-site .product-card-clean:hover .product-image-link { border-color: rgba(95,116,16,.22); box-shadow: 0 28px 58px -36px rgba(36,48,23,.55); transform: translateY(-4px); }
.oravine-site .product-card-clean .product-img { position: relative; isolation: isolate; aspect-ratio: 1 / 1; overflow: hidden; background: transparent; }
.oravine-site .product-card-clean .product-img::before { content: ""; position: absolute; z-index: -1; width: 70%; aspect-ratio: 1; border: 1px solid rgba(95,116,16,.14); border-radius: 50%; background: rgba(255,255,255,.3); box-shadow: inset 0 0 0 2rem rgba(255,255,255,.12); transition: transform .55s cubic-bezier(.22,1,.36,1), border-color .3s; }
.oravine-site .product-card-clean:hover .product-img::before { transform: scale(1.08) rotate(8deg); border-color: rgba(95,116,16,.3); }
.oravine-site .product-card-clean .product-img img { position: relative; z-index: 2; width: 78%; height: 78%; object-fit: contain; filter: drop-shadow(0 25px 18px rgba(24,31,21,.18)); transform: translateY(1%); transition: transform .65s cubic-bezier(.22,1,.36,1), filter .45s; }
.oravine-site .product-card-clean .product-img.has-product-image::before { display: none; }
.oravine-site .product-card-clean .product-img.has-product-image img { width: 100%; height: 100%; object-fit: contain; filter: none; transform: none; }
.oravine-site .product-card-clean .product-img.is-placeholder img { width: 35%; height: 35%; opacity: .28; filter: none; }
.oravine-site .product-card-clean:hover .product-img.has-product-image img { filter: saturate(1.04) contrast(1.02); transform: none; }
.oravine-site .product-card-clean:hover .product-img.is-placeholder img { transform: scale(1.04); }
.oravine-site .product-view-cue { position: absolute; z-index: 4; right: .8rem; top: .8rem; display: inline-flex; align-items: center; gap: .45rem; min-height: 2.25rem; padding: .3rem .38rem .3rem .8rem; border: 1px solid rgba(255,255,255,.72); border-radius: 999px; color: #293022; background: rgba(255,255,255,.76); box-shadow: 0 8px 24px rgba(31,42,22,.08); backdrop-filter: blur(10px); font-size: .66rem; font-weight: 760; opacity: 0; transform: translateY(-.4rem); transition: opacity .3s, transform .4s cubic-bezier(.22,1,.36,1); }
.oravine-site .product-view-cue b { display: grid; width: 1.55rem; height: 1.55rem; border-radius: 50%; color: #fff; background: #242a20; font-size: .72rem; place-items: center; }
.oravine-site .product-card-clean:hover .product-view-cue,
.oravine-site .product-card-clean:focus-within .product-view-cue { opacity: 1; transform: none; }
.oravine-site .product-card-index { position: absolute; z-index: 3; right: 1rem; bottom: .85rem; color: #8c938f; font-size: .63rem; font-weight: 750; letter-spacing: .08em; }
.oravine-site .product-card-clean .product-badge { top: 1rem; left: 1rem; padding: .25rem 0; border-radius: 0; color: #303632; background: transparent; border-bottom: 1px solid #303632; }
.oravine-site .product-card-clean .product-body { padding: 1.15rem .1rem 0; gap: .3rem; }
.oravine-site .product-card-overline { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 1.2rem; }
.oravine-site .product-card-clean .product-cat { color: #747c78; font-size: .64rem; letter-spacing: .13em; }
.oravine-site .product-stock { display: inline-flex; align-items: center; gap: .35rem; flex: 0 0 auto; color: #68716c; font-size: .61rem; font-weight: 700; }
.oravine-site .product-stock i { display: block; flex: 0 0 .38rem; width: .38rem; height: .38rem; border-radius: 50%; background: #7a9419; box-shadow: 0 0 0 3px rgba(122,148,25,.1); }
.oravine-site .product-stock.is-out-of-stock { color: #9a625b; }
.oravine-site .product-stock.is-out-of-stock i { background: #a85b51; box-shadow: 0 0 0 3px rgba(168,91,81,.1); }
.oravine-site .catalogue-grid .product-card-clean .product-name { margin-top: .2rem; color: #151816; font-size: clamp(1.05rem, 1.55vw, 1.35rem); font-weight: 650; line-height: 1.18; }
.oravine-site .product-card-clean .product-desc { margin-top: .45rem; color: #747b77; font-size: .8rem; }
.oravine-site .product-card-clean .product-meta-row { gap: .35rem .7rem; }
.oravine-site .product-card-clean .product-meta-row span { position: relative; padding: .28rem .55rem; border: 1px solid rgba(17,24,39,.08); border-radius: 999px; background: #fafbf8; color: #747c78; }
.oravine-site .product-card-clean .product-meta-row span + span::before { display: none; }
.oravine-site .product-card-clean .product-footer { margin-top: 1.15rem; padding-top: .9rem; border-top-color: rgba(17,24,39,.09); }
.oravine-site .product-card-clean .price-tag { color: #1e2320; background: none; -webkit-text-fill-color: currentColor; font-size: 1rem; }
.oravine-site .product-card-clean .product-cta { color: #383f3b; font-size: .76rem; }
.oravine-site .product-card-clean:hover .product-cta { color: #111; }

/* Product detail: an open editorial composition rather than a colored card. */
.oravine-site .product-detail-page { padding: 1.6rem 0 7rem; background: #fff; }
.oravine-site .product-breadcrumb { margin-bottom: clamp(2rem, 5vw, 4rem); }
.oravine-site .product-detail-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2.5rem, 6vw, 6rem); overflow: visible; min-height: 40rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.oravine-site .product-detail-media { isolation: isolate; min-height: 0; aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid rgba(17,24,39,.08); border-radius: 2rem; background: transparent; box-shadow: 0 32px 70px -55px rgba(30,43,20,.55); }
.oravine-site .product-detail-media::before { display: none; }
.oravine-site .product-detail-media::after { content: ""; position: absolute; z-index: -1; width: 72%; aspect-ratio: 1; border: 1px solid rgba(95,116,16,.13); border-radius: 50%; background: rgba(255,255,255,.27); }
.oravine-site .product-detail-media > img { z-index: 2; width: 74%; height: 78%; filter: drop-shadow(0 35px 25px rgba(25,31,22,.18)); transition: transform .7s cubic-bezier(.22,1,.36,1); }
.oravine-site .product-detail-media.has-product-image::after,
.oravine-site .product-detail-media.has-product-image .detail-media-orbit { display: none; }
.oravine-site .product-detail-media.has-product-image > img { width: 100%; height: 100%; object-fit: contain; filter: none; transform: none; }
.oravine-site .product-detail-media.has-product-image:hover > img { filter: saturate(1.03) contrast(1.015); transform: none; }
.oravine-site .detail-media-orbit { z-index: 1; border-color: rgba(17,24,39,.07); }
.oravine-site .detail-media-orbit-one { width: 68%; height: auto; aspect-ratio: 1; transform: rotateX(67deg) rotateZ(-12deg); }
.oravine-site .detail-media-orbit-two { width: 52%; height: auto; aspect-ratio: 1; transform: rotateY(68deg) rotateZ(18deg); }
.oravine-site .detail-image-caption { position: absolute; z-index: 3; right: 1.5rem; bottom: 1.2rem; color: #969c98; font-size: .6rem; font-weight: 750; letter-spacing: .13em; }
.oravine-site .detail-badge { padding: .35rem 0; border-bottom: 1px solid #303632; border-radius: 0; color: #303632; background: transparent; }
.oravine-site .product-detail-copy { padding: 2rem 0; }
.oravine-site .detail-kicker { margin-bottom: 1.25rem; color: #5f6f25; }
.oravine-site .product-detail-copy h1 { font-size: clamp(3rem, 5.6vw, 5.4rem); letter-spacing: -.055em; }
.oravine-site .detail-lead { max-width: 37rem; color: #656e69; }
.oravine-site .detail-attributes { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0; margin-top: 2.1rem; border-top: 1px solid rgba(17,24,39,.1); }
.oravine-site .detail-attributes div { padding: .9rem 0; border-bottom: 1px solid rgba(17,24,39,.1); border-radius: 0; background: transparent; }
.oravine-site .detail-attributes div:nth-child(odd) { padding-inline-end: 1rem; }
.oravine-site .detail-attributes div:nth-child(even) { padding-inline-start: 1rem; border-inline-start: 1px solid rgba(17,24,39,.1); }
.oravine-site .detail-purchase-row { margin-top: 2rem; }
.oravine-site .detail-price strong { color: #191d1a; font-size: 2rem; }
.oravine-site .detail-primary-action { min-height: 3.2rem; padding: .8rem 1.45rem; border-radius: 999px; background: #1d211e; box-shadow: none; }
.oravine-site .detail-primary-action:hover { color: #fff; background: #000; }
.oravine-site .detail-assurance > span { border: 1px solid #98a090; background: transparent; color: #53621b; }

.oravine-site .product-information-grid { gap: 0; margin-top: clamp(4rem, 8vw, 7rem); border-top: 1px solid rgba(17,24,39,.1); border-bottom: 1px solid rgba(17,24,39,.1); }
.oravine-site .product-info-card,
.oravine-site .product-info-card.is-accent { min-height: 19rem; padding: 2.5rem 3rem 3rem 0; border: 0; border-radius: 0; color: inherit; background: transparent; }
.oravine-site .product-info-card + .product-info-card { padding-inline: 3rem 0; border-inline-start: 1px solid rgba(17,24,39,.1); }
.oravine-site .product-info-card.is-accent h2 { color: var(--os-ink); }
.oravine-site .product-info-card.is-accent .section-kicker { color: var(--os-green-ink); }
.oravine-site .product-info-card.is-accent p { color: var(--os-ink-muted); }
.oravine-site .product-info-card.is-accent .info-number,
.oravine-site .info-number { color: rgba(17,24,39,.08); }

.oravine-site .related-products-section { padding-top: clamp(4rem, 8vw, 7rem); }
.oravine-site .related-product-card { padding: 0; border: 0; border-radius: 0; background: transparent; }
.oravine-site .related-product-card:hover { box-shadow: none; }
.oravine-site .related-product-card > div { position: relative; overflow: hidden; aspect-ratio: 1 / 1; border: 1px solid rgba(17,24,39,.09); border-radius: 1.25rem; background: transparent; }
.oravine-site .related-product-card > div::before { content: ""; position: absolute; width: 58%; aspect-ratio: 1; border: 1px solid rgba(17,24,39,.08); border-radius: 50%; }
.oravine-site .related-product-card img { position: relative; z-index: 1; width: 65%; height: 76%; object-fit: contain; mix-blend-mode: multiply; filter: drop-shadow(0 18px 12px rgba(20,26,18,.12)); transition: transform .4s; }
.oravine-site .related-product-card > div.has-product-image::before { display: none; }
.oravine-site .related-product-card > div.has-product-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: normal; filter: none; }
.oravine-site .related-product-card > div.is-placeholder img { width: 34%; height: 34%; opacity: .34; filter: none; }
.oravine-site .related-product-card:hover > div.has-product-image img { transform: none; }
.oravine-site .related-product-card:hover > div.is-placeholder img { transform: scale(1.04); }

html[dir="rtl"] .oravine-site .filter-heading,
html[dir="rtl"] .oravine-site .filter-search,
html[dir="rtl"] .oravine-site .filter-group { padding-right: 0; padding-left: 1.5rem; }
html[dir="rtl"] .oravine-site .filter-search-control > span { right: 0; }
html[dir="rtl"] .oravine-site .filter-search-control button { left: 0; }
html[dir="rtl"] .oravine-site .product-card-index,
html[dir="rtl"] .oravine-site .detail-image-caption { right: auto; left: 1rem; }
html[dir="rtl"] .oravine-site .product-view-cue { right: auto; left: .8rem; }

@media (max-width: 1100px) {
    .oravine-site .catalogue-layout { grid-template-columns: 14rem minmax(0,1fr); gap: 2rem; }
    .oravine-site .catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
    .oravine-site .products-hero { padding: 4.5rem 0 3.5rem; }
    .oravine-site .products-hero-copy h1 { font-size: clamp(3.1rem, 15vw, 4.8rem); }
    .oravine-site .mobile-filter-button { border-radius: 0; background: transparent; }
    .oravine-site .mobile-filter-button strong { color: #111; background: transparent; border: 1px solid #111; }
    .oravine-site .catalogue-filters { border: 0; border-top: 1px solid rgba(17,24,39,.1); border-bottom: 1px solid rgba(17,24,39,.1); }
    .oravine-site .filter-heading,
    .oravine-site .filter-search,
    .oravine-site .filter-group { padding-inline: 0; }
    .oravine-site .catalogue-grid { gap: 1.8rem .8rem; }
    .oravine-site .catalogue-grid .product-card-clean .product-body { padding: .85rem .05rem 0; }
    .oravine-site .product-card-clean .product-image-link { border-radius: 1rem; }
    .oravine-site .product-view-cue { display: none; }
    .oravine-site .product-stock { font-size: .56rem; }
    .oravine-site .product-detail-hero { grid-template-columns: 1fr; gap: 1.5rem; min-height: 0; }
    .oravine-site .product-detail-media { min-height: 0; max-width: 100%; aspect-ratio: 1 / 1; border-radius: 1.25rem; }
    .oravine-site .product-detail-copy { padding: 1rem 0 2rem; }
    .oravine-site .detail-attributes { grid-template-columns: 1fr; }
    .oravine-site .detail-attributes div:nth-child(n) { padding-inline: 0; border-inline-start: 0; }
    .oravine-site .product-information-grid { grid-template-columns: 1fr; }
    .oravine-site .product-info-card,
    .oravine-site .product-info-card.is-accent,
    .oravine-site .product-info-card + .product-info-card { min-height: 0; padding: 2rem 0; border-inline-start: 0; }
    .oravine-site .product-info-card + .product-info-card { border-top: 1px solid rgba(17,24,39,.1); }
}

