diff --git a/assets/custom.css b/assets/custom.css new file mode 100644 index 00000000000..b92e1e1640c --- /dev/null +++ b/assets/custom.css @@ -0,0 +1,621 @@ +/* ============================================================ + CloudVaultUS — Premium Light Theme + Palette: warm off-white base · vibrant red accent · charcoal text + Fonts: Bebas Neue (display) · DM Sans (body, weight 300/400/500) + ============================================================ */ + +/* ── 1. GOOGLE FONTS ─────────────────────────────────────── */ +@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap'); + +/* ── 2. DESIGN TOKENS ────────────────────────────────────── */ +:root { + /* ── Red accent ── */ + --cvus-red: #E63946; + --cvus-red-hover: #C1121F; + --cvus-red-glow: rgba(230, 57, 70, 0.18); + --cvus-red-subtle: rgba(230, 57, 70, 0.07); + --cvus-red-tint: #FFF4F4; /* section background accent */ + + /* ── Backgrounds: warm, not clinical white ── */ + --cvus-bg: #F8F7F4; /* warm cloud white — base */ + --cvus-surface: #FFFFFF; /* cards, panels */ + --cvus-surface-warm: #FFFCFB; /* hero right-panel tint */ + --cvus-elevated: #F0EFE9; /* subtle fills, alt rows */ + --cvus-section-alt: #F3F2EF; /* alternating section bg */ + + /* ── Text ── */ + --cvus-text: #1A1A1E; /* warm charcoal */ + --cvus-text-sub: #6B6B7A; /* medium warm gray */ + --cvus-text-muted: #AEADB8; /* light gray */ + --cvus-text-dim: #D1D0D9; /* very muted */ + + /* ── Borders: barely-there on light ── */ + --cvus-border: rgba(0, 0, 0, 0.07); + --cvus-border-strong: rgba(0, 0, 0, 0.12); + + /* ── Header: dark for premium contrast ── */ + --cvus-header-bg: #111111; + --cvus-header-text: #FFFFFF; + --cvus-header-sub: rgba(255, 255, 255, 0.55); + --cvus-header-border: rgba(255, 255, 255, 0.08); + + /* ── Footer ── */ + --cvus-footer-bg: #111111; + --cvus-footer-text: rgba(255, 255, 255, 0.45); + + /* ── Typography ── */ + --cvus-font-display: 'Bebas Neue', sans-serif; + --cvus-font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif; + + /* ── Dawn RGB overrides — light theme ── */ + --color-background: 248, 247, 244; + --color-foreground: 26, 26, 30; + --color-background-contrast: 240, 239, 233; + --color-shadow: 26, 26, 30; + --color-button: 230, 57, 70; + --color-button-text: 255, 255, 255; + --color-secondary-button: 255, 255, 255; + --color-secondary-button-text: 26, 26, 30; + --color-link: 230, 57, 70; + --color-badge-foreground: 255, 255, 255; + --color-badge-background: 230, 57, 70; + --color-badge-border: 230, 57, 70; + + /* ── Shadows: subtle & warm ── */ + --cvus-shadow-xs: 0 1px 4px rgba(0, 0, 0, 0.05); + --cvus-shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.06); + --cvus-shadow-md: 0 6px 24px rgba(0, 0, 0, 0.08); + --cvus-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.10); + --cvus-shadow-xl: 0 32px 72px rgba(0, 0, 0, 0.12); + --cvus-shadow-red: 0 8px 32px rgba(230, 57, 70, 0.22); + + /* ── Shape ── */ + --cvus-radius-sm: 6px; + --cvus-radius-md: 10px; + --cvus-radius-lg: 16px; + --cvus-radius-xl: 24px; + --cvus-radius-pill: 999px; +} + +/* ── 3. GLOBAL RESET ─────────────────────────────────────── */ +*, *::before, *::after { box-sizing: border-box; } + +html { + scroll-behavior: smooth; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body { + background-color: var(--cvus-bg) !important; + color: var(--cvus-text) !important; + font-family: var(--cvus-font-body) !important; + font-weight: 400 !important; +} + +/* ── 4. SCROLLBAR ─────────────────────────────────────────── */ +::-webkit-scrollbar { width: 5px; } +::-webkit-scrollbar-track { background: #F0EFE9; } +::-webkit-scrollbar-thumb { background: #D1D0D9; border-radius: 3px; } +::-webkit-scrollbar-thumb:hover { background: var(--cvus-red); } + +/* ── 5. TYPOGRAPHY ───────────────────────────────────────── */ +h1, h2, h3, h4, h5, h6, +.h0, .h1, .h2, .h3 { + font-family: var(--cvus-font-display) !important; + font-weight: 400 !important; + letter-spacing: 0.04em !important; + text-transform: uppercase !important; + color: var(--cvus-text) !important; + line-height: 0.95 !important; +} + +h1 { font-size: clamp(2.8rem, 7vw, 6rem); } +h2 { font-size: clamp(2rem, 4vw, 3.6rem); } +h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); } + +p { color: var(--cvus-text-sub); font-weight: 400; line-height: 1.68; } +a { color: var(--cvus-text); text-decoration: none; transition: color 0.2s; } +a:hover { color: var(--cvus-red); } +strong { font-weight: 600; color: var(--cvus-text); } + +/* ── 6. ANNOUNCEMENT BAR ─────────────────────────────────── */ +.announcement-bar { + background-color: var(--cvus-red) !important; +} +.announcement-bar__message, +.announcement-bar__message p, +.announcement-bar__message a { + font-family: var(--cvus-font-body) !important; + font-size: 11px !important; + font-weight: 500 !important; + letter-spacing: 0.16em !important; + text-transform: uppercase !important; + color: #fff !important; +} + +/* ── 7. HEADER — dark, glass ─────────────────────────────── */ +.header, +.shopify-section-group-header-group .header { + background-color: var(--cvus-header-bg) !important; + border-bottom: 1px solid var(--cvus-header-border) !important; + backdrop-filter: blur(20px) !important; + -webkit-backdrop-filter: blur(20px) !important; + position: sticky !important; + top: 0 !important; + z-index: 100 !important; +} + +.header__heading, +.header__heading-link { + font-family: var(--cvus-font-display) !important; + font-size: 1.35rem !important; + font-weight: 400 !important; + letter-spacing: 0.14em !important; + text-transform: uppercase !important; + color: var(--cvus-header-text) !important; +} + +.header__menu-item, +.header__menu-item span, +.header__menu-item .link { + font-family: var(--cvus-font-body) !important; + font-size: 11px !important; + font-weight: 500 !important; + letter-spacing: 0.14em !important; + text-transform: uppercase !important; + color: var(--cvus-header-sub) !important; + transition: color 0.2s !important; +} +.header__menu-item:hover span, +.header__menu-item:hover .link { color: #fff !important; } + +.header__icon svg, .header__icon path { + fill: var(--cvus-header-sub) !important; + stroke: var(--cvus-header-sub) !important; + transition: fill 0.2s, stroke 0.2s !important; +} +.header__icon:hover svg, .header__icon:hover path { + fill: #fff !important; + stroke: #fff !important; +} + +.cart-count-bubble { + background-color: var(--cvus-red) !important; + color: #fff !important; +} + +/* Mobile menu */ +.menu-drawer, .menu-drawer__navigation, .menu-drawer__container { + background-color: #111 !important; + border-right: 1px solid rgba(255,255,255,0.08) !important; +} +.menu-drawer__menu-item, .menu-drawer__menu-item span { + color: #fff !important; + font-family: var(--cvus-font-body) !important; +} + +/* ── 8. BUTTONS ──────────────────────────────────────────── */ +.button, +.button--primary, +button[type="submit"]:not(.shopify-challenge__button), +.shopify-payment-button__button--unbranded { + background-color: var(--cvus-red) !important; + color: #fff !important; + border: none !important; + border-radius: var(--cvus-radius-md) !important; + font-family: var(--cvus-font-body) !important; + font-weight: 500 !important; + font-size: 11px !important; + letter-spacing: 0.16em !important; + text-transform: uppercase !important; + padding: 14px 32px !important; + cursor: pointer !important; + transition: background-color 0.2s, transform 0.15s, box-shadow 0.2s !important; + box-shadow: 0 4px 16px var(--cvus-red-glow) !important; +} +.button:hover, .button--primary:hover { + background-color: var(--cvus-red-hover) !important; + transform: translateY(-2px) !important; + box-shadow: var(--cvus-shadow-red) !important; +} +.button:active { transform: translateY(0) !important; } + +.button--secondary { + background-color: var(--cvus-surface) !important; + border: 1.5px solid var(--cvus-border-strong) !important; + color: var(--cvus-text) !important; + box-shadow: var(--cvus-shadow-xs) !important; +} +.button--secondary:hover { + border-color: var(--cvus-red) !important; + color: var(--cvus-red) !important; + background-color: var(--cvus-red-subtle) !important; + transform: translateY(-1px) !important; + box-shadow: none !important; +} + +/* ── 9. PRODUCT CARDS — white + shadow ───────────────────── */ +.card-wrapper, .card, .product-card-wrapper { + background-color: var(--cvus-surface) !important; + border: 1px solid var(--cvus-border) !important; + border-radius: var(--cvus-radius-lg) !important; + box-shadow: var(--cvus-shadow-sm) !important; + overflow: hidden; + transition: box-shadow 0.3s ease, transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), + border-color 0.25s !important; +} +.card-wrapper:hover, .card:hover { + box-shadow: var(--cvus-shadow-lg) !important; + transform: translateY(-5px) !important; + border-color: rgba(230, 57, 70, 0.18) !important; +} + +.card__content, .card__inner, +.card-information, .card-information__wrapper { + background: transparent !important; +} + +.card__heading, .card__heading a, +.card-information .card__heading { + font-family: var(--cvus-font-display) !important; + font-size: 1rem !important; + font-weight: 400 !important; + letter-spacing: 0.05em !important; + text-transform: uppercase !important; + color: var(--cvus-text) !important; + line-height: 1.1 !important; +} + +.price, .price__regular, .price-item, +.price-item--regular, .price .money { + color: var(--cvus-red) !important; + font-weight: 600 !important; +} +.price--on-sale .price-item--regular { + color: var(--cvus-text-muted) !important; + text-decoration: line-through; + font-weight: 400 !important; +} + +.card__information .caption, +.card-information .caption { + color: var(--cvus-text-muted) !important; + font-size: 10px !important; + letter-spacing: 0.12em !important; + text-transform: uppercase !important; +} + +/* ── 10. PRODUCT IMAGES ──────────────────────────────────── */ +.media, .card__media, .product__media-item { + background-color: #F8F7F4 !important; + overflow: hidden; +} +.card__media img, .product-card-wrapper .media img { + transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; +} +.card-wrapper:hover .card__media img { + transform: scale(1.06) !important; +} + +/* ── 11. SECTION BACKGROUNDS ─────────────────────────────── */ +.color-background-1, .color-base-background-1, +[class*="color-scheme-"] { + background-color: var(--cvus-bg) !important; + color: var(--cvus-text) !important; +} +.color-background-2, .color-base-background-2 { + background-color: var(--cvus-surface) !important; + color: var(--cvus-text) !important; +} + +.title, .collection__title, .section-header .title { + font-family: var(--cvus-font-display) !important; + color: var(--cvus-text) !important; + text-transform: uppercase !important; + letter-spacing: 0.04em !important; + font-size: clamp(1.8rem, 4vw, 3.4rem) !important; +} + +/* ── 12. FORM INPUTS ─────────────────────────────────────── */ +.field__input, .select__select, +input[type="text"], input[type="email"], +input[type="tel"], input[type="password"], +input[type="search"], textarea, select { + background-color: var(--cvus-surface) !important; + border: 1.5px solid var(--cvus-border-strong) !important; + border-radius: var(--cvus-radius-md) !important; + color: var(--cvus-text) !important; + font-family: var(--cvus-font-body) !important; + font-weight: 400 !important; + box-shadow: var(--cvus-shadow-xs) !important; + transition: border-color 0.2s, box-shadow 0.2s !important; +} +.field__input:focus, input:focus, textarea:focus, select:focus { + border-color: var(--cvus-red) !important; + outline: none !important; + box-shadow: 0 0 0 3px var(--cvus-red-subtle) !important; +} +.field__label, label { + color: var(--cvus-text-sub) !important; + font-family: var(--cvus-font-body) !important; + font-size: 11px !important; + font-weight: 500 !important; + letter-spacing: 0.1em !important; + text-transform: uppercase !important; +} +input::placeholder, textarea::placeholder { color: var(--cvus-text-muted) !important; } + +/* ── 13. CART DRAWER ─────────────────────────────────────── */ +cart-drawer, .cart-drawer, .cart-drawer__form { + background-color: var(--cvus-surface) !important; + border-left: 1px solid var(--cvus-border) !important; + box-shadow: -8px 0 48px rgba(0, 0, 0, 0.12) !important; +} +.cart-drawer__header { + background: var(--cvus-bg) !important; + border-bottom: 1px solid var(--cvus-border) !important; +} +.cart-drawer__footer { + background-color: var(--cvus-bg) !important; + border-top: 1px solid var(--cvus-border) !important; +} +.cart-item__name, .cart-item__name a { + color: var(--cvus-text) !important; + font-family: var(--cvus-font-display) !important; + text-transform: uppercase !important; + letter-spacing: 0.04em !important; +} +.cart-item__price { color: var(--cvus-red) !important; font-weight: 600 !important; } +.totals__total-value { color: var(--cvus-text) !important; font-weight: 600 !important; } + +/* ── 14. FOOTER ──────────────────────────────────────────── */ +.footer, .footer-section { + background-color: var(--cvus-footer-bg) !important; + border-top: none !important; +} +.footer-block__heading { + font-family: var(--cvus-font-body) !important; + font-size: 10px !important; + font-weight: 600 !important; + letter-spacing: 0.2em !important; + text-transform: uppercase !important; + color: #fff !important; + margin-bottom: 16px !important; +} +.footer__column, .footer__content-top, .footer__content-bottom, +.footer p, .footer li, .footer span { color: var(--cvus-footer-text) !important; } +.footer a { + color: var(--cvus-footer-text) !important; + font-size: 12px; + font-weight: 400; + transition: color 0.2s !important; +} +.footer a:hover { color: #fff !important; } +.footer__content-bottom { + border-top: 1px solid rgba(255, 255, 255, 0.07) !important; +} + +/* ── 15. BADGE ───────────────────────────────────────────── */ +.badge { + background-color: var(--cvus-red) !important; + color: #fff !important; + border: none !important; + border-radius: var(--cvus-radius-sm) !important; + font-family: var(--cvus-font-body) !important; + font-size: 9px !important; + font-weight: 600 !important; + letter-spacing: 0.12em !important; + text-transform: uppercase !important; + padding: 3px 8px !important; +} + +/* ── 16. PRODUCT PAGE ────────────────────────────────────── */ +.product__title { + font-family: var(--cvus-font-display) !important; + font-size: clamp(2rem, 4.5vw, 3.6rem) !important; + font-weight: 400 !important; + text-transform: uppercase !important; + letter-spacing: 0.04em !important; + color: var(--cvus-text) !important; + line-height: 0.95 !important; +} +.product__description, .product-description { + color: var(--cvus-text-sub) !important; + line-height: 1.7 !important; + font-weight: 400 !important; +} +.variant-pills .swatch-input__item, .variant-pills__item { + background-color: var(--cvus-surface) !important; + border: 1.5px solid var(--cvus-border-strong) !important; + color: var(--cvus-text) !important; + border-radius: var(--cvus-radius-sm) !important; + transition: border-color 0.2s, box-shadow 0.2s !important; + font-family: var(--cvus-font-body) !important; +} +.variant-pills .swatch-input__item:hover { + border-color: var(--cvus-red) !important; + box-shadow: 0 0 0 3px var(--cvus-red-subtle) !important; +} +.variant-pills input:checked + .swatch-input__item, +.variant-pills .swatch-input__item--active { + background-color: var(--cvus-red) !important; + border-color: var(--cvus-red) !important; + color: #fff !important; + box-shadow: var(--cvus-shadow-red) !important; +} +.quantity__input, .quantity { + background-color: var(--cvus-surface) !important; + border: 1.5px solid var(--cvus-border-strong) !important; + border-radius: var(--cvus-radius-md) !important; + color: var(--cvus-text) !important; +} + +/* ── 17. DIVIDERS ────────────────────────────────────────── */ +hr, .section-header__line { border-color: var(--cvus-border) !important; } + +/* ── 18. UTILITY CLASSES ─────────────────────────────────── */ + +/* Eyebrow label */ +.cvus-eyebrow { + display: inline-flex; + align-items: center; + gap: 10px; + font-family: var(--cvus-font-body); + font-size: 10px; + font-weight: 600; + letter-spacing: 0.26em; + text-transform: uppercase; + color: var(--cvus-red); +} +.cvus-eyebrow::before, .cvus-eyebrow::after { + content: ''; + display: block; + width: 20px; + height: 1px; + background: var(--cvus-red); + opacity: 0.5; +} + +/* Section header pattern */ +.cvus-section-head { + display: flex; + justify-content: space-between; + align-items: flex-end; + padding-bottom: 20px; + border-bottom: 1px solid var(--cvus-border); +} +.cvus-section-title { + font-family: var(--cvus-font-display) !important; + font-size: clamp(1.8rem, 4vw, 3.2rem) !important; + font-weight: 400 !important; + letter-spacing: 0.05em !important; + text-transform: uppercase !important; + color: var(--cvus-text) !important; + line-height: 1 !important; +} +.cvus-see-all { + font-family: var(--cvus-font-body); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.16em; + text-transform: uppercase; + color: var(--cvus-text-sub); + border-bottom: 1px solid var(--cvus-border-strong); + padding-bottom: 2px; + transition: color 0.2s, border-color 0.2s; +} +.cvus-see-all:hover { color: var(--cvus-red); border-color: var(--cvus-red); } + +/* Dark surface box */ +.cvus-box { + background: var(--cvus-surface); + border: 1px solid var(--cvus-border); + border-radius: var(--cvus-radius-lg); + box-shadow: var(--cvus-shadow-sm); + padding: 2rem; +} + +/* ── 19. SPEC / PRODUCT DESCRIPTION STYLES ───────────────── */ +.cvus-spec-list { + list-style: none; + margin: 0 0 1.2rem; + padding: 0; + background: var(--cvus-surface); + border: 1px solid var(--cvus-border); + border-radius: var(--cvus-radius-md); + overflow: hidden; + box-shadow: var(--cvus-shadow-xs); +} +.cvus-spec-list li { + padding: 10px 16px; + border-bottom: 1px solid var(--cvus-border); + font-size: 13px; + font-weight: 400; + color: var(--cvus-text-sub); + display: flex; + gap: 8px; + background: var(--cvus-surface); +} +.cvus-spec-list li:nth-child(even) { background: var(--cvus-bg); } +.cvus-spec-list li:last-child { border-bottom: none; } +.cvus-spec-list li strong { + color: var(--cvus-text); + font-weight: 600; + min-width: 160px; + flex-shrink: 0; + font-size: 11px; + letter-spacing: 0.06em; + text-transform: uppercase; +} + +.cvus-warning { + background: rgba(230, 57, 70, 0.05); + border: 1px solid rgba(230, 57, 70, 0.18); + border-radius: var(--cvus-radius-md); + padding: 12px 16px; + font-size: 12px !important; + font-weight: 400 !important; + color: #C1121F !important; + line-height: 1.6; + margin-top: 1rem; +} + +/* ── 20. ANIMATIONS ──────────────────────────────────────── */ +@keyframes cvus-fade-up { + from { opacity: 0; transform: translateY(22px); } + to { opacity: 1; transform: translateY(0); } +} +@keyframes cvus-fade-in { + from { opacity: 0; } + to { opacity: 1; } +} + +/* ── 21. FOCUS ───────────────────────────────────────────── */ +:focus-visible { + outline: 2px solid var(--cvus-red) !important; + outline-offset: 3px !important; +} + +/* ── 22. MOBILE ──────────────────────────────────────────── */ +@media (max-width: 749px) { + .button, .button--primary { + padding: 13px 24px !important; + font-size: 11px !important; + } +} + +/* ── 23. COLLECTION / SEARCH PAGES ──────────────────────── */ +.collection-hero, .collection__hero { + background: var(--cvus-surface) !important; + border-bottom: 1px solid var(--cvus-border) !important; +} +.collection__title { color: var(--cvus-text) !important; } + +/* ── 24. PREDICTIVE SEARCH ───────────────────────────────── */ +.predictive-search, predictive-search { + background: var(--cvus-surface) !important; + border: 1px solid var(--cvus-border-strong) !important; + box-shadow: var(--cvus-shadow-xl) !important; + border-radius: var(--cvus-radius-md) !important; +} +.predictive-search__item-heading { color: var(--cvus-text) !important; } +.predictive-search__item:hover { background: var(--cvus-bg) !important; } + +/* ── 25. PAGINATION ──────────────────────────────────────── */ +.pagination__item { + background: var(--cvus-surface) !important; + border: 1px solid var(--cvus-border) !important; + border-radius: var(--cvus-radius-sm) !important; + color: var(--cvus-text) !important; + box-shadow: var(--cvus-shadow-xs) !important; +} +.pagination__item--current { + background: var(--cvus-red) !important; + border-color: var(--cvus-red) !important; + color: #fff !important; +} + +/* ── 26. RICH TEXT SECTIONS ──────────────────────────────── */ +.rte h1, .rte h2, .rte h3 { color: var(--cvus-text) !important; } +.rte p { color: var(--cvus-text-sub) !important; } diff --git a/assets/cvus-age-gate.css b/assets/cvus-age-gate.css new file mode 100644 index 00000000000..0d75d71efd8 --- /dev/null +++ b/assets/cvus-age-gate.css @@ -0,0 +1,268 @@ +/* ============================================================ + CloudVaultUS — Age Gate Styles + File: assets/cvus-age-gate.css + ============================================================ */ + +/* Gate hidden by default — JS shows it */ +.cvus-ag { + position: fixed; + inset: 0; + z-index: 99999; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem; + opacity: 0; + visibility: hidden; + transition: opacity 0.35s ease, visibility 0.35s ease; +} + +.cvus-ag.is-visible { + opacity: 1; + visibility: visible; +} + +/* Backdrop */ +.cvus-ag__backdrop { + position: absolute; + inset: 0; + background: rgba(17, 17, 22, 0.88); + backdrop-filter: blur(14px); + -webkit-backdrop-filter: blur(14px); +} + +/* Modal card */ +.cvus-ag__modal { + position: relative; + z-index: 1; + background: #111116; + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 20px; + padding: 3rem 2.5rem; + max-width: 460px; + width: 100%; + text-align: center; + box-shadow: 0 32px 80px rgba(0, 0, 0, 0.7), + 0 0 0 1px rgba(230, 57, 70, 0.1); + animation: cvus-ag-slide-up 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both; +} + +@keyframes cvus-ag-slide-up { + from { opacity: 0; transform: translateY(32px) scale(0.96); } + to { opacity: 1; transform: translateY(0) scale(1); } +} + +/* Brand */ +.cvus-ag__brand { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + margin-bottom: 1.8rem; +} + +.cvus-ag__logo { + font-family: 'Barlow Condensed', sans-serif; + font-size: 1.6rem; + font-weight: 800; + letter-spacing: 0.1em; + text-transform: uppercase; + color: #f4f4f5; +} + +.cvus-ag__tagline { + font-family: 'Inter', sans-serif; + font-size: 0.68rem; + font-weight: 500; + letter-spacing: 0.18em; + text-transform: uppercase; + color: #e63946; +} + +/* Icon */ +.cvus-ag__icon { + width: 64px; + height: 64px; + background: rgba(230, 57, 70, 0.08); + border: 1px solid rgba(230, 57, 70, 0.2); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 1.5rem; + color: #e63946; +} + +/* Heading */ +.cvus-ag__heading { + font-family: 'Barlow Condensed', sans-serif !important; + font-size: 1.8rem !important; + font-weight: 700 !important; + letter-spacing: 0.04em !important; + text-transform: uppercase !important; + color: #f4f4f5 !important; + margin: 0 0 0.8rem !important; +} + +/* Description */ +.cvus-ag__description { + font-family: 'Inter', sans-serif; + font-size: 0.88rem; + line-height: 1.65; + color: #a1a1aa; + margin: 0 0 2rem; +} + +.cvus-ag__description strong { color: #f4f4f5; font-weight: 600; } + +/* Form */ +.cvus-ag__form { display: flex; flex-direction: column; gap: 1rem; } + +.cvus-ag__dob-row { + display: grid; + grid-template-columns: 1fr 1fr 1.4fr; + gap: 0.75rem; +} + +.cvus-ag__field { + display: flex; + flex-direction: column; + gap: 6px; + text-align: left; +} + +.cvus-ag__field label { + font-family: 'Inter', sans-serif !important; + font-size: 0.68rem !important; + font-weight: 600 !important; + letter-spacing: 0.1em !important; + text-transform: uppercase !important; + color: #a1a1aa !important; +} + +.cvus-ag__field select, +.cvus-ag__field input { + background: #18181f !important; + border: 1px solid rgba(255, 255, 255, 0.1) !important; + border-radius: 8px !important; + color: #f4f4f5 !important; + font-family: 'Inter', sans-serif !important; + font-size: 0.95rem !important; + padding: 11px 12px !important; + width: 100%; + transition: border-color 0.2s, box-shadow 0.2s !important; + -webkit-appearance: none; + appearance: none; +} + +.cvus-ag__field select { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23a1a1aa' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important; + background-repeat: no-repeat !important; + background-position: right 12px center !important; + padding-right: 32px !important; +} + +.cvus-ag__field select:focus, +.cvus-ag__field input:focus { + border-color: #e63946 !important; + outline: none !important; + box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.12) !important; +} + +/* Error */ +.cvus-ag__error { + background: rgba(230, 57, 70, 0.1); + border: 1px solid rgba(230, 57, 70, 0.3); + border-radius: 8px; + color: #fca5a5; + font-family: 'Inter', sans-serif; + font-size: 0.82rem; + padding: 10px 14px; + text-align: left; + margin: 0; +} + +/* Remember checkbox */ +.cvus-ag__remember { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + text-align: left; +} + +.cvus-ag__remember input[type="checkbox"] { + width: 16px !important; + height: 16px !important; + min-width: 16px; + padding: 0 !important; + border: 1px solid rgba(255, 255, 255, 0.2) !important; + border-radius: 4px !important; + background: #18181f !important; + accent-color: #e63946; + cursor: pointer; +} + +.cvus-ag__remember span { + font-family: 'Inter', sans-serif; + font-size: 0.8rem; + color: #a1a1aa; +} + +/* Submit button */ +.cvus-ag__submit { + width: 100% !important; + padding: 15px !important; + font-size: 0.85rem !important; + letter-spacing: 0.12em !important; + margin-top: 0.5rem; +} + +/* Decline link */ +.cvus-ag__decline { + display: block; + font-family: 'Inter', sans-serif; + font-size: 0.78rem; + color: #52525b !important; + text-decoration: underline; + text-underline-offset: 3px; + transition: color 0.2s; + padding: 4px 0; +} + +.cvus-ag__decline:hover { color: #a1a1aa !important; } + +/* Legal */ +.cvus-ag__legal { + font-family: 'Inter', sans-serif; + font-size: 0.72rem; + color: #3f3f46; + line-height: 1.6; + margin: 1.2rem 0 0; + border-top: 1px solid rgba(255, 255, 255, 0.05); + padding-top: 1.2rem; +} + +.cvus-ag__legal a { + color: #52525b !important; + text-decoration: underline; + text-underline-offset: 2px; +} + +.cvus-ag__legal a:hover { color: #e63946 !important; } + +/* Mobile */ +@media (max-width: 480px) { + .cvus-ag__modal { + padding: 2.2rem 1.5rem; + border-radius: 16px; + } + + .cvus-ag__dob-row { + grid-template-columns: 1fr 1fr; + } + + .cvus-ag__field:last-child { + grid-column: 1 / -1; + } +} diff --git a/assets/cvus-age-gate.js b/assets/cvus-age-gate.js new file mode 100644 index 00000000000..30a59a297e2 --- /dev/null +++ b/assets/cvus-age-gate.js @@ -0,0 +1,188 @@ +/** + * CloudVaultUS — Age Gate Controller + * File: assets/cvus-age-gate.js + * + * Logic: + * - Shows a 21+ DOB modal on first visit + * - Validates month/day/year → calculates exact age + * - Stores verification in localStorage (30 days default, or session-only) + * - Locks body scroll while gate is open + * - Traps keyboard focus inside modal (accessibility) + */ + +(function () { + 'use strict'; + + /* ── CONFIG ─────────────────────────────────────────────── */ + const STORAGE_KEY = 'cvus_age_verified'; + const DEFAULT_DAYS = 30; // How long to remember verification + const MIN_AGE = 21; // Minimum age in years + + /* ── ELEMENTS ────────────────────────────────────────────── */ + const gate = document.getElementById('cvus-age-gate'); + const form = document.getElementById('cvus-ag-form'); + const errorEl = document.getElementById('cvus-ag-error'); + const monthEl = document.getElementById('cvus-ag-month'); + const dayEl = document.getElementById('cvus-ag-day'); + const yearEl = document.getElementById('cvus-ag-year'); + const remEl = document.getElementById('cvus-ag-remember'); + + if (!gate || !form) return; // Guard: elements must exist + + /* ── HELPERS ─────────────────────────────────────────────── */ + function isVerified() { + try { + const raw = localStorage.getItem(STORAGE_KEY); + if (!raw) return false; + const { expires } = JSON.parse(raw); + return Date.now() < expires; + } catch { + return false; + } + } + + function storeVerification(remember) { + const days = remember ? DEFAULT_DAYS : 0; + const expires = days > 0 + ? Date.now() + days * 24 * 60 * 60 * 1000 + : Date.now() + 30 * 60 * 1000; // session: 30 min + try { + localStorage.setItem(STORAGE_KEY, JSON.stringify({ verified: true, expires })); + } catch { + // localStorage blocked (private mode) — allow anyway + } + } + + function calculateAge(month, day, year) { + const today = new Date(); + const birth = new Date(year, month - 1, day); + if (isNaN(birth.getTime())) return -1; + + let age = today.getFullYear() - birth.getFullYear(); + const monthDiff = today.getMonth() - birth.getMonth(); + if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) { + age--; + } + return age; + } + + function showError(msg) { + errorEl.textContent = msg; + errorEl.hidden = false; + errorEl.setAttribute('role', 'alert'); + } + + function clearError() { + errorEl.hidden = true; + errorEl.removeAttribute('role'); + } + + /* ── GATE OPEN / CLOSE ───────────────────────────────────── */ + function openGate() { + gate.setAttribute('aria-hidden', 'false'); + gate.classList.add('is-visible'); + document.body.style.overflow = 'hidden'; + // Focus first interactive element + setTimeout(() => monthEl && monthEl.focus(), 100); + trapFocus(gate); + } + + function closeGate() { + gate.classList.remove('is-visible'); + gate.setAttribute('aria-hidden', 'true'); + document.body.style.overflow = ''; + removeFocusTrap(); + } + + /* ── FOCUS TRAP (accessibility) ──────────────────────────── */ + let _focusHandler = null; + + function trapFocus(container) { + const focusable = container.querySelectorAll( + 'a[href], button:not([disabled]), input, select, textarea, [tabindex]:not([tabindex="-1"])' + ); + const first = focusable[0]; + const last = focusable[focusable.length - 1]; + + _focusHandler = function (e) { + if (e.key !== 'Tab') return; + if (e.shiftKey) { + if (document.activeElement === first) { e.preventDefault(); last.focus(); } + } else { + if (document.activeElement === last) { e.preventDefault(); first.focus(); } + } + }; + + document.addEventListener('keydown', _focusHandler); + } + + function removeFocusTrap() { + if (_focusHandler) { + document.removeEventListener('keydown', _focusHandler); + _focusHandler = null; + } + } + + /* ── FORM SUBMIT ─────────────────────────────────────────── */ + form.addEventListener('submit', function (e) { + e.preventDefault(); + clearError(); + + const month = parseInt(monthEl.value, 10); + const day = parseInt(dayEl.value, 10); + const year = parseInt(yearEl.value, 10); + + // Basic completeness check + if (!month || !day || !year || year < 1900 || year > new Date().getFullYear()) { + showError('Please enter a valid date of birth.'); + return; + } + + if (day < 1 || day > 31) { + showError('Please enter a valid day (1–31).'); + return; + } + + const age = calculateAge(month, day, year); + + if (age < 0) { + showError('The date you entered is not valid. Please check and try again.'); + return; + } + + if (age < MIN_AGE) { + // Redirect to a neutral page — do not allow access + window.location.href = 'https://www.google.com'; + return; + } + + // ✅ Age verified + storeVerification(remEl && remEl.checked); + closeGate(); + }); + + /* ── KEYBOARD ESCAPE ─────────────────────────────────────── */ + document.addEventListener('keydown', function (e) { + // Pressing Escape does NOT close the gate — intentional for compliance + // Users must verify or click "Exit" + }); + + /* ── INIT ────────────────────────────────────────────────── */ + function init() { + if (isVerified()) { + // Already verified — keep gate hidden + gate.remove(); // Remove from DOM entirely for clean page + return; + } + // Not verified — show gate after tiny delay for page paint + requestAnimationFrame(() => setTimeout(openGate, 150)); + } + + // Run on DOM ready + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } + +})(); diff --git a/assets/cvus-banner.png b/assets/cvus-banner.png new file mode 100644 index 00000000000..848987d786c Binary files /dev/null and b/assets/cvus-banner.png differ diff --git a/assets/cvus-hero-pulse.png b/assets/cvus-hero-pulse.png new file mode 100644 index 00000000000..92e261e27c1 Binary files /dev/null and b/assets/cvus-hero-pulse.png differ diff --git a/assets/cvus-order-notification-email.html b/assets/cvus-order-notification-email.html new file mode 100644 index 00000000000..bb8ec1ff643 --- /dev/null +++ b/assets/cvus-order-notification-email.html @@ -0,0 +1,281 @@ + + + +
+ + +' + 'WARNING: This product contains nicotine, which is an ' + 'addictive chemical. Not for sale to persons under 21.
' + ) if warning else "" + return ( + f'WARNING: This product contains nicotine, which is an addictive chemical. Not for sale to persons under 21.
","Geek Bar","Health & Beauty > Health Care > Medical Supplies & Equipment","Disposable Vape","geek-bar,pulse,disposable,15000-puffs,dual-mesh,nicotine","TRUE","Flavor","Strawberry Kiwi","","","","","GBP-SK","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulse/20251105/2.png","1","Geek Bar Pulse 15000 Puffs - Strawberry Kiwi","FALSE","Geek Bar Pulse 15000 Puffs | CloudVaultUS","Shop Geek Bar Pulse 15000 disposable vape. Full screen display, dual mesh coil, 5% nicotine. Multiple flavors available.","","","","","","","","","","lb","","","active" +"geek-bar-pulse","","","","","","","","Flavor","Raspberry Watermelon","","","","","GBP-RW","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulse/20251105/3.png","2","Geek Bar Pulse 15000 Puffs - Raspberry Watermelon","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse","","","","","","","","Flavor","Watermelon Ice","","","","","GBP-WI","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulse/20251105/4.png","3","Geek Bar Pulse 15000 Puffs - Watermelon Ice","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse","","","","","","","","Flavor","Banana Ice","","","","","GBP-BI","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulse/20251105/5.png","4","Geek Bar Pulse 15000 Puffs - Banana Ice","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse","","","","","","","","Flavor","Peach Lemonade","","","","","GBP-PL","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulse/20251105/6.png","5","Geek Bar Pulse 15000 Puffs - Peach Lemonade","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse","","","","","","","","Flavor","Punch","","","","","GBP-PU","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulse/20251105/1.png","6","Geek Bar Pulse 15000 Puffs - Punch","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse","","","","","","","","Flavor","Blue Razz Ice","","","","","GBP-BRI","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/uploads/image/editor/202407291905459806_650X650.png","7","Geek Bar Pulse 15000 Puffs - Blue Razz Ice","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse","","","","","","","","Flavor","Miami Mint","","","","","GBP-MM","0","shopify","50","deny","manual","19.99","","TRUE","TRUE","","https://oss.geekbar.com/products/meloso-ultra/3/Miami%20Mint.png","8","Geek Bar Pulse 15000 Puffs - Miami Mint","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","Geek Bar Pulse X 25000 Puffs","WARNING: This product contains nicotine, which is an addictive chemical. Not for sale to persons under 21.
","Geek Bar","Health & Beauty > Health Care > Medical Supplies & Equipment","Disposable Vape","geek-bar,pulse-x,disposable,25000-puffs,dual-mesh,ai-power,quick-charge,nicotine","TRUE","Flavor","Watermelon Ice","","","","","GBPX-WI","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulsex/20251105/1.png","1","Geek Bar Pulse X 25000 Puffs - Watermelon Ice","FALSE","Geek Bar Pulse X 25000 Puffs | CloudVaultUS","Shop Geek Bar Pulse X 25000 disposable vape. 3D curved screen, AI power adjustment, quick charge. 5% nicotine.","","","","","","","","","","lb","","","active" +"geek-bar-pulse-x","","","","","","","","Flavor","Blue Razz Ice","","","","","GBPX-BRI","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulsex/20251105/2.png","2","Geek Bar Pulse X 25000 Puffs - Blue Razz Ice","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","","","","","","","","Flavor","Miami Mint","","","","","GBPX-MM","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulsex/20251105/3.png","3","Geek Bar Pulse X 25000 Puffs - Miami Mint","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","","","","","","","","Flavor","Strawberry B-Pop","","","","","GBPX-SBP","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulsex/20251105/4.png","4","Geek Bar Pulse X 25000 Puffs - Strawberry B-Pop","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","","","","","","","","Flavor","Sour Apple Ice","","","","","GBPX-SAI","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulsex/20251105/5.png","5","Geek Bar Pulse X 25000 Puffs - Sour Apple Ice","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","","","","","","","","Flavor","Blackberry Blueberry","","","","","GBPX-BB","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/products/pulsex/20251105/6.png","6","Geek Bar Pulse X 25000 Puffs - Blackberry Blueberry","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","","","","","","","","Flavor","Blue Rancher","","","","","GBPX-BR","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/product/BlueRancher.png","7","Geek Bar Pulse X 25000 Puffs - Blue Rancher","","","","","","","","","","","","","lb","","","" +"geek-bar-pulse-x","","","","","","","","Flavor","Raspberry Peach Lime","","","","","GBPX-RPL","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","https://oss.geekbar.com/product/RaspberryPeachLime.png","8","Geek Bar Pulse X 25000 Puffs - Raspberry Peach Lime","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","Lost Mary MT35000 Turbo 35000 Puffs","WARNING: This product contains nicotine, which is an addictive chemical. Not for sale to persons under 21.
","Lost Mary","Health & Beauty > Health Care > Medical Supplies & Equipment","Disposable Vape","lost-mary,mt35000,turbo,disposable,35000-puffs,dual-mesh,dual-mode,nicotine","TRUE","Flavor","Watermelon","","","","","LM-WP","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","1","","FALSE","Lost Mary MT35000 Turbo 35000 Puffs | CloudVaultUS","Shop Lost Mary MT35000 Turbo. 35000 puffs in smooth mode, 18ml e-liquid, 1000mAh battery, USB-C charging. 5% nicotine.","","","","","","","","","","lb","","","active" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Strawberry Kiwi","","","","","LM-SKP","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","2","","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Blue Razz Ice","","","","","LM-BRI","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","3","","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Tigers Blood","","","","","LM-TB","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","4","","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Pink Lemonade","","","","","LM-PLP","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","5","","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Miami Mint","","","","","LM-MM","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","6","","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Black Mint","","","","","LM-BMP","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","7","","","","","","","","","","","","","","lb","","","" +"lost-mary-mt35000-turbo","","","","","","","","Flavor","Strawberry","","","","","LM-SP","0","shopify","50","deny","manual","24.99","","TRUE","TRUE","","","8","","","","","","","","","","","","","","lb","","","" diff --git a/config/settings_data.json b/config/settings_data.json index 0f7a06db992..229b52604c6 100644 --- a/config/settings_data.json +++ b/config/settings_data.json @@ -8,73 +8,73 @@ "settings": { "background": "#FFFFFF", "background_gradient": "", - "text": "#121212", - "button": "#121212", + "text": "#111116", + "button": "#e63946", "button_label": "#FFFFFF", - "secondary_button_label": "#121212", - "shadow": "#121212" + "secondary_button_label": "#111116", + "shadow": "#111116" } }, "scheme-2": { "settings": { - "background": "#F3F3F3", + "background": "#f5f5f7", "background_gradient": "", - "text": "#121212", - "button": "#121212", - "button_label": "#F3F3F3", - "secondary_button_label": "#121212", - "shadow": "#121212" + "text": "#111116", + "button": "#e63946", + "button_label": "#FFFFFF", + "secondary_button_label": "#111116", + "shadow": "#111116" } }, "scheme-3": { "settings": { - "background": "#242833", + "background": "#0e0e12", "background_gradient": "", - "text": "#FFFFFF", - "button": "#FFFFFF", - "button_label": "#000000", - "secondary_button_label": "#FFFFFF", - "shadow": "#121212" + "text": "#f4f4f5", + "button": "#e63946", + "button_label": "#FFFFFF", + "secondary_button_label": "#f4f4f5", + "shadow": "#000000" } }, "scheme-4": { "settings": { - "background": "#121212", + "background": "#e63946", "background_gradient": "", "text": "#FFFFFF", "button": "#FFFFFF", - "button_label": "#121212", + "button_label": "#e63946", "secondary_button_label": "#FFFFFF", - "shadow": "#121212" + "shadow": "#c1121f" } }, "scheme-5": { "settings": { - "background": "#334FB4", + "background": "#18181f", "background_gradient": "", - "text": "#FFFFFF", - "button": "#FFFFFF", - "button_label": "#334FB4", - "secondary_button_label": "#FFFFFF", - "shadow": "#121212" + "text": "#f4f4f5", + "button": "#e63946", + "button_label": "#FFFFFF", + "secondary_button_label": "#f4f4f5", + "shadow": "#000000" } } }, "type_header_font": "assistant_n4", - "heading_scale": 100, + "heading_scale": 120, "type_body_font": "assistant_n4", "body_scale": 100, "page_width": 1200, - "spacing_sections": 0, - "spacing_grid_horizontal": 8, - "spacing_grid_vertical": 8, - "buttons_border_thickness": 1, - "buttons_border_opacity": 100, - "buttons_radius": 0, - "buttons_shadow_opacity": 0, + "spacing_sections": 36, + "spacing_grid_horizontal": 20, + "spacing_grid_vertical": 20, + "buttons_border_thickness": 0, + "buttons_border_opacity": 0, + "buttons_radius": 8, + "buttons_shadow_opacity": 10, "buttons_shadow_horizontal_offset": 0, "buttons_shadow_vertical_offset": 4, - "buttons_shadow_blur": 5, + "buttons_shadow_blur": 15, "variant_pills_border_thickness": 1, "variant_pills_border_opacity": 55, "variant_pills_radius": 40, @@ -83,8 +83,8 @@ "variant_pills_shadow_vertical_offset": 4, "variant_pills_shadow_blur": 5, "inputs_border_thickness": 1, - "inputs_border_opacity": 55, - "inputs_radius": 0, + "inputs_border_opacity": 20, + "inputs_radius": 8, "inputs_shadow_opacity": 0, "inputs_shadow_horizontal_offset": 0, "inputs_shadow_vertical_offset": 4, @@ -92,25 +92,25 @@ "card_style": "standard", "card_image_padding": 0, "card_text_alignment": "left", - "card_color_scheme": "scheme-2", - "card_border_thickness": 0, + "card_color_scheme": "scheme-1", + "card_border_thickness": 1, "card_border_opacity": 10, - "card_corner_radius": 0, - "card_shadow_opacity": 0, + "card_corner_radius": 14, + "card_shadow_opacity": 10, "card_shadow_horizontal_offset": 0, - "card_shadow_vertical_offset": 4, - "card_shadow_blur": 5, + "card_shadow_vertical_offset": 8, + "card_shadow_blur": 20, "collection_card_style": "standard", "collection_card_image_padding": 0, "collection_card_text_alignment": "left", - "collection_card_color_scheme": "scheme-2", - "collection_card_border_thickness": 0, + "collection_card_color_scheme": "scheme-1", + "collection_card_border_thickness": 1, "collection_card_border_opacity": 10, - "collection_card_corner_radius": 0, - "collection_card_shadow_opacity": 0, + "collection_card_corner_radius": 14, + "collection_card_shadow_opacity": 10, "collection_card_shadow_horizontal_offset": 0, - "collection_card_shadow_vertical_offset": 4, - "collection_card_shadow_blur": 5, + "collection_card_shadow_vertical_offset": 8, + "collection_card_shadow_blur": 20, "blog_card_style": "standard", "blog_card_image_padding": 0, "blog_card_text_alignment": "left", @@ -129,13 +129,13 @@ "text_boxes_shadow_horizontal_offset": 0, "text_boxes_shadow_vertical_offset": 4, "text_boxes_shadow_blur": 5, - "media_border_thickness": 1, - "media_border_opacity": 5, - "media_radius": 0, - "media_shadow_opacity": 0, + "media_border_thickness": 0, + "media_border_opacity": 0, + "media_radius": 12, + "media_shadow_opacity": 5, "media_shadow_horizontal_offset": 0, "media_shadow_vertical_offset": 4, - "media_shadow_blur": 5, + "media_shadow_blur": 10, "popup_border_thickness": 1, "popup_border_opacity": 10, "popup_corner_radius": 0, @@ -150,8 +150,8 @@ "drawer_shadow_vertical_offset": 4, "drawer_shadow_blur": 5, "badge_position": "bottom left", - "badge_corner_radius": 40, - "sale_badge_color_scheme": "scheme-5", + "badge_corner_radius": 6, + "sale_badge_color_scheme": "scheme-4", "sold_out_badge_color_scheme": "scheme-3", "social_twitter_link": "", "social_facebook_link": "", @@ -166,7 +166,7 @@ "predictive_search_show_vendor": false, "predictive_search_show_price": false, "currency_code_enabled": true, - "cart_type": "notification", + "cart_type": "drawer", "show_vendor": false, "show_cart_note": false, "cart_drawer_collection": "", @@ -186,4 +186,4 @@ } } } -} +} \ No newline at end of file diff --git a/layout/theme.liquid b/layout/theme.liquid index 70db635823b..d1713eaf3d8 100644 --- a/layout/theme.liquid +++ b/layout/theme.liquid @@ -15,6 +15,11 @@ {%- endunless -%} + {{- '' }} + + + +