/* Ryo.News Shop Page 1.2.2 */

/* -------------------------------------------------------------------------
   Primas / BoldGrid theme isolation
   -------------------------------------------------------------------------
   Proven ryo.news compatibility pattern: the active theme owns the document,
   header and footer lifecycle. Only wrappers that actually contain the Ryo
   storefront are flattened. Avoid recreating the theme shell and avoid 100vw
   feedback loops that can make sticky headers jitter.
   ------------------------------------------------------------------------- */
body.ryo-shop-storefront-active {
    background: #f5f7fa !important;
    overflow-x: hidden !important;
}

/* Remove only page/post chrome inside the content region. Keep the real site
   header/navigation/footer intact. */
body.ryo-shop-storefront-active #content .page-header-wrapper,
body.ryo-shop-storefront-active #content .entry-header,
body.ryo-shop-storefront-active #content .page-header,
body.ryo-shop-storefront-active #content .page-title-area,
body.ryo-shop-storefront-active #content .page-title-wrapper,
body.ryo-shop-storefront-active #content .header-page-title,
body.ryo-shop-storefront-active #content .entry-title,
body.ryo-shop-storefront-active #content .entry-meta,
body.ryo-shop-storefront-active #content .woocommerce-breadcrumb,
body.ryo-shop-storefront-active #content nav.woocommerce-breadcrumb,
body.ryo-shop-storefront-active #content .breadcrumb,
body.ryo-shop-storefront-active .ryo-shop-host-entry > .entry-header,
body.ryo-shop-storefront-active .ryo-shop-host-entry > .entry-footer,
body.ryo-shop-storefront-active .ryo-shop-host-entry > .post-navigation,
body.ryo-shop-storefront-active .ryo-shop-host-entry > .navigation.post-navigation,
body.ryo-shop-storefront-active .ryo-shop-host-entry > .comments-area {
    display: none !important;
}

/* Remove text-only duplicate branding sometimes emitted by Primas while
   preserving the actual logo and navigation controls. */
body.ryo-shop-storefront-active .site-header .site-title,
body.ryo-shop-storefront-active .site-header .site-description,
body.ryo-shop-storefront-active .site-header .site-tagline,
body.ryo-shop-storefront-active .site-header .site-branding-text {
    display: none !important;
}

/* Modern-browser path plus JS fallback. Every ancestor that actually contains
   the shop root becomes a neutral full-width host. */
body.ryo-shop-storefront-active #content:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .site-content:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active #main-wrapper:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .main-wrapper:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active main:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .site-main:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .content-area:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active article:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .article-wrapper:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .entry-content:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .post-content:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .page-content:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .woocommerce:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .container:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .container-fluid:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .row:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active [class*="col-"]:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .ryo-shop-theme-wrapper-neutralized {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    float: none !important;
    clear: both !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

body.ryo-shop-storefront-active .row:has(.ryo-shop-surface-root),
body.ryo-shop-storefront-active .ryo-shop-theme-wrapper-neutralized.row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.ryo-shop-storefront-active .ryo-shop-host-entry,
body.ryo-shop-storefront-active .ryo-shop-host-entry .entry-content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
}

/* Primas sidebars must not reserve a column beside the storefront. */
body.ryo-shop-storefront-active #content #secondary,
body.ryo-shop-storefront-active #content .widget-area,
body.ryo-shop-storefront-active #content [role="complementary"],
body.ryo-shop-storefront-active #content .sidebar,
body.ryo-shop-storefront-active #content .sidebar-primary,
body.ryo-shop-storefront-active #content .sidebar-secondary,
body.ryo-shop-storefront-active #content .sidebar-wrapper,
body.ryo-shop-storefront-active #content .sidebar-wrap,
body.ryo-shop-storefront-active #content #tertiary,
body.ryo-shop-storefront-active #main-wrapper #secondary,
body.ryo-shop-storefront-active #main-wrapper .widget-area,
body.ryo-shop-storefront-active #main-wrapper [role="complementary"],
body.ryo-shop-storefront-active #main-wrapper .sidebar,
body.ryo-shop-storefront-active #main-wrapper .sidebar-wrapper,
body.ryo-shop-storefront-active .ryo-shop-theme-sidebar-hidden {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* The native WooCommerce shop template remains present for compatibility, but
   its duplicate archive UI is suppressed after the custom storefront is
   inserted. The Ryo shop runs its own catalog query and pagination. */
body.ryo-shop-page-active .woocommerce-products-header,
body.ryo-shop-page-active .woocommerce-result-count,
body.ryo-shop-page-active .woocommerce-ordering,
body.ryo-shop-page-active ul.products,
body.ryo-shop-page-active .woocommerce-pagination,
body.ryo-shop-page-active .woocommerce-no-products-found {
    display: none !important;
}

.ryo-shop-full-bleed,
.ryo-product-page {
    position: relative;
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0;
    background: #f5f7fa;
    color: #141922;
    overflow: hidden;
    font-family: Arial, Helvetica, sans-serif;
    clear: both;
}

.ryo-shop-full-bleed *,
.ryo-product-page * {
    box-sizing: border-box;
}

.ryo-shop-full-bleed > *,
.ryo-product-page > *,
.ryo-shop-inner > *,
.ryo-product-layout > * {
    min-width: 0;
    max-width: 100%;
}

.ryo-shop-inner {
    width: min(1380px, calc(100% - 48px));
    margin: 0 auto;
}

.ryo-shop-kicker {
    display: block;
    margin-bottom: 12px;
    color: #09d3f4;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.45px;
    text-transform: uppercase;
}

/* Shop hero */
.ryo-shop-hero {
    position: relative;
    padding: 76px 24px 68px;
    overflow: hidden;
    background:
        radial-gradient(circle at 84% 16%, rgba(9, 211, 244, .2), transparent 27%),
        radial-gradient(circle at 15% 90%, rgba(83, 104, 232, .22), transparent 33%),
        linear-gradient(135deg, #0b1019, #121b2a 58%, #0d1520);
    color: #fff;
}

.ryo-shop-hero::before {
    position: absolute;
    inset: 0;
    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: 42px 42px;
    content: "";
    mask-image: linear-gradient(to bottom, black, transparent);
}

.ryo-shop-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    gap: 54px;
    align-items: end;
}

.ryo-shop-hero h1 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: clamp(42px, 5.2vw, 70px);
    font-weight: 760;
    letter-spacing: -1.9px;
    line-height: 1.02;
}

.ryo-shop-hero p {
    max-width: 720px;
    margin: 22px 0 0;
    color: #c4cfda;
    font-size: 18px;
    line-height: 1.72;
}

.ryo-shop-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.ryo-shop-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 20px;
    border: 1px solid #09d3f4;
    border-radius: 4px;
    background: #09d3f4;
    color: #071018 !important;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
    transition: .2s ease;
}

.ryo-shop-button:hover,
.ryo-shop-button:focus {
    transform: translateY(-1px);
    background: #fff;
    border-color: #fff;
}

.ryo-shop-button-outline {
    background: transparent;
    color: #fff !important;
    border-color: rgba(255, 255, 255, .35);
}

.ryo-shop-button-outline:hover,
.ryo-shop-button-outline:focus {
    background: #fff;
    color: #111923 !important;
}

.ryo-shop-hero-panel {
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 10px;
    background: rgba(255, 255, 255, .055);
    backdrop-filter: blur(9px);
}

.ryo-shop-hero-stat {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    padding: 15px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .11);
}

.ryo-shop-hero-stat:first-child { padding-top: 0; }
.ryo-shop-hero-stat:last-child { padding-bottom: 0; border-bottom: 0; }
.ryo-shop-hero-stat span { color: #aebac6; font-size: 13px; }
.ryo-shop-hero-stat strong { color: #fff; font-size: 20px; }

/* Shared sections */
.ryo-shop-section {
    padding: 70px 24px;
}

.ryo-shop-section-white { background: #fff; }

.ryo-shop-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 30px;
    padding-bottom: 17px;
    border-bottom: 1px solid #dfe4ea;
}

.ryo-shop-section-heading h2 {
    margin: 0;
    color: #151a22;
    font-size: 31px;
    line-height: 1.2;
}

.ryo-shop-section-heading p {
    max-width: 720px;
    margin: 10px 0 0;
    color: #626c78;
    font-size: 15px;
    line-height: 1.65;
}

.ryo-shop-section-heading > a {
    flex: 0 0 auto;
    color: #5368e8 !important;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
}

/* Category cards */
.ryo-shop-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.ryo-shop-category-card {
    position: relative;
    display: block;
    min-height: 240px;
    overflow: hidden;
    border: 1px solid #dce2e8;
    border-radius: 8px;
    background: #111923;
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 9px 28px rgba(16, 24, 40, .08);
    transition: transform .22s ease, box-shadow .22s ease;
}

.ryo-shop-category-card:hover,
.ryo-shop-category-card:focus {
    transform: translateY(-4px);
    box-shadow: 0 15px 36px rgba(16, 24, 40, .15);
}

.ryo-shop-category-image,
.ryo-shop-category-placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ryo-shop-category-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 75% 20%, rgba(9, 211, 244, .35), transparent 30%),
        linear-gradient(135deg, #131d2a, #202d42);
    color: rgba(255, 255, 255, .17);
    font-size: 90px;
    font-weight: 900;
}

.ryo-shop-category-card::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(6, 10, 16, .96), rgba(6, 10, 16, .12) 72%);
    content: "";
}

.ryo-shop-category-copy {
    position: absolute;
    z-index: 1;
    left: 22px;
    right: 22px;
    bottom: 20px;
}

.ryo-shop-category-copy strong {
    display: block;
    color: #fff;
    font-size: 21px;
    line-height: 1.25;
}

.ryo-shop-category-copy span {
    display: block;
    margin-top: 7px;
    color: #c8d0d9;
    font-size: 13px;
}

/* Shop controls */
.ryo-shop-controls-shell {
    padding: 27px;
    border: 1px solid #dce2e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 24px rgba(16, 24, 40, .05);
}

.ryo-shop-controls {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(190px, .8fr) minmax(190px, .8fr) auto;
    gap: 13px;
    align-items: end;
}

.ryo-shop-field label {
    display: block;
    margin-bottom: 7px;
    color: #3f4854;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.ryo-shop-field input,
.ryo-shop-field select {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid #ccd4dd;
    border-radius: 4px;
    background: #fff;
    color: #171c24;
    font: inherit;
}

.ryo-shop-field input:focus,
.ryo-shop-field select:focus {
    outline: 2px solid rgba(83, 104, 232, .2);
    border-color: #5368e8;
}

.ryo-shop-filter-button {
    height: 48px;
    padding: 0 22px;
    border: 1px solid #161c25;
    border-radius: 4px;
    background: #161c25;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.ryo-shop-filter-button:hover { background: #5368e8; border-color: #5368e8; }

.ryo-shop-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 17px;
}

.ryo-shop-filter-chip {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 12px;
    border: 1px solid #d5dce5;
    border-radius: 999px;
    background: #f6f8fb;
    color: #3f4854 !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
}

.ryo-shop-filter-chip.is-active {
    border-color: #5368e8;
    background: #eef1ff;
    color: #465adc !important;
}

.ryo-shop-subcategories {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 22px 0 0;
}

.ryo-shop-subcategories a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid #d7dee8;
    border-radius: 999px;
    background: #fff;
    color: #323b47 !important;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none !important;
}

.ryo-shop-subcategories a:hover { border-color: #5368e8; color: #5368e8 !important; }

.ryo-shop-catalog-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin: 39px 0 26px;
}

.ryo-shop-catalog-header h2 { margin: 0; font-size: 30px; line-height: 1.2; }
.ryo-shop-catalog-header p { margin: 8px 0 0; color: #68717d; }
.ryo-shop-result-count { color: #5368e8; font-size: 14px; font-weight: 800; }

/* Reusable product cards */
.ryo-shop-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 23px;
}

.ryo-shop-product-grid-featured { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ryo-shop-product-card {
    display: flex;
    min-width: 0;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid #dce2e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(16, 24, 40, .05);
    transition: transform .22s ease, box-shadow .22s ease;
}

.ryo-shop-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 31px rgba(16, 24, 40, .11);
}

.ryo-shop-product-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #edf0f4;
}

.ryo-shop-product-media > a { display: block; width: 100%; height: 100%; }

.ryo-shop-product-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.ryo-shop-product-card:hover .ryo-shop-product-media img { transform: scale(1.025); }

.ryo-shop-product-badges {
    position: absolute;
    top: 13px;
    left: 13px;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.ryo-shop-badge,
.ryo-product-sale-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #151b24;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .65px;
    text-transform: uppercase;
}

.ryo-shop-badge-sale,
.ryo-product-sale-badge { background: #5368e8; }

.ryo-shop-product-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 21px;
}

.ryo-shop-product-category {
    display: block;
    margin-bottom: 8px;
    color: #5368e8;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.ryo-shop-product-title {
    margin: 0;
    color: #171c24;
    font-size: 18px;
    line-height: 1.35;
}

.ryo-shop-product-title a { color: inherit !important; text-decoration: none !important; }
.ryo-shop-product-title a:hover { color: #5368e8 !important; }
.ryo-shop-rating { margin-top: 9px; }
.ryo-shop-rating .star-rating { float: none; margin: 0; }

.ryo-shop-product-excerpt {
    margin: 13px 0 0;
    color: #66707c;
    font-size: 13px;
    line-height: 1.6;
}

.ryo-shop-product-footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    margin-top: auto;
    padding-top: 20px;
}

.ryo-shop-product-price { color: #171c24; font-size: 16px; font-weight: 900; line-height: 1.4; }
.ryo-shop-product-price del { color: #8a929c; font-weight: 500; }
.ryo-shop-product-price ins { text-decoration: none; }
.ryo-shop-stock { margin-top: 5px; font-size: 11px; font-weight: 700; }
.ryo-shop-stock.is-in-stock { color: #287b53; }
.ryo-shop-stock.is-out-of-stock { color: #a74848; }

.ryo-shop-product-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 41px;
    padding: 10px 14px;
    border: 1px solid #171c24;
    border-radius: 4px;
    background: #171c24;
    color: #fff !important;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
    text-decoration: none !important;
}

.ryo-shop-product-button:hover,
.ryo-shop-product-button:focus { background: #5368e8; border-color: #5368e8; }
.ryo-shop-product-button-secondary { background: #fff; color: #171c24 !important; }

.ryo-shop-empty {
    padding: 50px 28px;
    border: 1px dashed #b9c2cd;
    border-radius: 7px;
    background: #fff;
    color: #626c78;
    text-align: center;
}

.ryo-shop-empty h3 { margin: 0 0 10px; color: #171c24; font-size: 24px; }

.ryo-shop-pagination {
    display: flex;
    justify-content: center;
    margin-top: 38px;
}

.ryo-shop-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    margin: 0 4px;
    padding: 0 10px;
    border: 1px solid #d5dce5;
    border-radius: 4px;
    background: #fff;
    color: #303946 !important;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none !important;
}

.ryo-shop-pagination .page-numbers.current,
.ryo-shop-pagination .page-numbers:hover { border-color: #5368e8; background: #5368e8; color: #fff !important; }

/* Trust / payments */
.ryo-shop-trust {
    padding: 58px 24px;
    background: #101720;
    color: #fff;
}

.ryo-shop-trust-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
    gap: 42px;
    align-items: center;
}

.ryo-shop-trust h2 { margin: 0; color: #fff; font-size: 30px; }
.ryo-shop-trust p { max-width: 700px; margin: 13px 0 0; color: #bac5cf; line-height: 1.7; }

.ryo-shop-payment-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 17px;
}

.ryo-shop-payment-badges img {
    display: block;
    width: auto;
    height: 64px;
    max-width: 210px;
    object-fit: contain;
}

.ryo-shop-system-message {
    padding: 30px;
    border: 1px solid #e1c878;
    background: #fff8dc;
    color: #624c06;
    text-align: center;
}

/* Single product navigation */
.ryo-product-nav {
    background: #0e1621;
    border-top: 1px solid rgba(255, 255, 255, .06);
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    color: #fff;
}

.ryo-product-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 58px;
}

.ryo-product-breadcrumbs {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
    color: #8f9cab;
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
}

.ryo-product-breadcrumbs a {
    flex: 0 0 auto;
    color: #cbd5df !important;
    font-weight: 700;
    text-decoration: none !important;
}

.ryo-product-breadcrumbs a:hover { color: #09d3f4 !important; }
.ryo-product-back-link { color: #09d3f4 !important; }
.ryo-product-nav-separator { color: #526071; }

.ryo-product-nav-current {
    min-width: 0;
    overflow: hidden;
    color: #fff;
    font-weight: 700;
    text-overflow: ellipsis;
}

.ryo-product-cart-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    color: #fff !important;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none !important;
}

.ryo-product-cart-link span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    background: #09d3f4;
    color: #071018;
    font-size: 11px;
}

/* Single product hero */
.ryo-product-main {
    padding: 64px 24px 72px;
    background:
        radial-gradient(circle at 94% 3%, rgba(9, 211, 244, .075), transparent 27%),
        #f5f7fa;
}

.ryo-product-notices { margin-bottom: 24px; }

.ryo-product-notices .woocommerce-message,
.ryo-product-notices .woocommerce-error,
.ryo-product-notices .woocommerce-info {
    margin: 0 0 15px !important;
    border: 1px solid #d9e0e8;
    border-top: 3px solid #5368e8;
    border-radius: 6px;
    background: #fff;
    color: #27313d;
    box-shadow: 0 7px 22px rgba(16, 24, 40, .05);
}

.ryo-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
    gap: clamp(38px, 5vw, 76px);
    align-items: start;
}

.ryo-product-gallery-panel {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid #dce2e8;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16, 24, 40, .07);
}

.ryo-product-sale-badge {
    position: absolute;
    z-index: 6;
    top: 36px;
    left: 36px;
}

.ryo-product-gallery-panel .woocommerce-product-gallery {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

.ryo-product-gallery-panel .woocommerce-product-gallery__wrapper {
    margin: 0;
    border-radius: 7px;
    overflow: hidden;
    background: #f0f2f5;
}

.ryo-product-gallery-panel .woocommerce-product-gallery__image a,
.ryo-product-gallery-panel .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
}

.ryo-product-gallery-panel .woocommerce-product-gallery__image img {
    height: auto;
    object-fit: contain;
}

.ryo-product-gallery-panel .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0 0 !important;
    padding: 0 !important;
}

.ryo-product-gallery-panel .flex-control-thumbs li {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    list-style: none;
}

.ryo-product-gallery-panel .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 2px solid transparent;
    border-radius: 5px;
    opacity: .72;
    transition: .2s ease;
}

.ryo-product-gallery-panel .flex-control-thumbs img.flex-active,
.ryo-product-gallery-panel .flex-control-thumbs img:hover {
    border-color: #5368e8;
    opacity: 1;
}

.ryo-product-gallery-panel .woocommerce-product-gallery__trigger {
    top: 18px !important;
    right: 18px !important;
    z-index: 7;
}

.ryo-product-summary-panel {
    min-width: 0;
    padding: 4px 0 0;
}

.ryo-product-category-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 17px;
}

.ryo-product-category-links a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid #dce2e8;
    border-radius: 999px;
    background: #fff;
    color: #5368e8 !important;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .9px;
    text-decoration: none !important;
    text-transform: uppercase;
}

.ryo-product-category-links a:hover { border-color: #5368e8; }

.ryo-product-title {
    margin: 0;
    color: #111923;
    font-size: clamp(38px, 4.2vw, 58px);
    font-weight: 780;
    letter-spacing: -1.6px;
    line-height: 1.04;
}

.ryo-product-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 17px;
    color: #68717d;
    font-size: 12px;
}

.ryo-product-rating .star-rating { float: none; margin: 0; }

.ryo-product-price {
    margin-top: 23px;
    color: #111923;
    font-size: clamp(26px, 3vw, 36px);
    font-weight: 900;
    line-height: 1.2;
}

.ryo-product-price del { color: #8d96a1; font-size: .68em; font-weight: 600; }
.ryo-product-price ins { text-decoration: none; }

.ryo-product-short-description {
    margin-top: 23px;
    color: #596471;
    font-size: 16px;
    line-height: 1.75;
}

.ryo-product-short-description > :first-child { margin-top: 0; }
.ryo-product-short-description > :last-child { margin-bottom: 0; }

.ryo-product-stock-row {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 22px;
    color: #34404d;
    font-size: 13px;
    font-weight: 800;
}

.ryo-product-stock-row .stock { margin: 0 !important; color: inherit !important; }

.ryo-product-stock-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #a74848;
    box-shadow: 0 0 0 4px rgba(167, 72, 72, .1);
}

.ryo-product-stock-dot.is-in-stock {
    background: #2a875a;
    box-shadow: 0 0 0 4px rgba(42, 135, 90, .1);
}

.ryo-product-purchase {
    margin-top: 27px;
    padding: 25px;
    border: 1px solid #dbe1e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(16, 24, 40, .05);
}

.ryo-product-purchase form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 0 !important;
}

.ryo-product-purchase form.cart::before,
.ryo-product-purchase form.cart::after { display: none !important; }

.ryo-product-purchase form.cart .quantity { float: none !important; margin: 0 !important; }

.ryo-product-purchase .quantity .qty {
    width: 76px;
    min-height: 50px;
    padding: 0 9px;
    border: 1px solid #ccd4dd;
    border-radius: 4px;
    background: #fff;
    color: #171c24;
    font-weight: 800;
}

.ryo-product-purchase .single_add_to_cart_button,
.ryo-product-purchase button.single_add_to_cart_button {
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 24px !important;
    border: 1px solid #151b24 !important;
    border-radius: 4px !important;
    background: #151b24 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    transition: .2s ease;
}

.ryo-product-purchase .single_add_to_cart_button:hover,
.ryo-product-purchase button.single_add_to_cart_button:hover {
    border-color: #5368e8 !important;
    background: #5368e8 !important;
}

.ryo-product-purchase table.variations {
    width: 100%;
    margin: 0 0 16px !important;
    border: 0 !important;
}

.ryo-product-purchase table.variations tr,
.ryo-product-purchase table.variations th,
.ryo-product-purchase table.variations td {
    display: block;
    width: 100%;
    padding: 0 !important;
    border: 0 !important;
}

.ryo-product-purchase table.variations th.label {
    margin-bottom: 7px;
    color: #3f4854;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .55px;
    text-align: left;
    text-transform: uppercase;
}

.ryo-product-purchase table.variations td.value { margin-bottom: 15px; }

.ryo-product-purchase table.variations select {
    width: 100%;
    min-height: 48px;
    padding: 0 13px;
    border: 1px solid #ccd4dd;
    border-radius: 4px;
    background: #fff;
    color: #171c24;
}

.ryo-product-purchase .reset_variations {
    display: inline-block;
    margin-top: 8px;
    color: #5368e8 !important;
    font-size: 12px;
    font-weight: 800;
}

.ryo-product-purchase .woocommerce-variation {
    width: 100%;
    margin-bottom: 15px;
}

.ryo-product-purchase .woocommerce-variation-price { font-size: 18px; font-weight: 900; }

.ryo-product-payment-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    margin-top: 14px;
    padding: 20px 21px;
    border: 1px solid #283849;
    border-radius: 8px;
    background: linear-gradient(135deg, #101720, #162332);
    color: #fff;
}

.ryo-product-payment-card .ryo-shop-kicker { margin-bottom: 7px; }
.ryo-product-payment-card strong { display: block; color: #fff; font-size: 19px; letter-spacing: .2px; }
.ryo-product-payment-card p { margin: 7px 0 0; color: #aebac6; font-size: 12px; line-height: 1.55; }

.ryo-product-payment-mini {
    display: flex;
    align-items: center;
    gap: 9px;
}

.ryo-product-payment-mini img {
    display: block;
    width: auto;
    height: 40px;
    max-width: 104px;
    object-fit: contain;
}

.ryo-product-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 17px;
    padding-top: 15px;
    border-top: 1px solid #dde3e9;
    color: #7a8490;
    font-size: 11px;
    letter-spacing: .45px;
    text-transform: uppercase;
}

.ryo-product-meta strong { color: #36414e; font-size: 12px; }

/* Product information tabs */
.ryo-product-information {
    padding: 72px 24px;
    background: #fff;
}

.ryo-product-information-heading {
    max-width: 860px;
    margin-bottom: 28px;
}

.ryo-product-information-heading h2 {
    margin: 0;
    color: #151a22;
    font-size: 32px;
    line-height: 1.2;
}

.ryo-product-tabs-shell {
    border: 1px solid #dce2e8;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(16, 24, 40, .05);
}

.ryo-product-tabs-shell .woocommerce-tabs { padding: 0 !important; }

.ryo-product-tabs-shell .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0 !important;
    padding: 0 22px !important;
    border-bottom: 1px solid #e1e6ec;
    background: #f8f9fb;
    list-style: none !important;
}

.ryo-product-tabs-shell .woocommerce-tabs ul.tabs::before,
.ryo-product-tabs-shell .woocommerce-tabs ul.tabs li::before,
.ryo-product-tabs-shell .woocommerce-tabs ul.tabs li::after { display: none !important; }

.ryo-product-tabs-shell .woocommerce-tabs ul.tabs li {
    margin: 0 20px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.ryo-product-tabs-shell .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 18px 0 15px !important;
    border-bottom: 3px solid transparent;
    color: #596471 !important;
    font-size: 13px;
    font-weight: 900 !important;
    text-decoration: none !important;
}

.ryo-product-tabs-shell .woocommerce-tabs ul.tabs li.active a {
    border-bottom-color: #5368e8;
    color: #171c24 !important;
}

.ryo-product-tabs-shell .woocommerce-Tabs-panel {
    margin: 0 !important;
    padding: 30px 32px 34px !important;
    color: #56616e;
    font-size: 15px;
    line-height: 1.75;
}

.ryo-product-tabs-shell .woocommerce-Tabs-panel h2:first-child {
    margin-top: 0;
    color: #171c24;
    font-size: 24px;
}

.ryo-product-tabs-shell table.shop_attributes {
    border: 0 !important;
}

.ryo-product-tabs-shell table.shop_attributes th,
.ryo-product-tabs-shell table.shop_attributes td {
    padding: 13px 15px !important;
    border: 0 !important;
    border-bottom: 1px solid #e2e7ed !important;
    background: #fff !important;
}

.ryo-product-tabs-shell #reviews #comments,
.ryo-product-tabs-shell #reviews #review_form_wrapper { float: none !important; width: 100% !important; }

/* Related products */
.ryo-product-related {
    padding: 72px 24px;
    background: #f5f7fa;
}

.ryo-product-trust { margin-top: 0; }

/* Responsive */
@media (max-width: 1100px) {
    .ryo-shop-category-grid,
    .ryo-shop-product-grid,
    .ryo-shop-product-grid-featured { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .ryo-shop-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ryo-shop-filter-button { width: 100%; }

    .ryo-product-layout {
        grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
        gap: 38px;
    }
}

@media (max-width: 900px) {
    .ryo-shop-hero-inner,
    .ryo-shop-trust-grid,
    .ryo-product-layout { grid-template-columns: 1fr; }

    .ryo-shop-hero-panel { max-width: 620px; }
    .ryo-shop-category-grid,
    .ryo-shop-product-grid,
    .ryo-shop-product-grid-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ryo-shop-payment-badges { justify-content: flex-start; }

    .ryo-product-summary-panel { max-width: 760px; }
}

@media (max-width: 700px) {
    .ryo-product-nav-product-separator,
    .ryo-product-nav-current { display: none; }

    .ryo-product-payment-card { grid-template-columns: 1fr; }
    .ryo-product-payment-mini { justify-content: flex-start; }
}

@media (max-width: 620px) {
    .ryo-shop-inner { width: min(calc(100% - 32px), 1380px); }

    .ryo-shop-hero { padding: 55px 16px 50px; }
    .ryo-shop-hero h1 { font-size: 42px; letter-spacing: -1px; }
    .ryo-shop-hero p { font-size: 16px; }
    .ryo-shop-section { padding: 50px 16px; }

    .ryo-shop-section-heading,
    .ryo-shop-catalog-header { display: block; }

    .ryo-shop-section-heading > a,
    .ryo-shop-result-count { display: block; margin-top: 12px; }

    .ryo-shop-category-grid,
    .ryo-shop-product-grid,
    .ryo-shop-product-grid-featured,
    .ryo-shop-controls { grid-template-columns: 1fr; }

    .ryo-shop-product-footer { align-items: stretch; flex-direction: column; }
    .ryo-shop-product-button { width: 100%; }
    .ryo-shop-payment-badges img { height: 54px; max-width: 46%; }

    .ryo-product-nav-inner { min-height: 54px; }
    .ryo-product-breadcrumbs { gap: 7px; font-size: 12px; }
    .ryo-product-cart-link { font-size: 12px; }
    .ryo-product-main { padding: 36px 16px 50px; }
    .ryo-product-gallery-panel { padding: 12px; }
    .ryo-product-sale-badge { top: 22px; left: 22px; }
    .ryo-product-gallery-panel .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
    .ryo-product-title { font-size: 38px; letter-spacing: -1px; }
    .ryo-product-purchase { padding: 18px; }
    .ryo-product-purchase form.cart { display: grid; grid-template-columns: 84px minmax(0, 1fr); }
    .ryo-product-purchase form.variations_form { display: block; }
    .ryo-product-purchase .variations_button { display: grid !important; grid-template-columns: 84px minmax(0, 1fr); gap: 10px; }
    .ryo-product-payment-mini img { height: 36px; max-width: 96px; }
    .ryo-product-information,
    .ryo-product-related { padding: 50px 16px; }
    .ryo-product-information-heading h2 { font-size: 27px; }
    .ryo-product-tabs-shell .woocommerce-tabs ul.tabs { display: block; padding: 0 18px !important; }
    .ryo-product-tabs-shell .woocommerce-tabs ul.tabs li { margin: 0 !important; }
    .ryo-product-tabs-shell .woocommerce-tabs ul.tabs li a { padding: 14px 0 11px !important; }
    .ryo-product-tabs-shell .woocommerce-Tabs-panel { padding: 24px 20px 28px !important; }
}


/* =========================================================================
   Cart / Checkout / Order flow — v1.2.0
   ========================================================================= */
:root {
    --ryo-shop-pay-icon-size: 28px;
}

.ryo-commerce-page {
    position: relative;
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f5f7fa;
    color: #141922;
    overflow: hidden;
    clear: both;
    font-family: Arial, Helvetica, sans-serif;
}

.ryo-commerce-page *,
.ryo-commerce-page *::before,
.ryo-commerce-page *::after {
    box-sizing: border-box;
}

.ryo-commerce-nav {
    position: relative;
    z-index: 2;
    width: 100%;
    border-bottom: 1px solid #253343;
    background: #0d1520;
    color: #d8e0e8;
}

.ryo-commerce-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 58px;
}

.ryo-commerce-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    min-width: 0;
    color: #7f91a3;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .25px;
}

.ryo-commerce-breadcrumbs a,
.ryo-commerce-nav-action {
    color: #d8e0e8 !important;
    text-decoration: none !important;
}

.ryo-commerce-breadcrumbs a:hover,
.ryo-commerce-breadcrumbs a:focus,
.ryo-commerce-nav-action:hover,
.ryo-commerce-nav-action:focus {
    color: #09d3f4 !important;
}

.ryo-commerce-breadcrumbs [aria-current="page"] {
    color: #fff;
}

.ryo-commerce-nav-action {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 850;
}

.ryo-commerce-heading {
    padding: 54px 24px 48px;
    background:
        radial-gradient(circle at 86% 18%, rgba(9,211,244,.16), transparent 28%),
        linear-gradient(135deg, #101823, #131f2d 64%, #0d1621);
    color: #fff;
}

.ryo-commerce-heading .ryo-shop-kicker {
    margin-bottom: 10px;
}

.ryo-commerce-heading h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(38px, 4.3vw, 58px);
    font-weight: 780;
    letter-spacing: -1.4px;
    line-height: 1.04;
}

.ryo-commerce-heading p {
    max-width: 700px;
    margin: 15px 0 0;
    color: #b8c5d1;
    font-size: 16px;
    line-height: 1.65;
}

.ryo-commerce-main {
    padding: 48px 24px 84px;
    background: #f5f7fa;
}

.ryo-commerce-content,
.ryo-commerce-content > .woocommerce,
.ryo-commerce-content > [class*="wp-block-woocommerce"] {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.ryo-commerce-content .woocommerce {
    color: #2b3440;
    font-size: 14px;
}

.ryo-commerce-payment-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 28px;
    padding: 20px 22px;
    border: 1px solid #25394b;
    border-left: 3px solid #09d3f4;
    border-radius: 8px;
    background: linear-gradient(135deg, #101720, #162332);
    color: #fff;
    box-shadow: 0 10px 30px rgba(11,16,25,.08);
}

.ryo-commerce-payment-note .ryo-shop-kicker {
    margin-bottom: 6px;
}

.ryo-commerce-payment-note strong {
    display: block;
    color: #fff;
    font-size: 19px;
    letter-spacing: .15px;
}

.ryo-commerce-payment-note p {
    margin: 6px 0 0;
    color: #aebbc7;
    font-size: 12px;
    line-height: 1.55;
}

.ryo-commerce-payment-icons {
    display: flex;
    align-items: center;
    gap: 11px;
    flex: 0 0 auto;
}

.ryo-commerce-coin {
    display: inline-block;
    width: 34px;
    height: 34px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.ryo-commerce-coin-ryo {
    background-image: url("../images/ryo-payment.png");
}

.ryo-commerce-coin-xmr {
    background-image: url("../images/monero-payment.png");
}

/* Woo notices */
.ryo-commerce-page .woocommerce-notices-wrapper,
.ryo-commerce-page .woocommerce-message,
.ryo-commerce-page .woocommerce-info,
.ryo-commerce-page .woocommerce-error {
    min-width: 0;
}

.ryo-commerce-page .woocommerce-message,
.ryo-commerce-page .woocommerce-info,
.ryo-commerce-page .woocommerce-error {
    margin: 0 0 20px !important;
    padding: 15px 18px 15px 48px !important;
    border: 1px solid #dce3e9 !important;
    border-top: 0 !important;
    border-left: 3px solid #5368e8 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #34404c !important;
    box-shadow: 0 5px 18px rgba(16,24,40,.04);
}

.ryo-commerce-page .woocommerce-error {
    border-left-color: #c74a4a !important;
}

/* -------------------------------------------------------------------------
   Classic WooCommerce Cart
   ------------------------------------------------------------------------- */
.ryo-cart-page .ryo-commerce-content > .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(320px, .72fr);
    gap: 28px;
    align-items: start;
}

.ryo-cart-page .woocommerce > .woocommerce-notices-wrapper,
.ryo-cart-page .woocommerce > .woocommerce-message,
.ryo-cart-page .woocommerce > .woocommerce-info,
.ryo-cart-page .woocommerce > .woocommerce-error,
.ryo-cart-page .woocommerce > .wc-empty-cart-message,
.ryo-cart-page .woocommerce > .return-to-shop {
    grid-column: 1 / -1;
}

.ryo-cart-page .woocommerce-cart-form {
    grid-column: 1;
    width: 100%;
    margin: 0 !important;
    padding: 0;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-cart-page .woocommerce-cart-form table.shop_table {
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    border-radius: 0 !important;
    background: #fff;
}

.ryo-cart-page .woocommerce-cart-form table.shop_table thead {
    background: #f7f9fb;
}

.ryo-cart-page .woocommerce-cart-form table.shop_table th {
    padding: 15px 13px !important;
    border: 0 !important;
    border-bottom: 1px solid #dfe5eb !important;
    color: #687481;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .85px;
    text-transform: uppercase;
}

.ryo-cart-page .woocommerce-cart-form table.shop_table td {
    padding: 18px 13px !important;
    border: 0 !important;
    border-bottom: 1px solid #e8edf1 !important;
    background: #fff !important;
    color: #34404c;
    vertical-align: middle;
}

.ryo-cart-page .woocommerce-cart-form td.product-thumbnail {
    width: 104px;
}

.ryo-cart-page .woocommerce-cart-form td.product-thumbnail img {
    display: block;
    width: 82px !important;
    height: 96px !important;
    max-width: 82px !important;
    border: 1px solid #e0e5ea;
    border-radius: 6px;
    background: #f8fafb;
    object-fit: contain;
}

.ryo-cart-page .woocommerce-cart-form td.product-name a {
    color: #141922 !important;
    font-size: 14px;
    font-weight: 850;
    text-decoration: none !important;
}

.ryo-cart-page .woocommerce-cart-form td.product-name a:hover,
.ryo-cart-page .woocommerce-cart-form td.product-name a:focus {
    color: #5368e8 !important;
}

.ryo-cart-page .woocommerce-cart-form .variation {
    margin: 7px 0 0;
    color: #77828d;
    font-size: 11px;
}

.ryo-cart-page .woocommerce-cart-form .variation dt,
.ryo-cart-page .woocommerce-cart-form .variation dd {
    display: inline;
    float: none;
    margin: 0 5px 0 0;
}

.ryo-cart-page .woocommerce-cart-form td.product-price,
.ryo-cart-page .woocommerce-cart-form td.product-subtotal {
    color: #17202a;
    font-weight: 800;
}

.ryo-commerce-page .quantity .qty {
    width: 74px !important;
    min-height: 44px;
    padding: 8px 10px !important;
    border: 1px solid #ccd5dd !important;
    border-radius: 5px !important;
    background: #fff !important;
    color: #18212b !important;
    box-shadow: none !important;
}

.ryo-cart-page .woocommerce-cart-form a.remove {
    display: inline-grid !important;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid #d9e0e6;
    border-radius: 50%;
    background: #fff !important;
    color: #75818c !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

.ryo-cart-page .woocommerce-cart-form a.remove:hover,
.ryo-cart-page .woocommerce-cart-form a.remove:focus {
    border-color: #c94b4b;
    color: #c94b4b !important;
}

.ryo-cart-page .woocommerce-cart-form td.actions {
    padding: 17px !important;
    border-bottom: 0 !important;
    background: #f8fafb !important;
}

.ryo-cart-page .woocommerce-cart-form .coupon {
    display: flex;
    gap: 9px;
    align-items: center;
}

.ryo-cart-page .woocommerce-cart-form .coupon .input-text {
    width: min(250px, 100%) !important;
    min-height: 44px;
    margin: 0 !important;
    padding: 9px 12px !important;
    border: 1px solid #ccd5dd !important;
    border-radius: 5px !important;
    background: #fff !important;
    box-shadow: none !important;
}

.ryo-commerce-page .button,
.ryo-commerce-page button.button,
.ryo-commerce-page input.button,
.ryo-commerce-page .wc-block-components-button {
    border: 1px solid #172231 !important;
    border-radius: 5px !important;
    background: #172231 !important;
    color: #fff !important;
    font-weight: 850 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.ryo-commerce-page .button:hover,
.ryo-commerce-page .button:focus,
.ryo-commerce-page button.button:hover,
.ryo-commerce-page button.button:focus,
.ryo-commerce-page .wc-block-components-button:hover,
.ryo-commerce-page .wc-block-components-button:focus {
    border-color: #5368e8 !important;
    background: #5368e8 !important;
    color: #fff !important;
}

.ryo-cart-page .cart-collaterals {
    grid-column: 2;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ryo-cart-page .cart-collaterals .cart_totals {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 24px;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-cart-page .cart_totals h2 {
    margin: 0 0 18px !important;
    color: #161d26 !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    letter-spacing: -.35px;
}

.ryo-cart-page .cart_totals table.shop_table {
    margin: 0 0 18px !important;
    border: 0 !important;
    border-collapse: collapse !important;
}

.ryo-cart-page .cart_totals table.shop_table th,
.ryo-cart-page .cart_totals table.shop_table td {
    padding: 13px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e7ecf0 !important;
    background: transparent !important;
    vertical-align: top;
}

.ryo-cart-page .cart_totals table.shop_table th {
    width: 42%;
    color: #687481;
    font-size: 12px;
    font-weight: 750;
}

.ryo-cart-page .cart_totals .order-total th,
.ryo-cart-page .cart_totals .order-total td {
    padding-top: 17px !important;
    color: #131a22;
    font-size: 17px;
    font-weight: 900;
}

.ryo-cart-page .wc-proceed-to-checkout {
    padding: 17px 0 0 !important;
}

.ryo-cart-page .wc-proceed-to-checkout a.checkout-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    margin: 0 !important;
    padding: 13px 20px !important;
    border-color: #09d3f4 !important;
    background: #09d3f4 !important;
    color: #071018 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

.ryo-cart-page .wc-proceed-to-checkout a.checkout-button:hover,
.ryo-cart-page .wc-proceed-to-checkout a.checkout-button:focus {
    border-color: #5368e8 !important;
    background: #5368e8 !important;
    color: #fff !important;
}

.ryo-cart-page .cross-sells {
    float: none !important;
    width: 100% !important;
    margin: 22px 0 0 !important;
    padding: 20px;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
}

.ryo-cart-page .cross-sells > h2 {
    margin: 0 0 14px;
    color: #17202a;
    font-size: 18px;
}

/* Empty cart */
.ryo-cart-page .wc-empty-cart-message,
.ryo-cart-page .cart-empty.woocommerce-info {
    margin-bottom: 18px !important;
}

.ryo-cart-page .return-to-shop .button {
    min-height: 48px;
    padding: 12px 20px !important;
}

/* -------------------------------------------------------------------------
   Classic WooCommerce Checkout + Order Pay
   ------------------------------------------------------------------------- */
.ryo-checkout-page form.checkout.woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .75fr);
    grid-template-areas:
        "customer review-heading"
        "customer review";
    gap: 0 30px;
    align-items: start;
}

.ryo-checkout-page form.checkout #customer_details {
    grid-area: customer;
    min-width: 0;
    margin: 0 !important;
    padding: 28px;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-checkout-page form.checkout #order_review_heading {
    grid-area: review-heading;
    margin: 0 !important;
    padding: 22px 24px 17px;
    border: 1px solid #dce3e9;
    border-bottom: 0;
    border-radius: 9px 9px 0 0;
    background: #fff;
    color: #161d26 !important;
    font-size: 23px !important;
    font-weight: 800 !important;
}

.ryo-checkout-page form.checkout #order_review {
    grid-area: review;
    min-width: 0;
    margin: 0 !important;
    padding: 0 24px 24px;
    border: 1px solid #dce3e9;
    border-top: 0;
    border-radius: 0 0 9px 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-checkout-page #customer_details .col-1,
.ryo-checkout-page #customer_details .col-2 {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

.ryo-checkout-page #customer_details .col-2 {
    margin-top: 28px !important;
    padding-top: 28px;
    border-top: 1px solid #e5eaee;
}

.ryo-commerce-page .woocommerce-billing-fields > h3,
.ryo-commerce-page .woocommerce-shipping-fields > h3,
.ryo-commerce-page .woocommerce-additional-fields > h3,
.ryo-order-pay-page #order_review > h2,
.ryo-order-received-page .woocommerce-order-details__title,
.ryo-order-received-page .woocommerce-column__title {
    margin: 0 0 20px !important;
    color: #161d26 !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    letter-spacing: -.3px;
}

.ryo-commerce-page form .form-row {
    margin: 0 0 17px !important;
    padding: 0 !important;
}

.ryo-commerce-page form .form-row label {
    display: block;
    margin: 0 0 7px;
    color: #596572;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .75px;
    line-height: 1.35;
    text-transform: uppercase;
}

.ryo-commerce-page form .form-row input.input-text,
.ryo-commerce-page form .form-row textarea,
.ryo-commerce-page form .form-row select,
.ryo-commerce-page .select2-container--default .select2-selection--single {
    width: 100%;
    min-height: 47px;
    border: 1px solid #ccd5dd !important;
    border-radius: 5px !important;
    background: #fff !important;
    color: #1e2731 !important;
    box-shadow: none !important;
}

.ryo-commerce-page form .form-row input.input-text,
.ryo-commerce-page form .form-row textarea {
    padding: 11px 12px !important;
}

.ryo-commerce-page form .form-row textarea {
    min-height: 112px;
    resize: vertical;
}

.ryo-commerce-page form .form-row input.input-text:focus,
.ryo-commerce-page form .form-row textarea:focus,
.ryo-commerce-page .select2-container--focus .select2-selection--single,
.ryo-commerce-page .select2-container--open .select2-selection--single {
    border-color: #5368e8 !important;
    outline: 0 !important;
    box-shadow: 0 0 0 3px rgba(83,104,232,.09) !important;
}

.ryo-commerce-page .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 12px;
    padding-right: 34px;
    color: #1e2731;
    line-height: 45px;
}

.ryo-commerce-page .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 45px;
}

.ryo-checkout-page #order_review table.shop_table,
.ryo-order-pay-page table.shop_table,
.ryo-order-received-page table.shop_table {
    width: 100%;
    margin: 0 0 20px !important;
    border: 0 !important;
    border-collapse: collapse !important;
}

.ryo-checkout-page #order_review table.shop_table th,
.ryo-checkout-page #order_review table.shop_table td,
.ryo-order-pay-page table.shop_table th,
.ryo-order-pay-page table.shop_table td,
.ryo-order-received-page table.shop_table th,
.ryo-order-received-page table.shop_table td {
    padding: 13px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e7ecf0 !important;
    background: transparent !important;
    color: #36414d;
}

.ryo-checkout-page #order_review table.shop_table th,
.ryo-order-pay-page table.shop_table th {
    color: #66727e;
    font-size: 11px;
    font-weight: 850;
}

.ryo-checkout-page #order_review .order-total th,
.ryo-checkout-page #order_review .order-total td,
.ryo-order-pay-page .order-total th,
.ryo-order-pay-page .order-total td {
    padding-top: 17px !important;
    color: #131b24;
    font-size: 17px;
    font-weight: 900;
}

.ryo-commerce-page #payment,
.ryo-order-pay-page #payment {
    margin-top: 18px;
    border: 1px solid #dbe3e9 !important;
    border-radius: 8px !important;
    background: #f7f9fb !important;
    overflow: hidden;
}

.ryo-commerce-page #payment ul.payment_methods,
.ryo-order-pay-page #payment ul.payment_methods {
    margin: 0 !important;
    padding: 12px !important;
    border: 0 !important;
    background: transparent !important;
    list-style: none !important;
}

.ryo-commerce-page #payment ul.payment_methods > li,
.ryo-order-pay-page #payment ul.payment_methods > li {
    position: relative;
    margin: 0 0 9px !important;
    padding: 14px 14px !important;
    border: 1px solid #dbe2e8;
    border-radius: 7px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.ryo-commerce-page #payment ul.payment_methods > li:last-child,
.ryo-order-pay-page #payment ul.payment_methods > li:last-child {
    margin-bottom: 0 !important;
}

.ryo-commerce-page #payment ul.payment_methods > li:has(input[type="radio"]:checked),
.ryo-order-pay-page #payment ul.payment_methods > li:has(input[type="radio"]:checked) {
    border-color: #09d3f4;
    background: #f7fdff;
    box-shadow: 0 0 0 2px rgba(9,211,244,.08);
}

.ryo-commerce-page #payment ul.payment_methods > li > input[type="radio"],
.ryo-order-pay-page #payment ul.payment_methods > li > input[type="radio"] {
    margin: 7px 8px 0 0 !important;
    vertical-align: top;
    accent-color: #5368e8;
}

/* Safe Luna Azul-style payment logo normalization.
   Hide only the gateway-supplied image that is a direct child of the method
   label. Payment QR codes/images inside .payment_box are intentionally left
   alone. Both local marks have identical 256px canvases and identical optical
   216px content bounds, then render into the same 28px checkout box. */
.ryo-commerce-page #payment li.payment_method_ryo_gateway > label,
.ryo-commerce-page #payment li.payment_method_monero_gateway > label,
.ryo-order-pay-page #payment li.payment_method_ryo_gateway > label,
.ryo-order-pay-page #payment li.payment_method_monero_gateway > label {
    display: inline-flex !important;
    align-items: center;
    min-height: var(--ryo-shop-pay-icon-size);
    margin: 0 !important;
    color: #17202a !important;
    font-size: 0 !important;
    font-weight: 850 !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    cursor: pointer;
}

.ryo-commerce-page #payment li.payment_method_ryo_gateway > label > img,
.ryo-commerce-page #payment li.payment_method_monero_gateway > label > img,
.ryo-order-pay-page #payment li.payment_method_ryo_gateway > label > img,
.ryo-order-pay-page #payment li.payment_method_monero_gateway > label > img {
    display: none !important;
}

.ryo-commerce-page #payment li.payment_method_ryo_gateway > label::before,
.ryo-commerce-page #payment li.payment_method_monero_gateway > label::before,
.ryo-order-pay-page #payment li.payment_method_ryo_gateway > label::before,
.ryo-order-pay-page #payment li.payment_method_monero_gateway > label::before {
    content: "";
    display: inline-block;
    flex: 0 0 var(--ryo-shop-pay-icon-size);
    width: var(--ryo-shop-pay-icon-size);
    height: var(--ryo-shop-pay-icon-size);
    margin-right: 9px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.ryo-commerce-page #payment li.payment_method_ryo_gateway > label::before,
.ryo-order-pay-page #payment li.payment_method_ryo_gateway > label::before {
    background-image: url("../images/ryo-payment.png");
}

.ryo-commerce-page #payment li.payment_method_monero_gateway > label::before,
.ryo-order-pay-page #payment li.payment_method_monero_gateway > label::before {
    background-image: url("../images/monero-payment.png");
}

.ryo-commerce-page #payment li.payment_method_ryo_gateway > label::after,
.ryo-order-pay-page #payment li.payment_method_ryo_gateway > label::after {
    content: "RYO";
    display: inline-block;
    color: #17202a;
    font-size: 15px;
    line-height: 1.35;
}

.ryo-commerce-page #payment li.payment_method_monero_gateway > label::after,
.ryo-order-pay-page #payment li.payment_method_monero_gateway > label::after {
    content: "Monero";
    display: inline-block;
    color: #17202a;
    font-size: 15px;
    line-height: 1.35;
}

.ryo-commerce-page #payment .payment_box,
.ryo-order-pay-page #payment .payment_box {
    margin: 13px 0 0 !important;
    padding: 14px 15px !important;
    border: 1px solid #e1e7ec;
    border-radius: 6px !important;
    background: #f8fafc !important;
    color: #4d5965 !important;
    font-size: 13px;
    line-height: 1.65;
}

.ryo-commerce-page #payment .payment_box::before,
.ryo-order-pay-page #payment .payment_box::before {
    display: none !important;
}

.ryo-commerce-page #payment .payment_box p:last-child,
.ryo-order-pay-page #payment .payment_box p:last-child {
    margin-bottom: 0;
}

/* Never impose the 28px method-logo size on gateway QR/payment content. */
.ryo-commerce-page #payment .payment_box img,
.ryo-order-pay-page #payment .payment_box img {
    max-height: none !important;
    height: auto;
}

.ryo-commerce-page #payment .place-order,
.ryo-order-pay-page #payment .place-order {
    margin: 0 !important;
    padding: 18px !important;
    border-top: 1px solid #dbe3e9;
    background: #fff;
}

.ryo-commerce-page #place_order,
.ryo-order-pay-page #place_order {
    display: flex !important;
    align-items: center;
    justify-content: center;
    float: none !important;
    width: 100%;
    min-height: 54px;
    padding: 13px 20px !important;
    border-color: #09d3f4 !important;
    background: #09d3f4 !important;
    color: #071018 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

.ryo-commerce-page #place_order:hover,
.ryo-commerce-page #place_order:focus,
.ryo-order-pay-page #place_order:hover,
.ryo-order-pay-page #place_order:focus {
    border-color: #5368e8 !important;
    background: #5368e8 !important;
    color: #fff !important;
}

.ryo-commerce-page .woocommerce-privacy-policy-text,
.ryo-commerce-page .woocommerce-terms-and-conditions-wrapper {
    color: #66727e;
    font-size: 11px;
    line-height: 1.6;
}

.ryo-commerce-page .woocommerce-privacy-policy-text a,
.ryo-commerce-page .woocommerce-terms-and-conditions-wrapper a {
    color: #5368e8 !important;
}

/* Order Pay */
.ryo-order-pay-page .ryo-commerce-content > .woocommerce {
    max-width: 920px !important;
    margin: 0 auto !important;
    padding: 28px;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-order-pay-page form#order_review {
    margin: 0 !important;
}

/* -------------------------------------------------------------------------
   Order received / Thank you
   ------------------------------------------------------------------------- */
.ryo-order-received-page .ryo-commerce-content > .woocommerce {
    max-width: 1040px !important;
    margin: 0 auto !important;
}

.ryo-order-received-page .woocommerce-order {
    display: grid;
    gap: 22px;
}

.ryo-order-received-page .woocommerce-notice--success,
.ryo-order-received-page .woocommerce-thankyou-order-received {
    margin: 0 !important;
    padding: 20px 22px !important;
    border: 1px solid #bee3ce;
    border-left: 3px solid #2d9d62;
    border-radius: 7px;
    background: #f6fff9;
    color: #23583b;
    font-size: 15px;
    font-weight: 750;
}

.ryo-order-received-page ul.woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #dce3e9;
    border-radius: 8px;
    background: #dce3e9;
    overflow: hidden;
    list-style: none !important;
}

.ryo-order-received-page ul.woocommerce-order-overview li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 17px 18px !important;
    border: 0 !important;
    background: #fff;
    color: #73808c;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .65px;
    text-transform: uppercase;
}

.ryo-order-received-page ul.woocommerce-order-overview li strong {
    display: block;
    margin-top: 7px;
    color: #17202a;
    font-size: 13px;
    letter-spacing: 0;
    text-transform: none;
}

.ryo-order-received-page .woocommerce-order-details,
.ryo-order-received-page .woocommerce-customer-details,
.ryo-order-received-page .woocommerce-bacs-bank-details,
.ryo-order-received-page .wc-bacs-bank-details,
.ryo-order-received-page .woocommerce-order > p:not(.woocommerce-thankyou-order-received) {
    margin: 0 !important;
    padding: 24px;
    border: 1px solid #dce3e9;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(16,24,40,.045);
}

.ryo-order-received-page address {
    padding: 16px !important;
    border: 1px solid #e1e6eb !important;
    border-radius: 6px !important;
    background: #f9fafb;
    color: #4d5965;
    line-height: 1.7;
}

/* -------------------------------------------------------------------------
   WooCommerce Cart / Checkout Blocks
   ------------------------------------------------------------------------- */
.ryo-commerce-page .wc-block-components-sidebar-layout,
.ryo-commerce-page .wc-block-cart,
.ryo-commerce-page .wc-block-checkout {
    gap: 28px !important;
}

.ryo-commerce-page .wc-block-components-main,
.ryo-commerce-page .wc-block-cart__main,
.ryo-commerce-page .wc-block-checkout__main {
    min-width: 0 !important;
    padding: 26px !important;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-commerce-page .wc-block-components-sidebar,
.ryo-commerce-page .wc-block-cart__sidebar,
.ryo-commerce-page .wc-block-checkout__sidebar {
    min-width: 0 !important;
    padding: 24px !important;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

.ryo-commerce-page .wc-block-components-title,
.ryo-commerce-page .wc-block-components-checkout-step__heading h2,
.ryo-commerce-page .wc-block-components-totals-wrapper h2,
.ryo-commerce-page .wc-block-cart__totals-title {
    color: #161d26 !important;
    font-weight: 800 !important;
    letter-spacing: -.25px;
}

.ryo-commerce-page .wc-block-cart-items,
.ryo-commerce-page .wc-block-components-totals-wrapper,
.ryo-commerce-page .wc-block-checkout__order-notes,
.ryo-commerce-page .wc-block-checkout__payment-method {
    border-color: #e1e6eb !important;
}

.ryo-commerce-page .wc-block-components-text-input input,
.ryo-commerce-page .wc-block-components-combobox .wc-block-components-combobox-control input,
.ryo-commerce-page .wc-block-components-address-form input,
.ryo-commerce-page .wc-block-components-address-form select {
    border-color: #ccd5dd !important;
    border-radius: 5px !important;
    background: #fff !important;
    color: #1e2731 !important;
    box-shadow: none !important;
}

.ryo-commerce-page .wc-block-components-checkout-place-order-button,
.ryo-commerce-page .wc-block-cart__submit-button {
    min-height: 54px;
    border-color: #09d3f4 !important;
    background: #09d3f4 !important;
    color: #071018 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

.ryo-commerce-page .wc-block-components-payment-method-label img,
.ryo-commerce-page .wc-block-components-radio-control-accordion-option img {
    width: var(--ryo-shop-pay-icon-size) !important;
    height: var(--ryo-shop-pay-icon-size) !important;
    max-width: var(--ryo-shop-pay-icon-size) !important;
    max-height: var(--ryo-shop-pay-icon-size) !important;
    object-fit: contain !important;
}


/* -------------------------------------------------------------------------
   v1.2.1 — Unified checkout foundation
   ------------------------------------------------------------------------- */
body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-billing-fields > h3 {
    margin-bottom: 8px !important;
}

body.ryo-shop-shipping-only-checkout .ryo-shipping-contact-note {
    margin: 0 0 20px !important;
    color: #66727e !important;
    font-size: 13px;
    line-height: 1.65;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-billing-fields__field-wrapper {
    display: flow-root;
    margin-bottom: 8px;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page #customer_details .col-2 {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

/* The shipping fields are mandatory for this physical-store flow. Keep the
   WooCommerce checkbox checked server-side, but remove the redundant
   "Ship to a different address?" choice from the customer interface. */
body.ryo-shop-shipping-only-checkout .ryo-checkout-page #ship-to-different-address,
body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-shipping-fields > h3 {
    display: none !important;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .shipping_address {
    display: block !important;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-shipping-fields__field-wrapper {
    margin-top: 2px;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-additional-fields {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #e5eaee;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-additional-fields > h3 {
    font-size: 19px !important;
}

/* Checkout Blocks already model Contact + Shipping separately. Suppress the
   billing-address duplicate and the "same as shipping" control; the Store API
   hook mirrors shipping into the order billing properties server-side. */
body.ryo-shop-shipping-only-checkout .wc-block-checkout__billing-fields,
body.ryo-shop-shipping-only-checkout .wc-block-checkout__billing-address,
body.ryo-shop-shipping-only-checkout .wp-block-woocommerce-checkout-billing-address-block,
body.ryo-shop-shipping-only-checkout .wc-block-checkout__use-address-for-billing,
body.ryo-shop-shipping-only-checkout .wc-block-components-checkbox.wc-block-checkout__use-address-for-billing {
    display: none !important;
}

body.ryo-shop-shipping-only-checkout .wc-block-checkout__contact-fields,
body.ryo-shop-shipping-only-checkout .wc-block-checkout__shipping-fields {
    border-color: #e1e6eb !important;
}

/* Responsive commerce */
@media (max-width: 980px) {
    .ryo-cart-page .ryo-commerce-content > .woocommerce,
    .ryo-checkout-page form.checkout.woocommerce-checkout {
        display: block;
    }

    .ryo-cart-page .woocommerce-cart-form,
    .ryo-cart-page .cart-collaterals,
    .ryo-checkout-page form.checkout #customer_details,
    .ryo-checkout-page form.checkout #order_review_heading,
    .ryo-checkout-page form.checkout #order_review {
        width: 100% !important;
    }

    .ryo-cart-page .cart-collaterals {
        margin-top: 24px !important;
    }

    .ryo-checkout-page form.checkout #order_review_heading {
        margin-top: 24px !important;
    }

    .ryo-commerce-page .wc-block-components-sidebar-layout,
    .ryo-commerce-page .wc-block-cart,
    .ryo-commerce-page .wc-block-checkout {
        display: block !important;
    }

    .ryo-commerce-page .wc-block-components-main,
    .ryo-commerce-page .wc-block-components-sidebar,
    .ryo-commerce-page .wc-block-cart__main,
    .ryo-commerce-page .wc-block-cart__sidebar,
    .ryo-commerce-page .wc-block-checkout__main,
    .ryo-commerce-page .wc-block-checkout__sidebar {
        width: 100% !important;
        max-width: none !important;
    }

    .ryo-commerce-page .wc-block-components-sidebar,
    .ryo-commerce-page .wc-block-cart__sidebar,
    .ryo-commerce-page .wc-block-checkout__sidebar {
        margin-top: 24px !important;
    }
}

@media (max-width: 760px) {
    .ryo-commerce-nav-inner {
        min-height: 54px;
    }

    .ryo-commerce-nav-action {
        font-size: 11px;
    }

    .ryo-commerce-heading {
        padding: 44px 16px 40px;
    }

    .ryo-commerce-main {
        padding: 34px 16px 60px;
    }

    .ryo-commerce-payment-note {
        align-items: flex-start;
        padding: 17px 18px;
    }

    .ryo-order-received-page ul.woocommerce-order-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .ryo-commerce-breadcrumbs {
        gap: 6px;
        font-size: 11px;
    }

    .ryo-commerce-heading h1 {
        font-size: 38px;
    }

    .ryo-commerce-heading p {
        font-size: 14px;
    }

    .ryo-commerce-payment-note {
        display: grid;
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .ryo-cart-page .woocommerce-cart-form {
        border-radius: 7px;
        overflow: visible;
    }

    .ryo-cart-page .woocommerce-cart-form table.shop_table,
    .ryo-cart-page .woocommerce-cart-form table.shop_table tbody,
    .ryo-cart-page .woocommerce-cart-form table.shop_table tr,
    .ryo-cart-page .woocommerce-cart-form table.shop_table td {
        display: block;
        width: 100% !important;
    }

    .ryo-cart-page .woocommerce-cart-form table.shop_table thead {
        display: none;
    }

    .ryo-cart-page .woocommerce-cart-form table.shop_table tr.cart_item {
        position: relative;
        padding: 17px 17px 14px 116px;
        border-bottom: 1px solid #e6ebef;
        background: #fff;
        min-height: 132px;
    }

    .ryo-cart-page .woocommerce-cart-form table.shop_table td {
        padding: 5px 0 !important;
        border: 0 !important;
        text-align: left !important;
    }

    .ryo-cart-page .woocommerce-cart-form td.product-remove {
        position: absolute;
        top: 11px;
        right: 12px;
        width: auto !important;
        z-index: 2;
    }

    .ryo-cart-page .woocommerce-cart-form td.product-thumbnail {
        position: absolute;
        top: 17px;
        left: 17px;
        width: 84px !important;
        padding: 0 !important;
    }

    .ryo-cart-page .woocommerce-cart-form td.product-thumbnail::before,
    .ryo-cart-page .woocommerce-cart-form td.product-name::before,
    .ryo-cart-page .woocommerce-cart-form td.product-price::before,
    .ryo-cart-page .woocommerce-cart-form td.product-quantity::before,
    .ryo-cart-page .woocommerce-cart-form td.product-subtotal::before {
        display: none !important;
    }

    .ryo-cart-page .woocommerce-cart-form td.product-thumbnail img {
        width: 82px !important;
        height: 98px !important;
    }

    .ryo-cart-page .woocommerce-cart-form td.product-name {
        padding-right: 34px !important;
    }

    .ryo-cart-page .woocommerce-cart-form td.actions {
        padding: 15px !important;
    }

    .ryo-cart-page .woocommerce-cart-form .coupon {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .ryo-cart-page .woocommerce-cart-form .coupon .input-text,
    .ryo-cart-page .woocommerce-cart-form .coupon .button,
    .ryo-cart-page .woocommerce-cart-form td.actions > .button {
        width: 100% !important;
        margin: 0 0 8px !important;
    }

    .ryo-cart-page .cart-collaterals .cart_totals,
    .ryo-checkout-page form.checkout #customer_details,
    .ryo-checkout-page form.checkout #order_review {
        padding: 19px;
    }

    .ryo-checkout-page form.checkout #order_review_heading {
        padding: 19px 19px 14px;
    }

    .ryo-order-pay-page .ryo-commerce-content > .woocommerce {
        padding: 19px;
    }

    .ryo-order-received-page ul.woocommerce-order-overview {
        grid-template-columns: 1fr;
    }

    .ryo-order-received-page .woocommerce-order-details,
    .ryo-order-received-page .woocommerce-customer-details,
    .ryo-order-received-page .woocommerce-bacs-bank-details,
    .ryo-order-received-page .wc-bacs-bank-details,
    .ryo-order-received-page .woocommerce-order > p:not(.woocommerce-thankyou-order-received) {
        padding: 19px;
    }

    .ryo-commerce-page .wc-block-components-main,
    .ryo-commerce-page .wc-block-components-sidebar,
    .ryo-commerce-page .wc-block-cart__main,
    .ryo-commerce-page .wc-block-cart__sidebar,
    .ryo-commerce-page .wc-block-checkout__main,
    .ryo-commerce-page .wc-block-checkout__sidebar {
        padding: 18px !important;
    }
}

/* -------------------------------------------------------------------------
   v1.2.2 — Email-only contact + delivery phone
   ------------------------------------------------------------------------- */
body.ryo-shop-shipping-only-checkout .ryo-checkout-page .woocommerce-billing-fields__field-wrapper .ryo-contact-email {
    width: 100% !important;
    float: none !important;
    clear: both !important;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .ryo-contact-note {
    max-width: 620px;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .ryo-shipping-information-heading {
    margin: 28px 0 18px;
    padding-top: 24px;
    border-top: 1px solid #e2e8ed;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .ryo-shipping-information-heading h3 {
    margin: 0 0 7px !important;
    color: #17202a !important;
    font-size: 22px !important;
    font-weight: 850 !important;
    letter-spacing: -.35px;
    line-height: 1.2;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .ryo-shipping-information-heading p {
    margin: 0 !important;
    color: #66727e !important;
    font-size: 13px;
    line-height: 1.6;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .ryo-shipping-phone {
    width: 100% !important;
    float: none !important;
    clear: both !important;
}

body.ryo-shop-shipping-only-checkout .ryo-checkout-page .ryo-shipping-phone .description {
    display: block;
    margin-top: 6px;
    color: #7a8590;
    font-size: 11px;
    line-height: 1.45;
}

/* WooCommerce Checkout Blocks already put email in Contact and phone in the
   address model when the Phone address field is enabled in the block. */
body.ryo-shop-shipping-only-checkout .wc-block-checkout__contact-fields .wc-block-components-address-form__phone,
body.ryo-shop-shipping-only-checkout .wc-block-checkout__contact-fields input[type="tel"] {
    display: none !important;
}

/* -------------------------------------------------------------------------
   v1.2.3 — My Account
   ------------------------------------------------------------------------- */
.ryo-account-page {
    position: relative;
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0;
    background: #f5f7fa;
    color: #1f2933;
    font-family: Arial, Helvetica, sans-serif;
    clear: both;
    overflow: hidden;
}

.ryo-account-page *,
.ryo-account-page *::before,
.ryo-account-page *::after {
    box-sizing: border-box;
}

.ryo-account-main {
    min-height: 460px;
    padding: 48px 24px 84px;
    background: #f5f7fa;
}

.ryo-account-content,
.ryo-account-content > .woocommerce {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.ryo-account-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin: 0 0 28px;
    padding: 24px 26px;
    border: 1px solid #25394b;
    border-left: 3px solid #09d3f4;
    border-radius: 9px;
    background:
        radial-gradient(circle at 88% 15%, rgba(9,211,244,.12), transparent 30%),
        linear-gradient(135deg, #101720, #172534);
    color: #fff;
    box-shadow: 0 12px 34px rgba(11,16,25,.08);
}

.ryo-account-intro .ryo-shop-kicker {
    margin-bottom: 7px;
}

.ryo-account-intro strong {
    display: block;
    color: #fff;
    font-size: 20px;
    font-weight: 850;
    letter-spacing: -.2px;
}

.ryo-account-intro p {
    max-width: 720px;
    margin: 7px 0 0;
    color: #bac6d1;
    font-size: 13px;
    line-height: 1.65;
}

.ryo-account-intro-points {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}

.ryo-account-intro-points span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(255,255,255,.05);
    color: #dce6ee;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .45px;
    text-transform: uppercase;
}

/* Logged-out My Account is sign-in only. */
body.ryo-shop-account-logged-out .ryo-account-content > .woocommerce > h2 {
    display: none !important;
}

body.ryo-shop-account-logged-out .ryo-account-content .u-columns.col2-set,
body.ryo-shop-account-logged-out .ryo-account-content .col2-set {
    display: block !important;
    width: 100% !important;
    max-width: 680px !important;
    margin: 0 auto !important;
}

body.ryo-shop-account-logged-out .ryo-account-content .u-column1,
body.ryo-shop-account-logged-out .ryo-account-content .u-column2,
body.ryo-shop-account-logged-out .ryo-account-content .col-1,
body.ryo-shop-account-logged-out .ryo-account-content .col-2 {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 30px !important;
    border: 1px solid #dce3e9;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.055);
}

body.ryo-shop-account-logged-out .ryo-account-content .u-column2,
body.ryo-shop-account-logged-out .ryo-account-content .col-2 {
    display: none !important;
}

.ryo-account-page .woocommerce h2,
.ryo-account-page .woocommerce h3,
.ryo-account-page .woocommerce legend {
    color: #17202a !important;
    font-weight: 850 !important;
    letter-spacing: -.25px;
}

body.ryo-shop-account-logged-out .ryo-account-content .u-column1 > h2,
body.ryo-shop-account-logged-out .ryo-account-content .u-column2 > h2,
body.ryo-shop-account-logged-out .ryo-account-content .col-1 > h2,
body.ryo-shop-account-logged-out .ryo-account-content .col-2 > h2 {
    margin: 0 0 20px !important;
    font-size: 25px !important;
}

.ryo-account-page .woocommerce-form,
.ryo-account-page .woocommerce-EditAccountForm,
.ryo-account-page .woocommerce-address-fields {
    margin: 0 !important;
}

.ryo-account-page form .form-row {
    margin: 0 0 17px !important;
}

.ryo-account-page form .form-row label {
    display: block;
    margin-bottom: 7px;
    color: #36414c !important;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .5px;
    text-transform: uppercase;
}

.ryo-account-page form input.input-text,
.ryo-account-page form input[type="text"],
.ryo-account-page form input[type="email"],
.ryo-account-page form input[type="password"],
.ryo-account-page form input[type="tel"],
.ryo-account-page form select,
.ryo-account-page .select2-container--default .select2-selection--single {
    width: 100% !important;
    min-height: 48px !important;
    padding: 10px 12px !important;
    border: 1px solid #ccd5dd !important;
    border-radius: 5px !important;
    background: #fff !important;
    color: #17202a !important;
    box-shadow: none !important;
}

.ryo-account-page .select2-container--default .select2-selection--single {
    padding: 7px 12px !important;
}

.ryo-account-page form input:focus,
.ryo-account-page form select:focus,
.ryo-account-page .select2-container--focus .select2-selection--single,
.ryo-account-page .select2-container--open .select2-selection--single {
    border-color: #5368e8 !important;
    outline: 2px solid rgba(83,104,232,.12) !important;
    outline-offset: 0;
}

.ryo-account-field-help,
.ryo-account-page form .description {
    display: block;
    margin-top: 7px;
    color: #77828d;
    font-size: 11px;
    line-height: 1.5;
}

.ryo-account-page .woocommerce-form-login__rememberme {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
    margin: 2px 12px 12px 0 !important;
    color: #5f6b76;
    font-size: 12px;
}

.ryo-account-page .woocommerce-form-login__rememberme input {
    width: auto !important;
    min-height: 0 !important;
}

.ryo-account-page .woocommerce-LostPassword,
.ryo-account-page .lost_password {
    margin: 15px 0 0 !important;
    font-size: 12px;
}

.ryo-account-page a {
    color: #4259d5;
}

.ryo-account-page a:hover,
.ryo-account-page a:focus {
    color: #1c35bb;
}

.ryo-account-page .button,
.ryo-account-page button.button,
.ryo-account-page input.button {
    min-height: 46px;
    padding: 11px 18px !important;
    border: 1px solid #09d3f4 !important;
    border-radius: 5px !important;
    background: #09d3f4 !important;
    color: #071018 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .35px;
    text-decoration: none !important;
    box-shadow: none !important;
}

.ryo-account-page .button:hover,
.ryo-account-page .button:focus,
.ryo-account-page button.button:hover,
.ryo-account-page button.button:focus {
    border-color: #5368e8 !important;
    background: #5368e8 !important;
    color: #fff !important;
}

/* Hide WordPress/Woo identity fields that duplicate shipping identity. Their
   current values stay in the DOM/post for compatibility but are not part of
   the customer-facing Shop account model. */
body.ryo-shop-account-account-details .woocommerce-EditAccountForm .form-row:has(#account_first_name),
body.ryo-shop-account-account-details .woocommerce-EditAccountForm .form-row:has(#account_last_name),
body.ryo-shop-account-account-details .woocommerce-EditAccountForm .form-row:has(#account_display_name) {
    display: none !important;
}

.ryo-account-edit-intro {
    margin: 0 0 24px;
    padding: 0 0 20px;
    border-bottom: 1px solid #e2e8ed;
}

.ryo-account-edit-intro .ryo-shop-kicker {
    margin-bottom: 6px;
}

.ryo-account-edit-intro h2 {
    margin: 0 0 7px !important;
    font-size: 24px !important;
}

.ryo-account-edit-intro p {
    max-width: 700px;
    margin: 0;
    color: #697580;
    font-size: 13px;
    line-height: 1.6;
}

/* Logged-in account shell */
body.ryo-shop-account-logged-in .ryo-account-content > .woocommerce {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}

.ryo-account-page .woocommerce-MyAccount-navigation {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #263949;
    border-radius: 9px;
    background: #111c28;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(16,24,40,.07);
}

.ryo-account-page .woocommerce-MyAccount-navigation ul {
    margin: 0 !important;
    padding: 7px !important;
    list-style: none !important;
}

.ryo-account-page .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    list-style: none !important;
}

.ryo-account-page .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 13px;
    border-radius: 5px;
    color: #c6d1db !important;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none !important;
}

.ryo-account-page .woocommerce-MyAccount-navigation li.is-active a {
    background: #09d3f4;
    color: #071018 !important;
}

.ryo-account-page .woocommerce-MyAccount-navigation a:hover,
.ryo-account-page .woocommerce-MyAccount-navigation a:focus {
    background: rgba(255,255,255,.07);
    color: #fff !important;
}

.ryo-account-page .woocommerce-MyAccount-navigation li.is-active a:hover,
.ryo-account-page .woocommerce-MyAccount-navigation li.is-active a:focus {
    background: #09d3f4;
    color: #071018 !important;
}

.ryo-account-page .woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 5px !important;
    padding-top: 5px !important;
    border-top: 1px solid rgba(255,255,255,.09) !important;
}

.ryo-account-page .woocommerce-MyAccount-content {
    width: 100% !important;
    min-width: 0;
    float: none !important;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid #dce3e9;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,40,.05);
}

.ryo-account-page .woocommerce-MyAccount-content > p:first-child {
    margin-top: 0;
}

/* Dashboard */
.ryo-account-welcome {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 26px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e4e9ed;
}

.ryo-account-welcome .ryo-shop-kicker {
    margin-bottom: 6px;
}

.ryo-account-welcome h2 {
    margin: 0 !important;
    color: #121a23 !important;
    font-size: clamp(27px, 3vw, 38px) !important;
    font-weight: 860 !important;
    letter-spacing: -.8px;
    line-height: 1.1;
}

.ryo-account-welcome p {
    max-width: 720px;
    margin: 9px 0 0;
    color: #68737f;
    font-size: 13px;
    line-height: 1.65;
}

.ryo-account-secondary-action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid #cfd7de;
    border-radius: 5px;
    color: #273541 !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}

.ryo-account-secondary-action:hover,
.ryo-account-secondary-action:focus {
    border-color: #5368e8;
    color: #4259d5 !important;
}

.ryo-account-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
}

.ryo-account-card {
    display: flex;
    flex-direction: column;
    min-height: 210px;
    padding: 20px;
    border: 1px solid #e0e6eb;
    border-radius: 7px;
    background: #f9fbfc;
}

.ryo-account-card-order {
    border-top: 3px solid #5368e8;
    background: #fff;
}

.ryo-account-card-label {
    display: block;
    margin-bottom: 13px;
    color: #76818c;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.ryo-account-card strong {
    color: #17202a;
    font-size: 16px;
    font-weight: 850;
}

.ryo-account-card p,
.ryo-account-card address {
    margin: 8px 0 14px;
    color: #64707c;
    font-size: 12px;
    font-style: normal;
    line-height: 1.65;
}

.ryo-account-card a {
    margin-top: auto;
    color: #4259d5 !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}

.ryo-account-order-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ryo-account-status {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    background: #eaf0ff;
    color: #4055c8;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.ryo-account-order-total {
    margin: 0 0 15px;
    color: #111a24;
    font-size: 15px;
    font-weight: 850;
}

.ryo-account-email {
    overflow-wrap: anywhere;
}

.ryo-account-dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

.ryo-account-dashboard-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 9px 13px;
    border: 1px solid #d7dfe5;
    border-radius: 5px;
    color: #34424e !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}

/* Orders, view order and shipping forms */
.ryo-account-page .woocommerce-orders-table,
.ryo-account-page .woocommerce-table--order-details,
.ryo-account-page table.shop_table {
    width: 100%;
    margin: 0 0 22px !important;
    border: 1px solid #e0e6eb !important;
    border-collapse: collapse !important;
    border-radius: 7px !important;
    background: #fff;
    overflow: hidden;
}

.ryo-account-page table.shop_table th,
.ryo-account-page table.shop_table td,
.ryo-account-page .woocommerce-orders-table th,
.ryo-account-page .woocommerce-orders-table td {
    padding: 13px 12px !important;
    border: 0 !important;
    border-bottom: 1px solid #e8edf1 !important;
    background: #fff !important;
    color: #3b4651;
    font-size: 12px;
    text-align: left;
}

.ryo-account-page table.shop_table th,
.ryo-account-page .woocommerce-orders-table th {
    background: #f7f9fb !important;
    color: #6e7984;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .75px;
    text-transform: uppercase;
}

.ryo-account-page .woocommerce-Address,
.ryo-account-page .woocommerce-customer-details,
.ryo-account-page .woocommerce-order-details {
    margin: 0 0 22px !important;
}

.ryo-account-page .woocommerce-Address-title,
.ryo-account-page .woocommerce-customer-details h2,
.ryo-account-page .woocommerce-order-details h2 {
    margin-top: 0 !important;
}

.ryo-account-page address {
    color: #5f6b76;
    font-style: normal;
    line-height: 1.7;
}

/* Password/account editing: only Shop Username, email and password are part of
   the visible account identity. */
body.ryo-shop-account-account-details .woocommerce-EditAccountForm fieldset {
    margin: 28px 0 0 !important;
    padding: 24px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid #e2e8ed !important;
}

body.ryo-shop-account-account-details .woocommerce-EditAccountForm fieldset legend {
    margin: 0 0 18px !important;
    padding: 0 !important;
    font-size: 20px !important;
}

/* Optional post-purchase account invitation */
.ryo-guest-account-prompt {
    margin: 26px 0 0;
    padding: 22px;
    border: 1px solid #d9e2e8;
    border-left: 3px solid #5368e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(16,24,40,.045);
}

.ryo-guest-account-prompt .ryo-shop-kicker {
    margin-bottom: 6px;
}

.ryo-guest-account-prompt h3 {
    margin: 0 0 8px !important;
    color: #17202a !important;
    font-size: 21px !important;
    font-weight: 850 !important;
}

.ryo-guest-account-prompt p {
    max-width: 760px;
    margin: 0 0 15px !important;
    color: #66727e !important;
    font-size: 13px;
    line-height: 1.65;
}

/* Woo notices on the account surface */
.ryo-account-page .woocommerce-message,
.ryo-account-page .woocommerce-info,
.ryo-account-page .woocommerce-error {
    margin: 0 0 20px !important;
    padding: 15px 18px 15px 48px !important;
    border: 1px solid #dce3e9 !important;
    border-top: 0 !important;
    border-left: 3px solid #5368e8 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #34404c !important;
}

.ryo-account-page .woocommerce-error {
    border-left-color: #c74a4a !important;
}

@media (max-width: 980px) {
    body.ryo-shop-account-logged-in .ryo-account-content > .woocommerce {
        grid-template-columns: 200px minmax(0, 1fr);
        gap: 18px;
    }

    .ryo-account-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ryo-account-card-order {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .ryo-account-main {
        padding: 34px 16px 60px;
    }

    .ryo-account-intro {
        display: block;
        padding: 20px;
    }

    .ryo-account-intro-points {
        justify-content: flex-start;
        margin-top: 16px;
    }

    body.ryo-shop-account-logged-out .ryo-account-content .u-columns.col2-set,
    body.ryo-shop-account-logged-out .ryo-account-content .col2-set,
    body.ryo-shop-account-logged-in .ryo-account-content > .woocommerce {
        display: block !important;
    }

    body.ryo-shop-account-logged-out .ryo-account-content .u-column2,
    body.ryo-shop-account-logged-out .ryo-account-content .col-2,
    .ryo-account-page .woocommerce-MyAccount-content {
        margin-top: 18px !important;
    }

    .ryo-account-page .woocommerce-MyAccount-navigation ul {
        display: flex;
        gap: 4px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .ryo-account-page .woocommerce-MyAccount-navigation li {
        flex: 0 0 auto;
    }

    .ryo-account-page .woocommerce-MyAccount-navigation-link--customer-logout {
        margin-top: 0 !important;
        padding-top: 0 !important;
        border-top: 0 !important;
    }

    .ryo-account-page .woocommerce-MyAccount-content {
        padding: 21px !important;
    }

    .ryo-account-welcome {
        display: block;
    }

    .ryo-account-secondary-action {
        margin-top: 16px;
    }

    .ryo-account-card-grid {
        grid-template-columns: 1fr;
    }

    .ryo-account-card-order {
        grid-column: auto;
    }
}

@media (max-width: 560px) {
    body.ryo-shop-account-logged-out .ryo-account-content .u-column1,
    body.ryo-shop-account-logged-out .ryo-account-content .u-column2,
    body.ryo-shop-account-logged-out .ryo-account-content .col-1,
    body.ryo-shop-account-logged-out .ryo-account-content .col-2,
    .ryo-account-page .woocommerce-MyAccount-content {
        padding: 18px !important;
    }

    .ryo-account-intro-points span {
        width: 100%;
        justify-content: center;
    }

    .ryo-account-page table.shop_table,
    .ryo-account-page .woocommerce-orders-table {
        font-size: 11px;
    }
}


/* My Account intentionally exposes only one delivery address. */
.ryo-account-page .woocommerce-Addresses,
.ryo-account-page .woocommerce-Addresses .woocommerce-Address,
.ryo-account-page .woocommerce-Addresses .u-column1,
.ryo-account-page .woocommerce-Addresses .u-column2 {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
}

.ryo-account-page .woocommerce-Address-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.ryo-account-page .woocommerce-Address-title h2 {
    margin: 0 !important;
    font-size: 22px !important;
}

.ryo-account-page .woocommerce-Address-title .edit {
    float: none !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}

.ryo-account-username-setup {
    display: inline-block;
    margin-top: 10px;
    color: #4259d5 !important;
    font-size: 11px;
    font-weight: 850;
    text-decoration: none !important;
}


/* v1.2.3 — post-purchase-only account creation */
.ryo-guest-account-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
    max-width: 620px;
    margin-top: 18px;
    align-items: end;
}

.ryo-guest-account-form label {
    grid-column: 1 / -1;
    margin: 0;
    color: #25313d;
    font-size: 13px;
    font-weight: 800;
}

.ryo-guest-account-form input[type="text"] {
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #cfd9e1;
    border-radius: 6px;
    background: #fff;
    color: #17202a;
    font-size: 15px;
    line-height: 1.3;
    box-shadow: none;
}

.ryo-guest-account-form input[type="text"]:focus {
    border-color: #5368e8;
    outline: 2px solid rgba(83,104,232,.16);
    outline-offset: 1px;
}

.ryo-guest-account-form .ryo-account-field-help {
    grid-column: 1 / -1;
    margin-top: -2px;
}

.ryo-guest-account-form .button {
    min-height: 46px !important;
    white-space: nowrap;
}

.ryo-guest-account-error {
    max-width: 760px;
    margin: 14px 0 0;
    padding: 12px 14px;
    border: 1px solid #efc9c9;
    border-left: 3px solid #c74a4a;
    border-radius: 6px;
    background: #fff8f8;
    color: #7a2f2f;
    font-size: 13px;
    line-height: 1.55;
}

.ryo-guest-account-success {
    border-left-color: #2e8b57;
    background: #fbfffc;
}

@media (max-width: 640px) {
    .ryo-guest-account-form {
        grid-template-columns: 1fr;
    }

    .ryo-guest-account-form .button {
        width: 100% !important;
    }
}
