/*
 * OritFood responsive hardening layer.
 * Loaded last so layout remains consistent on phones, tablets, notebooks,
 * laptops, desktops, touch screens, landscape mode, and safe-area devices.
 */

html {
    min-width: 320px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    min-width: 320px;
}

img,
svg,
video,
iframe,
canvas {
    max-width: 100%;
}

video,
iframe {
    display: block;
}

.og-luxury-v2 .og-about-video-wrap,
.og-luxury-v2 .og-about-video {
    max-width: 100%;
}

.og-header-inner,
.og-nav,
.og-hero-content,
.og-stat-grid,
.og-about,
.og-about-copy,
.og-product-grid,
.og-product-card,
.og-product-copy,
.og-service-grid,
.og-service-card,
.og-vision,
.og-vision-copy,
.og-gallery-grid,
.og-proof-grid,
.og-partners,
.og-testimonial,
.og-contact-grid,
.og-contact-form,
.og-map-card,
.og-footer-grid,
.og-detail-grid,
.og-detail-copy,
.og-catalog-grid,
.og-shipping-video-showcase,
.og-shipping-video-card,
.og-shipping-video-copy,
.og-shipping-video-grid {
    min-width: 0;
}

.og-rich-text,
.og-product-copy,
.og-service-card,
.og-contact-info,
.og-footer-contact,
.og-footer-links,
.og-shipping-video-copy {
    overflow-wrap: break-word;
    word-break: normal;
}

.og-menu-button,
.og-header-cta,
.og-button,
.og-text-action,
.og-socials a,
.og-partner-carousel > button,
.og-testimonial-controls > button,
.og-testimonial-dots button,
.og-floating-wa,
.og-map-card > a,
.og-shipping-video-trigger,
.og-video-modal-heading button {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.og-menu-button,
.og-partner-carousel > button,
.og-testimonial-controls > button,
.og-socials a {
    min-width: 44px;
    min-height: 44px;
}

.og-testimonial-dots button {
    min-width: 18px;
    min-height: 18px;
    background-clip: content-box;
    border: 5px solid transparent;
}

.og-testimonial-dots button.is-active {
    min-width: 30px;
}

.og-map-frame,
.og-map-frame iframe {
    width: 100%;
}

@supports (padding: max(0px)) {
    .og-header {
        margin-left: env(safe-area-inset-left);
        margin-right: env(safe-area-inset-right);
    }

    .og-floating-wa {
        right: max(16px, env(safe-area-inset-right));
        bottom: max(16px, env(safe-area-inset-bottom));
    }

    .og-footer-bottom {
        padding-bottom: max(13px, env(safe-area-inset-bottom));
    }
}

/* Compact desktops, laptops, and notebooks (901px–1280px). */
@media (min-width: 901px) and (max-width: 1280px) {
    .og-luxury-v2 .og-header {
        right: 16px;
        left: 16px;
    }

    .og-luxury-v2 .og-header-inner {
        grid-template-columns: 170px minmax(0, 1fr) 136px;
        gap: 12px;
    }

    .og-luxury-v2 .og-logo {
        width: 165px;
    }

    .og-luxury-v2 .og-nav {
        gap: 0;
        padding: 4px;
    }

    .og-luxury-v2 .og-nav a {
        padding: 9px clamp(8px, .9vw, 13px);
        font-size: 11px;
        white-space: nowrap;
    }

    .og-luxury-v2 .og-header-cta {
        min-width: 136px;
        padding-inline: 12px;
    }

    .og-luxury-v2 .og-hero {
        min-height: clamp(700px, 78vw, 820px);
    }

    .og-luxury-v2 .og-hero-content {
        padding-top: 160px;
        padding-bottom: 125px;
    }

    .og-luxury-v2 .og-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .og-luxury-v2 .og-contact-grid {
        grid-template-columns: .9fr 1.15fr 1fr;
        gap: 18px;
    }

    .og-luxury-v2 .og-contact-form,
    .og-luxury-v2 .og-map-card {
        padding: 22px;
    }
}

/* Tablets and small notebooks. */
@media (max-width: 900px) {
    html {
        scroll-padding-top: 84px;
    }

    .og-luxury-v2 .og-about-video-wrap {
        width: 100%;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .og-luxury-v2 .og-about-video {
        width: 100%;
        height: 100%;
        min-height: 0;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .og-luxury-v2 .og-header {
        max-width: calc(100% - 32px);
    }

    .og-luxury-v2 .og-header-inner {
        width: calc(100% - 28px);
    }

    .og-luxury-v2 .og-menu-button {
        display: grid;
        width: 46px;
        height: 46px;
        min-width: 46px;
        min-height: 46px;
        place-items: center;
    }

    .og-luxury-v2 .og-nav {
        max-height: calc(100vh - 108px);
        max-height: calc(100dvh - 108px);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .og-luxury-v2 .og-nav a {
        display: flex;
        align-items: center;
        min-height: 48px;
        padding: 12px 14px;
        font-size: 14px;
    }

    .og-luxury-v2 .og-hero-content {
        padding-right: 0;
    }

    .og-luxury-v2 .og-about-copy {
        min-height: 0;
    }

    .og-luxury-v2 .og-contact-grid {
        grid-template-columns: 1fr;
    }

    .og-luxury-v2 .og-contact-info,
    .og-luxury-v2 .og-contact-form,
    .og-luxury-v2 .og-map-card {
        width: 100%;
    }

    .og-luxury-v2 .og-map-frame,
    .og-luxury-v2 .og-map-frame iframe {
        height: 320px;
    }

    .og-luxury-v2 .og-footer-grid {
        grid-template-columns: 1.25fr 1fr 1fr;
    }

    .og-luxury-v2 .og-footer-brand {
        grid-column: 1 / -1;
    }
}

/* Phones and compact tablets. */
@media (max-width: 640px) {
    html {
        scroll-padding-top: 76px;
    }

    body {
        font-size: 15px;
    }

    .og-luxury-v2 .og-shell,
    .og-luxury-v2 .og-hero-content,
    .og-luxury-v2 .og-about,
    .og-luxury-v2 .og-vision {
        width: min(calc(100% - 28px), 600px);
    }

    .og-luxury-v2 .og-header {
        max-width: calc(100% - 20px);
    }

    .og-luxury-v2 .og-logo {
        width: clamp(126px, 39vw, 145px);
    }

    .og-luxury-v2 .og-nav {
        max-height: calc(100vh - 94px);
        max-height: calc(100dvh - 94px);
        padding: 12px;
    }

    .og-luxury-v2 .og-hero {
        min-height: max(680px, 100svh);
    }

    .og-luxury-v2 .og-hero-content {
        padding-top: 112px;
        padding-bottom: 82px;
    }

    .og-luxury-v2 .og-hero h1 {
        max-width: 100%;
        font-size: clamp(46px, 13vw, 62px);
        line-height: .9;
    }

    .og-luxury-v2 .og-hero-description {
        margin: 21px 0 24px;
        font-size: 14px;
        line-height: 1.65;
    }

    .og-luxury-v2 .og-hero-actions {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .og-luxury-v2 .og-hero .og-button {
        width: 100%;
        min-height: 50px;
    }

    .og-luxury-v2 .og-hero-benefits {
        width: 100%;
        padding: 12px 8px;
    }

    .og-luxury-v2 .og-hero-benefits > div {
        min-width: 0;
        padding: 0 8px;
    }

    .og-luxury-v2 .og-statistics {
        width: calc(100% - 28px);
        margin-top: -18px;
    }

    .og-luxury-v2 .og-stat-grid strong {
        font-size: clamp(25px, 8vw, 32px);
    }

    .og-luxury-v2 .og-about {
        margin-top: 62px;
        margin-bottom: 68px;
    }

    .og-luxury-v2 .og-about-photo {
        min-height: 300px;
    }

    .og-luxury-v2 .og-about-video-wrap {
        min-height: 0;
        border-radius: 18px;
    }

    .og-luxury-v2 .og-about-video-badge {
        top: 12px;
        left: 12px;
        min-height: 36px;
        padding: 6px 11px 6px 7px;
        font-size: 10px;
    }

    .og-luxury-v2 .og-about-video-badge i {
        width: 23px;
        height: 23px;
        font-size: 15px;
    }

    .og-luxury-v2 .og-about-copy {
        margin: -34px 10px 0;
        padding: 37px 22px;
        border-radius: 18px;
    }

    .og-luxury-v2 .og-about h2,
    .og-luxury-v2 .og-products .og-section-heading h2,
    .og-luxury-v2 .og-services h2,
    .og-luxury-v2 .og-vision h2,
    .og-luxury-v2 .og-gallery .og-section-heading h2,
    .og-luxury-v2 .og-contact h2 {
        font-size: clamp(37px, 11.2vw, 51px);
        line-height: .96;
    }

    .og-luxury-v2 .og-about-main .og-rich-text,
    .og-luxury-v2 .og-service-card p,
    .og-luxury-v2 .og-vision-columns p,
    .og-luxury-v2 .og-vision .og-rich-text,
    .og-luxury-v2 .og-contact-info > p,
    .og-luxury-v2 .og-contact-info li {
        font-size: 13px;
    }

    .og-luxury-v2 .og-products,
    .og-luxury-v2 .og-services,
    .og-luxury-v2 .og-gallery,
    .og-luxury-v2 .og-proof,
    .og-luxury-v2 .og-contact {
        padding-top: 72px;
        padding-bottom: 76px;
    }

    .og-luxury-v2 .og-products .og-section-heading,
    .og-luxury-v2 .og-gallery .og-section-heading {
        gap: 18px;
        margin-bottom: 28px;
    }

    .og-luxury-v2 .og-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .og-luxury-v2 .og-product-card {
        border-radius: 14px;
    }

    .og-luxury-v2 .og-product-photo,
    .og-luxury-v2 .og-catalog-grid .og-product-photo {
        height: clamp(145px, 41vw, 210px);
    }

    .og-luxury-v2 .og-product-copy,
    .og-luxury-v2 .og-catalog-grid .og-product-copy {
        min-height: 0;
        padding: 16px 13px 18px;
    }

    .og-luxury-v2 .og-product-copy h3,
    .og-luxury-v2 .og-catalog-grid .og-product-copy h3 {
        font-size: clamp(19px, 5.6vw, 24px);
        line-height: 1.05;
    }

    .og-luxury-v2 .og-product-copy p,
    .og-luxury-v2 .og-catalog-grid .og-product-copy p {
        font-size: 11px;
        line-height: 1.45;
    }

    .og-luxury-v2 .og-service-grid {
        grid-template-columns: 1fr;
    }

    .og-luxury-v2 .og-service-card {
        min-height: 0;
        padding: 27px 24px;
    }

    .og-luxury-v2 .og-service-card > i {
        width: 58px;
        height: 58px;
        margin-bottom: 25px;
    }

    .og-luxury-v2 .og-vision {
        margin-bottom: 72px;
        border-radius: 20px;
    }

    .og-luxury-v2 .og-vision-photo {
        min-height: 300px;
    }

    .og-luxury-v2 .og-vision-copy {
        padding: 42px 23px;
    }

    .og-luxury-v2 .og-gallery-grid {
        grid-auto-rows: clamp(125px, 38vw, 175px);
        gap: 10px;
    }

    .og-luxury-v2 .og-gallery-item {
        border-radius: 12px;
    }

    .og-luxury-v2 .og-proof-grid {
        border-radius: 18px;
    }

    .og-luxury-v2 .og-partners,
    .og-luxury-v2 .og-testimonial {
        padding: 28px 22px;
    }

    .og-luxury-v2 .og-proof h2 {
        font-size: 34px;
    }

    .og-partner-carousel > button,
    .og-testimonial-controls > button {
        width: 44px;
        height: 44px;
    }

    .og-luxury-v2 .og-testimonial-slide.is-active {
        grid-template-columns: 64px minmax(0, 1fr);
        min-height: 0;
        gap: 14px;
        padding: 16px;
    }

    .og-luxury-v2 .og-testimonial img {
        width: 64px;
        height: 64px;
    }

    .og-luxury-v2 .og-testimonial blockquote {
        font-size: 12px;
        line-height: 1.55;
    }

    .og-luxury-v2 .og-testimonial strong,
    .og-luxury-v2 .og-testimonial span {
        font-size: 11px;
    }

    .og-luxury-v2 .og-contact-info {
        padding-right: 0;
    }

    .og-luxury-v2 .og-contact-form,
    .og-luxury-v2 .og-map-card {
        padding: 20px;
        border-radius: 15px;
    }

    .og-contact-form input,
    .og-contact-form select,
    .og-contact-form textarea {
        font-size: 16px !important;
    }

    .og-contact-form input,
    .og-contact-form select {
        min-height: 48px;
    }

    .og-contact-form textarea {
        min-height: 128px;
    }

    .og-luxury-v2 .og-map-frame,
    .og-luxury-v2 .og-map-frame iframe {
        height: 285px;
    }

    .og-map-card > a {
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding-inline: 16px;
        font-size: 12px;
    }

    .og-luxury-v2 .og-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px 22px;
        padding-top: 48px;
    }

    .og-luxury-v2 .og-footer-brand {
        grid-column: 1 / -1;
    }

    .og-footer-brand p,
    .og-footer-links a,
    .og-footer-contact p {
        font-size: 12px;
    }

    .og-footer-links a {
        min-height: 30px;
    }

    .og-luxury-v2 .og-floating-wa {
        width: 52px;
        height: 52px;
    }

    .og-detail-breadcrumb {
        max-width: 100%;
    }

    .og-luxury-v2 .og-detail-copy h1,
    .og-luxury-v2 .og-catalog-intro h1,
    .og-luxury-v2 .og-video-catalog-intro h1 {
        overflow-wrap: break-word;
        font-size: clamp(42px, 12vw, 57px);
    }

    .og-luxury-v2 .og-detail-image {
        height: min(92vw, 430px);
    }

    .og-luxury-v2 .og-shipping-video-showcase .og-shipping-video-card,
    .og-luxury-v2 .og-shipping-video-showcase .og-shipping-video-card.is-featured,
    .og-luxury-v2 .og-shipping-video-grid .og-shipping-video-card {
        min-height: clamp(260px, 78vw, 330px);
    }

    .og-luxury-v2 .og-shipping-video-copy strong {
        font-size: clamp(25px, 8vw, 31px);
    }

    .og-video-modal-dialog {
        width: min(100%, 720px);
        max-height: calc(100dvh - 24px);
    }
}

/* Small phones, including compact iPhone and Android screens. */
@media (max-width: 420px) {
    .og-luxury-v2 .og-shell,
    .og-luxury-v2 .og-hero-content,
    .og-luxury-v2 .og-about,
    .og-luxury-v2 .og-vision {
        width: calc(100% - 24px);
    }

    .og-luxury-v2 .og-hero h1 {
        font-size: clamp(43px, 13vw, 54px);
    }

    .og-luxury-v2 .og-hero-benefits span,
    .og-luxury-v2 .og-hero-benefits strong {
        font-size: 9px;
    }

    .og-luxury-v2 .og-section-heading {
        display: block;
    }

    .og-luxury-v2 .og-section-heading .og-text-action {
        min-height: 44px;
        margin-top: 14px;
    }

    .og-luxury-v2 .og-product-copy p,
    .og-luxury-v2 .og-catalog-grid .og-product-copy p {
        font-size: 11px;
    }

    .og-luxury-v2 .og-footer-grid {
        grid-template-columns: 1fr;
    }

    .og-luxury-v2 .og-footer-brand {
        grid-column: auto;
    }

    .og-map-hint {
        right: 7px;
        bottom: 7px;
        max-width: calc(100% - 14px);
        white-space: normal;
    }
}

/* Ultra-narrow legacy and split-screen phone widths. */
@media (max-width: 360px) {
    .og-luxury-v2 .og-logo {
        width: 120px;
    }

    .og-luxury-v2 .og-product-grid,
    .og-luxury-v2 .og-catalog-grid,
    .og-luxury-v2 .og-gallery-grid {
        grid-template-columns: 1fr;
    }

    .og-luxury-v2 .og-product-photo,
    .og-luxury-v2 .og-catalog-grid .og-product-photo {
        height: 220px;
    }

    .og-luxury-v2 .og-gallery-grid {
        display: grid;
        grid-auto-rows: 200px;
    }

    .og-luxury-v2 .og-gallery-item:nth-child(n) {
        grid-column: 1;
        grid-row: auto;
    }

    .og-luxury-v2 .og-testimonial-slide.is-active {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .og-luxury-v2 .og-testimonial img {
        margin-inline: auto;
    }

    .og-luxury-v2 .og-testimonial-controls {
        justify-content: space-between;
    }

    .og-luxury-v2 .og-contact-form,
    .og-luxury-v2 .og-map-card,
    .og-luxury-v2 .og-partners,
    .og-luxury-v2 .og-testimonial {
        padding: 18px;
    }
}

/* Phone landscape mode: keep the menu usable and avoid oversized hero text. */
@media (max-width: 900px) and (max-height: 560px) and (orientation: landscape) {
    .og-luxury-v2 .og-nav {
        max-height: calc(100dvh - 92px);
    }

    .og-luxury-v2 .og-hero {
        min-height: 620px;
    }

    .og-luxury-v2 .og-hero-content {
        padding-top: 105px;
        padding-bottom: 58px;
    }

    .og-luxury-v2 .og-hero h1 {
        max-width: 580px;
        font-size: clamp(46px, 8vw, 62px);
    }

    .og-luxury-v2 .og-hero-benefits {
        margin-top: 24px;
    }
}

/* Touch-only devices should not retain hover movement after a tap. */
@media (hover: none) and (pointer: coarse) {
    .og-product-card:hover,
    .og-service-card:hover,
    .og-socials a:hover,
    .og-partner-carousel > button:hover,
    .og-testimonial-controls > button:hover,
    .og-header-cta:hover {
        transform: none;
    }

    .og-nav a,
    .og-button,
    .og-product-card,
    .og-service-card,
    .og-shipping-video-trigger {
        -webkit-tap-highlight-color: rgba(8, 118, 64, .12);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
