/**
 * Bloss Official Theme — Main Stylesheet
 * Design tokens and components cloned from bloss.com.sa
 */

:root {
  --background: #fffdf8;
  --foreground: #020202;
  --card: #fffffe;
  --primary: #020202;
  --primary-foreground: #fffdf8;
  --secondary: #f8f4ed;
  --muted: #f4efe6;
  --muted-foreground: #404141;
  --accent: #9a5e01;
  --accent-foreground: #fffdf8;
  --destructive: #e40014;
  --border: #dfd4c4;
  --ring: #9a5e01;
  --brand: #a71680;
  --warm-bg: #faf8f3;
  --warm-border: #dfd4c4;
  --soft-border: #f0e8dc;
  --radius: 0.625rem;
  --font-body: "Outfit", system-ui, sans-serif;
  --font-heading: "Playfair Display", Georgia, serif;
  --font-arabic: "Tajawal", sans-serif;
  --container-max: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; min-height: 100dvh; display: flex; flex-direction: column;
  font-family: var(--font-body); color: var(--foreground); background: var(--background);
  -webkit-font-smoothing: antialiased;
}
.font-heading { font-family: var(--font-heading); }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; }
ul { list-style: none; margin: 0; padding: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.bloss-container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: 1rem; }
@media (min-width: 768px) { .bloss-container { padding-inline: 2rem; } }
.bloss-main { flex: 1; }

/* Top bar */
.bloss-topbar { border-bottom: 1px solid color-mix(in srgb, var(--warm-border) 60%, transparent); background: linear-gradient(to right, var(--warm-bg), var(--secondary), var(--warm-bg)); }
.bloss-topbar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.375rem 0.75rem; font-size: 0.875rem; }
@media (min-width: 768px) { .bloss-topbar__inner { padding: 0.625rem 2rem; } }
.bloss-topbar__left { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.bloss-topbar__promo { display: none; align-items: center; gap: 0.375rem; }
@media (min-width: 768px) { .bloss-topbar__promo { display: flex; } }
.bloss-topbar__promo svg { width: 1.25rem; height: 1.25rem; color: var(--accent); }
.bloss-topbar__app-btn { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.75rem; border-radius: 9999px; background: var(--accent); color: var(--accent-foreground); font-size: 0.75rem; font-weight: 500; }
@media (min-width: 768px) { .bloss-topbar__app-btn { padding: 0.375rem 1rem; font-size: 0.875rem; } }
.bloss-topbar__right { display: flex; align-items: center; gap: 0.375rem; }
.bloss-pill-btn { display: inline-flex; align-items: center; gap: 0.25rem; height: 2rem; padding: 0 0.625rem; border-radius: 9999px; border: 1px solid var(--warm-border); background: color-mix(in srgb, var(--background) 70%, transparent); font-size: 0.6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; }
@media (min-width: 768px) { .bloss-pill-btn { height: 2.5rem; padding: 0 0.875rem; font-size: 0.75rem; } }
.bloss-pill-btn svg { width: 1rem; height: 1rem; }

/* Header */
.bloss-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--background) 95%, transparent); backdrop-filter: blur(8px); }
.bloss-header__inner { display: flex; align-items: center; gap: 0.5rem; padding: 1rem; }
@media (min-width: 768px) { .bloss-header__inner { gap: 1rem; padding: 1rem 2rem; justify-content: space-between; } }
.bloss-header__menu-btn { display: flex; padding: 0.5rem; border-radius: 9999px; border: 1px solid var(--border); }
@media (min-width: 768px) { .bloss-header__menu-btn { display: none; } }
.bloss-logo__wrap { display: inline-flex; aspect-ratio: 1490/397; height: 1.75rem; align-items: center; }
@media (min-width: 768px) { .bloss-logo__wrap { height: 2rem; } }
.bloss-logo__img { height: 100%; width: auto; object-fit: contain; }
.bloss-logo--mobile { display: flex; }
.bloss-logo--desktop { display: none; }
@media (min-width: 768px) { .bloss-logo--mobile { display: none; } .bloss-logo--desktop { display: inline-flex; } }
.bloss-nav { display: none; align-items: center; gap: 2rem; font-size: 0.875rem; color: var(--muted-foreground); }
@media (min-width: 768px) { .bloss-nav { display: flex; } }
.bloss-nav a { display: inline-flex; align-items: center; gap: 0.25rem; }
.bloss-nav a:hover { color: var(--foreground); }
.bloss-nav__chevron { width: 0.875rem; height: 0.875rem; opacity: 0.7; }
.bloss-header__actions { display: flex; flex: 1; justify-content: flex-end; gap: 0.5rem; }
@media (min-width: 768px) { .bloss-header__actions { flex: none; gap: 0.75rem; } }
.bloss-icon-btn { display: flex; padding: 0.5rem; border-radius: 9999px; border: 1px solid var(--border); position: relative; }
.bloss-icon-btn--desktop { display: none; }
@media (min-width: 768px) { .bloss-icon-btn--desktop { display: flex; } }
.bloss-icon-btn svg { width: 1rem; height: 1rem; }
.bloss-cart-count { position: absolute; top: -4px; right: -4px; min-width: 1.125rem; height: 1.125rem; border-radius: 9999px; background: var(--accent); color: var(--accent-foreground); font-size: 0.625rem; font-weight: 600; display: flex; align-items: center; justify-content: center; }

/* Search panel */
.bloss-search-panel { border-bottom: 1px solid var(--border); background: var(--background); padding: 0.75rem 0; }
.bloss-search-panel[hidden] { display: none; }
.bloss-search-form { display: flex; gap: 0.5rem; }
.bloss-search-form input[type="search"] { flex: 1; padding: 0.625rem 1rem; border-radius: 9999px; border: 1px solid var(--border); font: inherit; background: var(--card); }
.bloss-search-form button { padding: 0.625rem 1.25rem; border-radius: 9999px; background: var(--primary); color: var(--primary-foreground); font-size: 0.875rem; font-weight: 500; border: none; }

/* Global SVG clip-path defs */
.bloss-arch-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }

.bloss-category-pills__nav { display: flex; gap: 0.5rem; overflow-x: auto; padding: 0.625rem 1rem; scrollbar-width: none; border-bottom: 1px solid var(--border); }
.bloss-category-pills__nav::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .bloss-category-pills__nav { padding: 0.625rem 2rem; } }
.bloss-category-pills__nav a { flex-shrink: 0; padding: 0.375rem 1rem; border-radius: 9999px; border: 1px solid var(--border); background: var(--card); font-size: 0.875rem; white-space: nowrap; }
.bloss-category-pills__nav a:hover { border-color: var(--accent); background: var(--muted); }

/* Mobile menu */
.bloss-mobile-menu { position: fixed; inset: 0; z-index: 50; visibility: hidden; opacity: 0; transition: visibility .3s, opacity .3s; }
.bloss-mobile-menu.is-open { visibility: visible; opacity: 1; }
.bloss-mobile-menu__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.bloss-mobile-menu__panel { position: absolute; top: 0; left: 0; width: min(320px, 85vw); height: 100%; background: var(--background); padding: 1.5rem; transform: translateX(-100%); transition: transform .3s; overflow-y: auto; }
.bloss-mobile-menu.is-open .bloss-mobile-menu__panel { transform: translateX(0); }
.bloss-mobile-menu__nav { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1.5rem; }
.bloss-mobile-menu__nav a { padding: 0.75rem 0; border-bottom: 1px solid var(--soft-border); }

/* Section heading */
.bloss-section-heading { padding: 1.5rem 0; }
@media (min-width: 768px) { .bloss-section-heading { padding: 2.5rem 0; } }
.bloss-section-heading__inner { display: flex; align-items: center; justify-content: center; gap: 1rem; }
.bloss-section-heading__line { display: none; flex: 1; height: 1px; background: var(--foreground); }
@media (min-width: 768px) { .bloss-section-heading__line { display: block; } }
.bloss-section-heading__diamond { width: 0.5rem; height: 0.5rem; border: 1px solid var(--foreground); transform: rotate(45deg); flex-shrink: 0; }
.bloss-section-heading__title { flex-shrink: 0; font-family: var(--font-heading); font-size: 1.5rem; line-height: 1.25; font-weight: 400; }
@media (min-width: 768px) { .bloss-section-heading__title { font-size: 2rem; text-align: center; } }
.bloss-section-heading__subtitle { margin-top: 0.5rem; text-align: center; font-size: 0.875rem; color: var(--muted-foreground); }

/* Hero */
.bloss-hero { margin: 1rem 1rem 0; border-radius: 2rem; overflow: hidden; }
@media (min-width: 768px) { .bloss-hero { margin: 1rem 2rem 0; } }
.bloss-hero__slide-item { display: none; position: relative; min-height: 70vh; max-height: 640px; }
.bloss-hero__slide-item.is-active { display: block; }
@media (min-width: 768px) { .bloss-hero__slide-item { min-height: 420px; max-height: none; } }
.bloss-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bloss-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(0,0,0,.45), rgba(0,0,0,.15), transparent); }
.bloss-hero__content { position: relative; display: flex; align-items: center; max-width: var(--container-max); margin: 0 auto; min-height: inherit; padding: 3rem 1.5rem; }
.bloss-hero__text { max-width: 26rem; color: #fff; }
.bloss-hero__eyebrow { font-size: 1.125rem; font-weight: 300; text-shadow: 0 1px 4px rgba(0,0,0,.3); }
.bloss-hero__title { margin-top: 1rem; max-width: 18rem; font-size: 1.875rem; font-weight: 300; line-height: 1.2; text-shadow: 0 1px 4px rgba(0,0,0,.3); }
@media (min-width: 768px) { .bloss-hero__title { font-size: 3.35rem; } }
.bloss-hero__cta { display: inline-flex; margin-top: 2rem; padding: 0.75rem 1.5rem; border-radius: 9999px; background: var(--card); color: var(--foreground); font-size: 0.875rem; font-weight: 500; transition: transform .2s; }
.bloss-hero__cta:hover { transform: scale(1.03); }
.bloss-hero__dots { display: flex; align-items: center; gap: 0.25rem; margin-top: 1.5rem; }
.bloss-hero__pause { display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border-radius: 9999px; background: rgba(0,0,0,.35); color: #fff; flex-shrink: 0; }
.bloss-hero__pause:hover { background: rgba(0,0,0,.55); }
.bloss-hero__pause svg { width: 1rem; height: 1rem; }
.bloss-hero__dot { display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border-radius: 9999px; }
.bloss-hero__dot span { display: block; height: 0.5rem; border-radius: 9999px; background: rgba(255,255,255,.6); width: 0.5rem; transition: width .3s, background .3s; }
.bloss-hero__dot.is-active span { width: 2rem; background: #fff; }

/* Category arch */
.bloss-rail { display: flex; gap: 1.25rem; overflow-x: auto; padding-bottom: 0.5rem; scroll-snap-type: x mandatory; scrollbar-width: none; }
.bloss-rail::-webkit-scrollbar { display: none; }
.bloss-category-arch { flex-shrink: 0; min-width: 150px; text-align: center; scroll-snap-align: start; }
.bloss-category-arch__frame { position: relative; margin: 0 auto; width: 150px; height: 210px; filter: drop-shadow(0 12px 24px rgba(2,2,2,.10)); transition: transform .3s; }
@media (min-width: 640px) { .bloss-category-arch { min-width: 168px; } .bloss-category-arch__frame { width: 168px; height: 232px; } }
.bloss-category-arch:hover .bloss-category-arch__frame { transform: translateY(-4px); }
.bloss-arch-clip { clip-path: url(#bloss-arch); -webkit-clip-path: url(#bloss-arch); }
.bloss-category-arch__bg { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--secondary), var(--muted)); }
.bloss-category-arch__img-wrap { position: absolute; inset: 6px; overflow: hidden; }
.bloss-category-arch__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bloss-category-arch:hover .bloss-category-arch__img { transform: scale(1.05); }
.bloss-category-arch__name { margin-top: 0.75rem; font-size: 0.875rem; font-weight: 500; }

/* Product card */
.bloss-card { flex-shrink: 0; min-width: 180px; scroll-snap-align: start; }
@media (min-width: 640px) { .bloss-card { min-width: 220px; } }
@media (min-width: 768px) { .bloss-card { min-width: 260px; } }
.bloss-product-card__link { position: relative; display: block; overflow: hidden; border-radius: 1.25rem; background: var(--card); }
.bloss-product-card__img-wrap { height: 20.3125rem; }
@media (min-width: 640px) { .bloss-product-card__img-wrap { height: 19rem; } }
.bloss-product-card__img { width: 100%; height: 100%; object-fit: cover; }
.bloss-product-card__body { padding: 0.5rem 0.25rem 0; }
.bloss-product-card__tag { display: flex; align-items: center; gap: 0.5rem; font-size: 0.7rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted-foreground); }
.bloss-product-card__tag-star { color: var(--accent); }
.bloss-product-card__price { display: inline-flex; align-items: baseline; gap: 0.25rem; font-size: 0.75rem; color: var(--muted-foreground); }
.bloss-sar-icon { display: inline-block; width: 0.85em; height: 0.85em; }
.bloss-product-card__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; font-size: 0.875rem; font-weight: 500; line-height: 1.3; }

/* Footer */
.bloss-footer { margin-top: auto; border-top: 1px solid var(--border); background: var(--warm-bg); }
.bloss-footer__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; padding: 3rem 0 2rem; }
@media (min-width: 768px) { .bloss-footer__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .bloss-footer__grid { grid-template-columns: repeat(6, 1fr); } }
.bloss-footer__col-title { margin-bottom: 1rem; font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.bloss-footer__links { display: flex; flex-direction: column; gap: 0.5rem; }
.bloss-footer__links a { font-size: 0.875rem; color: var(--muted-foreground); }
.bloss-footer__links a:hover { color: var(--foreground); }
.bloss-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; border-top: 1px solid var(--soft-border); }
.bloss-section { padding-bottom: 2rem; }
.bloss-section--warm { background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--secondary) 45%, transparent), transparent); padding-block: 1rem 1.5rem; }
.bloss-section--alt { background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--secondary) 30%, transparent), transparent); }
.bloss-section__footer-link { padding: 1.5rem 0 0.5rem; text-align: center; }
.bloss-section__footer-link a { font-size: 0.875rem; text-decoration: underline; text-underline-offset: 4px; }
.bloss-section__footer-link--mobile { display: block; }
@media (min-width: 768px) { .bloss-section__footer-link--mobile { display: none; } }

.bloss-product-card__tag-line { width: 1rem; height: 1px; background: var(--soft-border); flex-shrink: 0; }
.bloss-card:hover .bloss-product-card__tag-line { width: 1.5rem; }

/* Occasion cards */
.bloss-occasion-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
@media (min-width: 768px) { .bloss-occasion-grid { display: flex; gap: 1.25rem; overflow-x: auto; scrollbar-width: none; } .bloss-occasion-grid::-webkit-scrollbar { display: none; } }
.bloss-occasion-card { text-align: center; flex-shrink: 0; }
@media (min-width: 768px) { .bloss-occasion-card { width: 220px; } }
.bloss-occasion-card__frame { overflow: hidden; border-radius: 1.5rem; border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent); background: var(--card); box-shadow: 0 4px 6px rgba(0,0,0,.06); aspect-ratio: 4/5; transition: transform .3s, box-shadow .3s; }
.bloss-occasion-card:hover .bloss-occasion-card__frame { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,.1); }
.bloss-occasion-card__frame img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bloss-occasion-card:hover .bloss-occasion-card__frame img { transform: scale(1.05); }
.bloss-occasion-card__name { margin-top: 0.75rem; font-size: 0.875rem; font-weight: 500; display: flex; align-items: center; justify-content: center; gap: 0.5rem; }
.bloss-occasion-card__name span { color: var(--accent); }

/* Story cards */
.bloss-story-grid { display: flex; gap: 0.75rem; overflow-x: auto; padding-bottom: 0.5rem; scrollbar-width: none; }
.bloss-story-grid::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .bloss-story-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; overflow: visible; } }
.bloss-story-card { position: relative; flex-shrink: 0; width: 68vw; max-width: 280px; aspect-ratio: 9/16; overflow: hidden; border-radius: 1.5rem; }
@media (min-width: 768px) { .bloss-story-card { width: auto; max-width: none; } }
.bloss-story-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bloss-story-card:hover .bloss-story-card__img { transform: scale(1.05); }
.bloss-story-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,.3), transparent); }
.bloss-story-card__content { position: absolute; inset-inline: 0; bottom: 0; padding: 1rem 1.25rem; color: #fff; display: flex; flex-direction: column; gap: 0.5rem; }
.bloss-story-card__title { font-size: 1.25rem; line-height: 1.25; text-shadow: 0 1px 4px rgba(0,0,0,.3); }
@media (min-width: 768px) { .bloss-story-card__title { font-size: 1.5rem; } }
.bloss-story-card__subtitle { font-size: 0.75rem; opacity: 0.85; }
@media (min-width: 768px) { .bloss-story-card__subtitle { font-size: 0.875rem; } }
.bloss-story-card__btn { display: inline-flex; margin-top: 0.5rem; padding: 0.5rem 1rem; border-radius: 9999px; background: #fff; color: #171717; font-size: 0.75rem; font-weight: 500; width: fit-content; opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; }
.bloss-story-card:hover .bloss-story-card__btn { opacity: 1; transform: translateY(0); }
@media (hover: none) { .bloss-story-card__btn { opacity: 1; transform: none; } }

/* Brand grid */
.bloss-brand-grid { display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, auto); gap: 1rem 0.75rem; overflow-x: auto; padding-bottom: 1rem; scrollbar-width: none; }
.bloss-brand-grid::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .bloss-brand-grid { gap: 1.25rem 1rem; } }
.bloss-brand-card { width: 28vw; min-width: 120px; scroll-snap-align: start; }
@media (min-width: 768px) { .bloss-brand-card { width: 180px; } }
.bloss-brand-card__img-wrap { overflow: hidden; border-radius: 1rem; background: var(--card); box-shadow: 0 4px 6px rgba(0,0,0,.06); aspect-ratio: 4/3; transition: box-shadow .3s; }
.bloss-brand-card:hover .bloss-brand-card__img-wrap { box-shadow: 0 12px 24px rgba(0,0,0,.1); }
.bloss-brand-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.bloss-brand-card__name { margin-top: 0.5rem; text-align: center; font-size: 0.75rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 768px) { .bloss-brand-card__name { font-size: 0.875rem; } }

/* Recipients */
.bloss-section--recipients { margin-top: 3rem; }
.bloss-recipient-heading { text-align: center; margin-bottom: 1.25rem; }
.bloss-recipient-heading h2 { font-size: 1.5rem; line-height: 1.25; }
@media (min-width: 768px) { .bloss-recipient-heading h2 { font-size: 2rem; } }
.bloss-recipient-heading p { margin-top: 0.5rem; font-size: 0.875rem; color: var(--muted-foreground); }
.bloss-recipient-card { position: relative; flex-shrink: 0; min-width: 156px; aspect-ratio: 3/4; overflow: hidden; border-radius: 1.25rem; background: var(--secondary); box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: box-shadow .3s; scroll-snap-align: start; }
@media (min-width: 768px) { .bloss-recipient-card { min-width: 176px; } }
.bloss-recipient-card:hover { box-shadow: 0 8px 16px rgba(0,0,0,.08); }
.bloss-recipient-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bloss-recipient-card:hover .bloss-recipient-card__img { transform: scale(1.04); }
.bloss-recipient-card__label { position: absolute; inset-inline: 0; bottom: 0; padding: 2rem 0.75rem 0.625rem; background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,.25), transparent); color: #fff; }
.bloss-recipient-card__label p { font-size: 0.875rem; }
@media (min-width: 768px) { .bloss-recipient-card__label p { font-size: 1rem; } }

/* Partner houses */
.bloss-partner-block { overflow: hidden; border-radius: 2rem; border: 1px solid color-mix(in srgb, var(--warm-border) 60%, transparent); background: linear-gradient(to bottom, color-mix(in srgb, var(--secondary) 70%, transparent), var(--warm-bg), var(--background)); padding: 1.5rem; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
@media (min-width: 768px) { .bloss-partner-block { padding: 2.5rem 3rem; } }
.bloss-partner-block__header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.bloss-partner-block__title { font-size: 1.6rem; line-height: 1.25; }
@media (min-width: 768px) { .bloss-partner-block__title { font-size: 2.15rem; } }
.bloss-partner-block__subtitle { max-width: 28rem; font-size: 0.875rem; color: var(--muted-foreground); margin-top: 0.5rem; }
@media (min-width: 768px) { .bloss-partner-block__subtitle { font-size: 1rem; } }
.bloss-partner-house { margin-top: 2.5rem; padding-top: 2.5rem; border-top: 1px solid color-mix(in srgb, var(--warm-border) 60%, transparent); }
.bloss-partner-house:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }
.bloss-partner-house--featured { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .bloss-partner-house--featured { grid-template-columns: 0.85fr 1.5fr; align-items: center; gap: 2.5rem; } }
.bloss-partner-house__intro { display: flex; flex-direction: column; gap: 1rem; }
.bloss-partner-house__logo { width: 4rem; height: 4rem; overflow: hidden; border-radius: 1rem; border: 1px solid var(--warm-border); background: var(--card); box-shadow: 0 1px 2px rgba(0,0,0,.04); flex-shrink: 0; }
@media (min-width: 768px) { .bloss-partner-house__logo { width: 5rem; height: 5rem; } }
.bloss-partner-house__logo img { width: 100%; height: 100%; object-fit: cover; }
.bloss-partner-house__logo--sm { width: 3rem; height: 3rem; }
@media (min-width: 768px) { .bloss-partner-house__logo--sm { width: 3.5rem; height: 3.5rem; } }
.bloss-partner-house__intro h3, .bloss-partner-house__brand h3 { font-size: 1.5rem; line-height: 1.25; }
@media (min-width: 768px) { .bloss-partner-house__intro h3, .bloss-partner-house__brand h3 { font-size: 1.875rem; } }
.bloss-partner-house__intro p, .bloss-partner-house__brand p { font-size: 0.875rem; color: var(--muted-foreground); margin-top: 0.25rem; }
.bloss-partner-house__row { display: flex; flex-direction: column; gap: 1rem; }
.bloss-partner-house__brand { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; justify-content: space-between; }

/* App CTA */
.bloss-app-cta { display: grid; gap: 2rem; padding: 2rem 0; }
@media (min-width: 768px) { .bloss-app-cta { grid-template-columns: 1fr 1fr; align-items: center; gap: 3rem; padding: 3rem 0; } }
.bloss-app-cta__headline { font-family: var(--font-display, Georgia, serif); font-size: 2rem; line-height: 1.2; max-width: 34rem; }
@media (min-width: 768px) { .bloss-app-cta__headline { font-size: 2.85rem; } }
.bloss-app-cta__sub { margin-top: 1rem; font-size: 1.125rem; color: var(--muted-foreground); }
.bloss-app-cta__features { margin-top: 2rem; display: flex; flex-direction: column; gap: 0.75rem; }
.bloss-app-cta__features > p { font-size: 1.125rem; }
.bloss-app-cta__features div { display: flex; align-items: center; gap: 0.75rem; }
.bloss-app-cta__num { font-size: 1.5rem; color: var(--accent); }
.bloss-app-cta__stores { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.bloss-app-cta__stores img { height: 3rem; width: auto; }
.bloss-app-cta__phones { display: none; position: relative; min-height: 520px; align-items: center; justify-content: center; }
@media (min-width: 768px) { .bloss-app-cta__phones { display: flex; } }
.bloss-app-cta__phone { position: absolute; width: 320px; height: 520px; overflow: hidden; border-radius: 2rem; background: var(--card); box-shadow: 0 25px 50px rgba(0,0,0,.15); }
.bloss-app-cta__phone img { width: 100%; height: 100%; object-fit: cover; }
.bloss-app-cta__phone--1 { transform: translate(76px, 36px) rotate(-6deg) scale(0.9); z-index: 10; }
.bloss-app-cta__phone--2 { transform: translate(38px, 18px) rotate(6deg) scale(0.95); z-index: 11; }
.bloss-app-cta__phone--3 { transform: translate(0, 0) rotate(0deg) scale(1); z-index: 12; }

.bloss-link-arrow { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.875rem; font-weight: 500; color: var(--accent); }
.bloss-link-arrow:hover { gap: 0.5rem; }

.bloss-phase-notice { padding: 2rem; text-align: center; color: var(--muted-foreground); border: 1px dashed var(--border); border-radius: 1rem; margin: 2rem 0; font-size: 0.875rem; }

/* WooCommerce — shop & product pages */
.bloss-shop, .bloss-single-product { padding: 2rem 0 4rem; }
.bloss-shop-header { margin-bottom: 2rem; }
.bloss-breadcrumb { margin-top: 1rem; font-size: 0.8125rem; color: var(--muted-foreground); }
.bloss-breadcrumb--product { margin-bottom: 1.5rem; }
.bloss-breadcrumb__trail a { color: var(--muted-foreground); }
.bloss-breadcrumb__trail a:hover { color: var(--accent); }
.bloss-breadcrumb__sep { margin: 0 0.5rem; opacity: 0.5; }
.bloss-shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--soft-border); font-size: 0.875rem; color: var(--muted-foreground); }
.bloss-shop-toolbar .woocommerce-ordering select { padding: 0.5rem 2rem 0.5rem 0.75rem; border-radius: 9999px; border: 1px solid var(--border); background: var(--card); font: inherit; color: inherit; }
.bloss-shop-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 0.75rem; margin: 0 !important; padding: 0 !important; list-style: none !important; }
@media (min-width: 640px) { .bloss-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem 1rem; } }
@media (min-width: 1024px) { .bloss-shop-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 1.25rem; } }
.bloss-shop-grid__item { margin: 0 !important; width: 100% !important; float: none !important; }
.bloss-shop .woocommerce-pagination { margin-top: 3rem; text-align: center; }
.bloss-shop .woocommerce-pagination ul { display: inline-flex; gap: 0.375rem; padding: 0; margin: 0; list-style: none; }
.bloss-shop .woocommerce-pagination ul li a,
.bloss-shop .woocommerce-pagination ul li span { display: flex; min-width: 2.25rem; height: 2.25rem; align-items: center; justify-content: center; border-radius: 9999px; border: 1px solid var(--border); font-size: 0.875rem; }
.bloss-shop .woocommerce-pagination ul li span.current { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
.bloss-single-product .product { display: grid; gap: 2rem; }
@media (min-width: 768px) { .bloss-single-product .product { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; } }
.bloss-single-product .woocommerce-product-gallery { border-radius: 1.25rem; overflow: hidden; background: var(--card); }
.bloss-single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }
.bloss-single-product .product_title { font-family: var(--font-heading); font-size: 1.75rem; line-height: 1.2; margin: 0 0 0.75rem; }
@media (min-width: 768px) { .bloss-single-product .product_title { font-size: 2.25rem; } }
.bloss-single-product .price { display: inline-flex; align-items: baseline; gap: 0.25rem; font-size: 1.125rem; color: var(--muted-foreground); margin-bottom: 1rem; }
.bloss-single-product .price .amount { font-weight: 500; color: var(--foreground); }
.bloss-single-product .woocommerce-product-details__short-description { font-size: 0.9375rem; line-height: 1.6; color: var(--muted-foreground); margin-bottom: 1.5rem; }
.bloss-single-product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1.5rem; }
.bloss-single-product .quantity .qty { width: 4rem; padding: 0.625rem; border-radius: var(--radius); border: 1px solid var(--border); text-align: center; font: inherit; }
.bloss-single-product .single_add_to_cart_button { padding: 0.75rem 1.75rem; border-radius: 9999px; background: var(--primary); color: var(--primary-foreground); font-size: 0.875rem; font-weight: 500; border: none; cursor: pointer; }
.bloss-single-product .single_add_to_cart_button:hover { opacity: 0.9; }
.bloss-single-product .product_meta { font-size: 0.8125rem; color: var(--muted-foreground); margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--soft-border); }
.bloss-single-product .product_meta a { color: var(--accent); }
.bloss-single-product .related.products { margin-top: 4rem; padding-top: 3rem; border-top: 1px solid var(--soft-border); }
.bloss-single-product .related.products > h2 { text-align: center; font-family: var(--font-heading); font-size: 1.5rem; margin-bottom: 2rem; }
.bloss-cart .woocommerce { max-width: 900px; margin: 0 auto; }
.bloss-cart table.shop_table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.bloss-cart table.shop_table th,
.bloss-cart table.shop_table td { padding: 1rem 0.5rem; border-bottom: 1px solid var(--soft-border); text-align: left; vertical-align: middle; }
.bloss-cart .cart_totals { margin-top: 2rem; padding: 1.5rem; border-radius: 1rem; border: 1px solid var(--soft-border); background: var(--secondary); max-width: 420px; margin-left: auto; }
.bloss-cart .checkout-button, .bloss-cart .button, .woocommerce .button { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; border-radius: 9999px; background: var(--primary); color: var(--primary-foreground) !important; font-size: 0.875rem; font-weight: 500; border: none; }
.bloss-checkout .woocommerce-billing-fields h3,
.bloss-checkout .woocommerce-additional-fields h3 { font-family: var(--font-heading); font-size: 1.25rem; margin-bottom: 1rem; }
.bloss-checkout .form-row input.input-text,
.bloss-checkout .form-row textarea,
.bloss-checkout .form-row select { width: 100%; padding: 0.625rem 0.875rem; border-radius: var(--radius); border: 1px solid var(--border); font: inherit; background: var(--card); }
.bloss-checkout #place_order { width: 100%; padding: 1rem; margin-top: 1rem; border-radius: 9999px; background: var(--accent); color: var(--accent-foreground); font-size: 1rem; font-weight: 500; border: none; cursor: pointer; }

/* Prevent plugin/theme conflicts on Bloss layout */
.bloss-body .elementor-location-header,
.bloss-body .elementor-location-footer { display: none !important; }
.bloss-body .site-main { padding: 0; max-width: none; }
.bloss-body .entry-content > *:not(.bloss-section):not(.bloss-hero):not(.bloss-partner-block) { max-width: var(--container-max); margin-inline: auto; }
