/* The existing DOM classes and event hooks remain the source of behavior. */
.boutique a { color: inherit; }
.boutique button, .boutique input, .boutique select, .boutique textarea { font-family: var(--bt-sans); }
.boutique :is(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--bt-pink); outline-offset: 4px; }
.boutique p { font-size: 16px; line-height: 1.7; color: var(--bt-muted); }
.boutique :is(h1, h2, h3, h4) { display: block; font-family: var(--bt-serif); color: var(--bt-plum); font-weight: 500; text-transform: none; letter-spacing: -.025em; }
.boutique h1 { font-size: clamp(38px, 4.5vw, 64px); line-height: 1.08; }
.boutique h2 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.15; }
.boutique h3 { font-size: 28px; line-height: 1.2; }
.boutique h1::after, .boutique h2::after, .boutique .section-title-border::after { display: none; }
.boutique .container, .boutique .most-popular, .boutique .page-about, .boutique .page-default, .boutique .page-category, .boutique .page-product-card {
  max-width: var(--bt-width); width: 100%; margin-inline: auto; padding-inline: var(--bt-gutter);
}
/* CMS sections may contain their own containers; only the outer shell supplies gutters. */
.boutique :is(.container, .most-popular, .page-about, .page-category, .page-default, .page-product-card) :is(.container, .most-popular) {
  width: 100%; max-width: none; margin-inline: 0; padding-inline: 0;
}
.boutique .breadcrumbs { padding-block: 16px; margin-bottom: 18px; font-size: 12px; color: var(--bt-muted); }
.boutique .breadcrumbs a { text-decoration: none; }
.boutique .content-block > .container > h1 { margin-top: 36px; }

/* Shared navigation, selectors and mini-cart. */
.boutique header { border-bottom: 1px solid var(--bt-line); background: var(--bt-paper); }
.boutique header .header-wrapper { max-width: var(--bt-width); padding-inline: var(--bt-gutter); }
.boutique header .header-top { min-height: 84px; padding-block: 16px; }
.boutique header .header-logo img { object-fit: contain; }
.boutique header .header-bottom { background: var(--bt-paper); border-top: 1px solid var(--bt-line); }
.boutique header .header-menu { flex-wrap: wrap; }
.boutique header .header-menu-item__title { color: var(--bt-plum); font-size: 12px; font-weight: 500; letter-spacing: .12em; padding: 16px 22px; }
.boutique header .selected-item .header-menu-item__title { bottom: 0; color: var(--bt-pink); }
.boutique header .header-menu-item__title::after { display: none; }
.boutique header .header-submenu { top: 100%; border: 1px solid var(--bt-line); box-shadow: 0 24px 32px -28px var(--bt-plum); }
.boutique header .header-menu-item:focus-within > .header-submenu { display: flex; }
.boutique header .header-submenu-title { font: 500 24px/1.2 var(--bt-serif); }
.boutique header .header-submenu-item, .boutique header .header-mobile-submenu-item { line-height: 1.5; padding-block: 8px; }
.boutique header .header-selector__selected { border-color: var(--bt-line); min-height: 44px; }
.boutique .custom-select-options { max-height: min(360px, 60vh); overflow-y: auto; border-color: var(--bt-line); }
.boutique .custom-select-options__item { min-height: 44px; }
.boutique header .header-search-form__input { border-color: var(--bt-line); }
.boutique header .header-mini-cart-wrapper { width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 100px); overflow-y: auto; border: 1px solid var(--bt-line); box-shadow: 0 18px 60px -36px var(--bt-plum); }
.boutique header .header-mini-cart-wrapper:not(.show) { visibility: hidden; pointer-events: none; }
.boutique header .header-mini-cart__title { font: 500 34px/1.2 var(--bt-serif); }
.boutique header .header-mini-cart-item__img { object-fit: contain; background: var(--bt-surface); }
.boutique header .header-mini-cart-item__info { min-width: 0; }
.boutique header .header-mini-cart-item__price { font-weight: 500; font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; }
.boutique header .header-mini-cart__btn:last-of-type { background: var(--bt-pink); border-color: var(--bt-pink); min-height: 48px; }

/* Editorial hero; CMS labels and original imagery are supplied by the component. */
.boutique .boutique-hero { max-width: var(--bt-width); padding: 32px var(--bt-gutter) 0; margin: 0 auto 72px; }
.boutique .boutique-hero__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 7%; align-items: center; }
.boutique .boutique-hero__copy { padding-block: 48px; min-width: 0; }
.boutique .boutique-hero__title { font-size: clamp(48px, 6.3vw, 92px); line-height: .99; font-weight: 400; margin-bottom: 28px; }
.boutique .boutique-hero__subtitle { color: var(--bt-muted); font-size: 18px; line-height: 1.6; max-width: 440px; }
.boutique .boutique-hero__image { min-width: 0; background: var(--bt-surface); }
.boutique .boutique-hero__image img { display: block; width: 100%; height: 100%; min-height: 460px; max-height: 640px; object-fit: cover; }
.boutique .banner-block .features, .boutique .category .features { background: transparent; border-block: 1px solid var(--bt-line); padding-block: 24px; margin-top: 48px; }
.boutique .banner-block .features-item { border: 0; border-inline-end: 1px solid var(--bt-line); }
.boutique .banner-block .features-item:last-child { border: 0; }
.boutique .banner-block .features-item__title, .boutique .category .features-item__title { font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--bt-plum); }

/* Product cards: a shared Blade partial for both grid sizes and AJAX updates. */
.boutique .grid:not(.owl-carousel) { gap: 36px 24px; justify-content: flex-start; }
.boutique .grid:not(.owl-carousel).grid-col-3 > .grid-item { width: calc((100% - 48px) / 3); }
.boutique .grid:not(.owl-carousel).grid-col-4 > .grid-item { width: calc((100% - 72px) / 4); }
.boutique .grid-item, .boutique .grid-item:hover { filter: none; margin-bottom: 0; min-width: 0; }
.boutique .flower-product { height: 100%; }
.boutique .flower-product .flower-product__img-wrap { height: auto; aspect-ratio: 1; background: var(--bt-surface); }
.boutique .flower-product .flower-product__img-wrap img { width: 100%; height: 100%; min-height: 0; object-fit: contain; padding: 8%; margin: 0; mix-blend-mode: multiply; }
.boutique .flower-product .flower-product-bottom { align-items: flex-start; padding: 18px 0 0; gap: 10px; height: auto; border: 0; background: transparent; }
.boutique .flower-product .flower-product__name { font: 500 26px/1.12 var(--bt-serif); text-align: start; min-height: 0; margin: 0; }
.boutique .flower-product__rating { justify-content: flex-start; margin: 0; gap: 4px; }
.boutique .flower-product__stars { display: flex; align-items: center; }
.boutique .flower-product__stars img, .boutique .flower-product__stars img:hover { width: 14px; height: 14px; margin-inline: 0 2px; }
.boutique .flower-product__rating-value, .boutique .flower-product__rating-count { font: 400 12px/1.4 var(--bt-sans); }
.boutique .flower-product .flower-product__price-wrapper { flex-wrap: wrap; margin: auto 0 0; gap: 4px 12px; }
.boutique .flower-product .flower-product__price { color: var(--bt-plum); font-size: 16px; }
.boutique .flower-product .flower-product__old-price { font-size: 13px; }
.boutique .flower-product :is(.flower-product__price, .flower-product__old-price) { direction: ltr; unicode-bidi: isolate; white-space: nowrap; font-variant-numeric: tabular-nums; }
.boutique .flower-product .flower-product__btn { background: var(--bt-plum); padding: 14px 10px; font-size: 11px; letter-spacing: .1em; min-height: 46px; margin-top: 4px; }
.boutique .flower-product button.flower-product__btn:hover { background: var(--bt-pink); }
.boutique .product-favourite-wrap { inset-inline-end: 12px; top: 12px; }
.boutique .product-favourite-btn { display: grid; place-items: center; width: 44px; height: 44px; background: white; border-radius: 50%; }
.boutique .product-favourite-heart { width: 22px; height: 22px; stroke-width: 1.5; }
.boutique .grid-show-more { color: var(--bt-plum); border-color: var(--bt-plum); padding: 14px 20px; margin-top: 40px; }

/* Category and long-form content. */
.boutique .category .category__banner { min-height: 260px; overflow: hidden; margin-bottom: 32px; }
.boutique .category .category__banner-img { object-fit: cover; width: 100%; height: 100%; }
.boutique .category .category__banner .category__title { background: rgba(255,255,255,.91); color: var(--bt-plum); padding: 28px; max-width: 75%; font: 500 clamp(32px, 4vw, 56px)/1.1 var(--bt-serif); }
.boutique .category .features { margin-block: 28px; }
.boutique .category-category__text { line-height: 1.7; }
.boutique .category .grid { margin-top: 32px; }
.boutique .custom-list { min-height: 44px; font-size: 14px; }
.boutique .page-about > .content-block { max-width: 780px; margin: 40px auto 80px; }
.boutique .page-about .content-block :is(p, li), .boutique .category > .content-block :is(p, li) { line-height: 1.8; }
.boutique .page-about .content-block h2 { margin-top: 36px; margin-bottom: 18px; }
.boutique .page-about .content-block h1 { margin-bottom: 32px; }
.boutique .contacts-form :is(input, textarea) { min-height: 48px; padding: 12px; border: 1px solid var(--bt-line); }

/* Product and basket surfaces retain every field and Cart handler. */
.boutique .product-card .product { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(24px,5vw,72px); }
.boutique .product-card .product-content { width: auto; min-width: 0; margin: 0; }
.boutique .product-card .product-image-wrap, .boutique .product-card .product-carousel-wrap { width: 100%; min-width: 0; max-height: none; align-self: start; background: var(--bt-surface); }
.boutique .product-card .product-image-wrap img { height: auto; max-height: 740px; object-fit: contain; }
.boutique .product-card .product__name { font: 500 clamp(36px,4vw,58px)/1.08 var(--bt-serif); text-align: start; }
.boutique .product-card .product-block-title { margin-top: 24px; gap: 12px; font-size: 17px; }
.boutique .product-card .product-block-title::before { display: none; }
.boutique .product-card .product-block-title span { background: none; color: var(--bt-pink); font: italic 500 32px/1 var(--bt-serif); width: auto; height: auto; margin: 0; }
.boutique .product-card .product-size-item__label { box-shadow: none; min-height: 60px; border: 1px solid var(--bt-line); gap: 10px; padding-block: 14px; }
.boutique .product-card .product-size-item__input:checked + .product-size-item__label { background: #fdf5f8; border-color: var(--bt-pink); }
.boutique .product-card .product-size-item__price-wrap { flex-wrap: wrap; row-gap: 4px; }
.boutique .product-card :is(.product-size-item__price, .product-size-item__old-price) { font-size: 14px; white-space: nowrap; direction: ltr; unicode-bidi: isolate; }
.boutique .product-card .product-size-item__name { min-width: 0; line-height: 1.4; }
.boutique .product-card .extra-slider-item { box-shadow: none; background: var(--bt-surface); }
.boutique .product-card .product-info-block__input { background-color: white; border: 1px solid var(--bt-line); min-height: 48px; }
.boutique .product-card .product__btn { min-height: 52px; font: 500 12px/1.4 var(--bt-sans); letter-spacing: .1em; background: var(--bt-pink); }
.boutique .product-card .tabs { border-bottom: 1px solid var(--bt-line); }
.boutique .product-card .tabs__item { background: none; padding-inline: 0; border: 0; border-bottom: 2px solid transparent; min-height: 48px; }
.boutique .product-card .tabs__item.selected-item { color: var(--bt-plum); border-bottom-color: var(--bt-pink); }
.boutique .page-cart .cart { max-width: var(--bt-width); padding-inline: var(--bt-gutter); gap: 48px; margin: 48px auto 80px; }
.boutique .page-cart .cart__title { font: 500 38px/1.1 var(--bt-serif); margin-bottom: 28px; }
.boutique .page-cart .cart-products { min-width: 0; }
.boutique .page-cart .cart-products-item { padding-block: 24px; border-bottom: 1px solid var(--bt-line); }
.boutique .page-cart .cart-products-item__img { object-fit: contain; background: var(--bt-surface); }
.boutique .page-cart .cart-products-item__info { min-width: 0; }
.boutique .page-cart .cart-products-item__name { font: 500 24px/1.2 var(--bt-serif); }
.boutique .page-cart .cart-total { background: var(--bt-surface); padding: 28px; align-self: flex-start; }
.boutique .page-cart .cart-total__sum { gap: 20px; font-size: 15px; }
.boutique .page-cart .cart__title .total { display: block; margin-top: 16px; font-size: 26px; }
.boutique .page-cart .cart-total__checkout { background: var(--bt-pink); min-height: 52px; display: grid; place-items: center; }
.boutique .page-cart :is(.total, .sum, .cart-products-item__price) { direction: ltr; unicode-bidi: isolate; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Footer keeps site-specific contacts, links and payment marks. */
.boutique footer { margin-top: 72px; background: var(--bt-plum); color: white; padding-top: 56px; }
.boutique footer .footer-menu__title { font: 500 12px/1.5 var(--bt-sans); letter-spacing: .12em; margin-bottom: 20px; }
.boutique footer .footer-menu__item { font-size: 14px; line-height: 1.7; }
.boutique footer .footer-menu__item a { display: inline-block; padding-block: 5px; }
.boutique footer .footer-top { padding-bottom: 40px; }
.boutique footer .footer-bottom { border-top: 1px solid #ffffff25; padding-block: 24px; }

@media (max-width: 1000px) {
  .boutique header .header-top { min-height: 68px; padding-block: 10px; }
  .boutique .boutique-hero__title { font-size: clamp(42px,6vw,64px); }
  .boutique .boutique-hero__image img { min-height: 340px; }
  .boutique .product-card .product { grid-template-columns: minmax(0,1fr); }
  .boutique .product-card .product-image-wrap { max-width: 600px; margin-inline: auto; }
  .boutique .page-cart .cart { gap: 24px; }
  .boutique .page-cart .cart-total { padding: 20px; }
}
@media (max-width: 768px) {
  .boutique .boutique-hero { padding-top: 20px; margin-bottom: 40px; }
  .boutique .boutique-hero__layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .boutique .boutique-hero__copy { padding-block: 20px 0; }
  .boutique .boutique-hero__title { font-size: 52px; }
  .boutique .boutique-hero__image img { min-height: 0; height: 340px; }
  .boutique .banner-block .features { margin-top: 28px; }
  .boutique .banner-block .features-item { border: 0; }
  .boutique .grid:not(.owl-carousel) { gap: 28px 16px; }
  .boutique .grid:not(.owl-carousel).grid-col-3 > .grid-item, .boutique .grid:not(.owl-carousel).grid-col-4 > .grid-item { width: calc((100% - 16px) / 2); }
  .boutique .flower-product .flower-product__name { font-size: 23px; }
  .boutique .page-cart .cart { flex-direction: column; margin-block: 28px 48px; }
  .boutique .page-cart .cart-products, .boutique .page-cart .cart-total { width: 100%; }
  .boutique .category .category__banner .category__title { max-width: 90%; padding: 20px; }
  .boutique footer { margin-top: 48px; }
}
@media (max-width: 480px) {
  .boutique header .header-wrapper { padding-inline: 16px; }
  .boutique header .header-left-block { gap: 8px; min-width: 0; }
  .boutique header .header-logo { max-width: 128px; height: 40px; }
  .boutique header .header-burger-menu { margin-inline: 0 10px; }
  .boutique header .header-search { margin-inline: 8px; }
  .boutique header .header-mini-cart-wrapper { inset: 0; width: 100%; height: 100dvh; max-height: none; }
  .boutique .flower-product .flower-product__price { font-size: 14px; }
  .boutique .flower-product .flower-product__btn { font-size: 10px; letter-spacing: .04em; }
  .boutique .product-card .product-size-item__label { align-items: flex-start; }
  .boutique .product-card .product-size-item__price-wrap { flex-direction: column; align-items: flex-end; }
  .boutique .product-card .product-size-item__price { font-size: 13px; }
  .boutique .product-card .product-size-block.two-cols { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .boutique *, .boutique *::before, .boutique *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}
