img, video, iframe, svg { max-width: 100%; height: auto; }
button, a, input, select, textarea { min-height: 44px; }
.vg-sticky-cart { display: none; }

@media (max-width: 900px) {
  .vg-hero { grid-template-columns: 1fr; min-height: auto; }
  .vg-grid-3 { grid-template-columns: 1fr; }
  .vg-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vg-package-grid { grid-template-columns: 1fr; }
  .vg-package-card--featured { transform: none; }
  .vg-addon-card, .single-product .vg-addon-card { grid-template-columns: 1fr; }
  .vg-compatibility-grid { grid-template-columns: 1fr; }
  .vg-suitability-callout { align-items: flex-start; flex-direction: column; gap: 6px; }
  .vg-shop-balm-card { grid-template-columns: 1fr; }
  .vg-shop-balm-card__media img { max-height: none; }
  .vg-swatches { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vg-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vg-footer-brand { grid-column: 1 / -1; }
  .single-product .product-entry-wrapper.is-width-constrained { grid-template-columns: minmax(0, 1fr) !important; }
  .single-product .product-entry-wrapper .woocommerce-product-gallery, .single-product .product-entry-wrapper .summary.entry-summary { grid-column: 1 !important; grid-row: auto !important; }
  .single-product .summary.entry-summary { position: static; }
  section.vg-hero > .vg-shell.vg-hero { min-height: auto; padding-block: 64px; }
  .vg-landing .vg-hero h1 { font-size: clamp(42px, 8vw, 64px); }
  .vg-landing section.vg-hero > .vg-shell.vg-hero > .vg-media { order: -1; }
  .vg-landing section.vg-hero > .vg-shell.vg-hero > div { order: 1; }
  .vg-story-split__grid { grid-template-columns: 1fr; }
  .vg-project-grid { grid-template-columns: 1fr; }
  .vg-process-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vg-process-rail article:nth-child(2) { border-right: 0; }
  .vg-process-rail article:nth-child(n+3) { border-top-color: rgba(247,245,241,.18); }
  .vg-inline-offer { align-items: flex-start; flex-direction: column; }
  .vg-inline-offer .vg-product-cta__price { text-align: left; }
  .woocommerce-checkout form.woocommerce-checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; }
  .woocommerce-checkout #order_review_heading { margin: 24px 0 -50px; }
  .vg-article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .single-post .hero-section { width: min(100% - 40px, 920px); grid-template-columns: 1fr; gap: 34px; padding-block: 56px 40px; }
  .single-post .hero-section .entry-header { grid-column: 1; grid-row: 1; width: 100%; max-width: none !important; }
  .single-post .hero-section > figure { grid-column: 1; grid-row: 2; }
  .single-post .entry-header .page-title { font-size: clamp(40px, 7vw, 60px); }
}

@media (min-width: 901px) and (max-width: 1100px) {
  .single-product .product-entry-wrapper.is-width-constrained { gap: 28px; padding-block: 56px; }
  .single-product .product-entry-wrapper .summary.entry-summary { padding: 24px; }
  .single-product .summary .product_title { font-size: 34px; line-height: 1.05; }
  .single-product .summary .price { margin-bottom: 18px; font-size: 25px; }
  .single-product .summary .woocommerce-product-details__short-description { margin-bottom: 20px; font-size: 16px; }
}

@media (min-width: 1101px) {
  .single-product .product-entry-wrapper .summary.entry-summary { padding: 32px; }
  .single-product .summary .product_title { font-size: clamp(36px, 2.8vw, 44px); }
}

@media (max-width: 767px) {
  :root { --vg-gutter: 20px; }
  #woo-cart-panel .ct-panel-inner { width: 100%; max-width: 100vw; border-left: 0; }
  #woo-cart-panel .ct-panel-actions { padding-inline: 20px !important; }
  #woo-cart-panel .ct-panel-content-inner { padding-inline: 20px; }
  #woo-cart-panel .woocommerce-mini-cart__buttons { grid-template-columns: 1fr; }
  .vg-hero { padding-block: 64px; }
  .vg-section { padding-block: 56px; }
  .vg-hero__actions, .vg-actions { align-items: stretch; flex-direction: column; }
  .vg-button, .vg-button.button, .vg-button.wp-block-button__link { width: 100%; }
  .vg-before-after__grid, .vg-case-study-card { grid-template-columns: 1fr; }
  .vg-package-card { min-height: 0; }
  .vg-package-card__actions .vg-button { width: 100%; }
  .vg-landing-includes { grid-template-columns: 1fr; }
  .vg-landing-product-summary__cta { width: 100%; }
  /* Keep the mobile product summary as one readable card. Blocksy's inner
     summary padding plus the purchase form border was creating nested frames
     and shrinking the palette controls on narrow screens. */
  .single-product .product-entry-wrapper .summary.entry-summary { padding: 16px; }
  .single-product .summary.entry-summary > .entry-summary-items { padding: 0; }
  .single-product .summary.entry-summary .vg-purchase-form { padding: 0; border: 0; background: transparent; }
  .vg-step-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vg-proof-panel, .vg-placeholder { min-height: 180px; }
  .vg-footer-grid { gap: 32px 20px; }
  .vg-media-link__hint { opacity: 1; }
  .vg-brand-hero .vg-hero__media::before { inset: -10px 12px 10px -12px; }
  .vg-hero-facts { gap: 8px 14px; }
  .vg-hero-facts span + span::before { margin-right: 14px; }
  .vg-suitability-matrix { grid-template-columns: 1fr; }
  .vg-suitability-matrix > div + div { border-top: 1px solid var(--vg-border); border-left: 0; }
  .vg-process-rail { grid-template-columns: 1fr; }
  .vg-process-rail article, .vg-process-rail article + article { min-height: 0; padding: 28px 0; border-right: 0; }
  .vg-process-rail span { margin-bottom: 18px; }
  .vg-process-step { grid-template-columns: 60px minmax(0, 1fr); gap: 18px; }
  .vg-process-step > span { font-size: 38px; }
  .vg-trust-facts { grid-template-columns: 1fr; }
  .vg-trust-strip { align-items: center; flex-direction: column; }
  .vg-brand-statement blockquote { font-size: clamp(32px, 10vw, 48px); }
  .woocommerce-cart .woocommerce-cart-form { padding: 14px; }
  .woocommerce-cart .cart-collaterals { padding: 22px 18px; }
  .woocommerce-checkout .woocommerce-checkout-review-order { padding-inline: 18px; }
  .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-top: 16px; padding: 14px 15px; }
  .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox { font-size: 13px; }
  .vg-lightbox { width: 94vw; }
  .vg-lightbox__image { max-height: 75vh; }
  .vg-article-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 24px; }
  .vg-article-card__media { min-height: 0; }
  .vg-article-card__body { padding: 20px; }
  .vg-article-card__title { font-size: 28px; }
  .vg-article-card__meta { align-items: flex-start; flex-direction: column; gap: 8px; }
  .single-post .entry-content { width: min(100% - 40px, 720px); padding-block: 44px 72px; }
  .single-post .entry-content > .vg-article-answer { margin-bottom: 42px; padding: 20px 20px 20px 22px; font-size: 20px; }
  .single-post .entry-content > .vg-article-visual-grid { grid-template-columns: 1fr; gap: 18px; margin-block: 34px 46px; }
  .single-post .hero-section { width: min(100% - 40px, 720px); gap: 28px; padding: 40px 0 36px; }
  .single-post .hero-section .entry-header { width: 100%; }
  .single-post .hero-section > figure::after { font-size: 10px; }
  .single-post .entry-header .ct-breadcrumbs { margin-bottom: 18px; font-size: 10px; }
  .single-post .entry-header .page-title { margin-bottom: 14px; font-size: clamp(38px, 11vw, 54px); line-height: 1.04; }
  .single-post .entry-header .page-description { display: block; margin-bottom: 16px; font-size: 16px; }
  .single-post .entry-header .entry-meta { gap: 6px 12px; font-size: 10px; letter-spacing: 0; }
  .vg-sticky-cart {
    display: flex;
    position: fixed;
    z-index: 90;
    right: 0;
    bottom: 0;
    left: 0;
    align-items: center;
    gap: 12px;
    padding: 12px var(--vg-gutter) calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--vg-border);
    background: var(--vg-warm-white);
    box-shadow: 0 -8px 24px rgba(23, 23, 23, .12);
  }
  .vg-sticky-cart[hidden] { display: none; }
  .vg-sticky-cart__meta { min-width: 0; flex: 1 1 auto; }
  .vg-sticky-cart__label,
  .vg-sticky-cart__selection { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .vg-sticky-cart__label { color: var(--vg-charcoal); font-size: 12px; font-weight: 700; }
  .vg-sticky-cart__selection { margin-top: 2px; color: var(--vg-muted); font-size: 11px; }
  .vg-sticky-cart__price { color: var(--vg-charcoal); font-size: 15px; font-weight: 700; white-space: nowrap; }
  .vg-sticky-cart .vg-sticky-cart__button { width: auto; min-width: 132px; min-height: 46px; margin: 0; padding-inline: 16px; border: 1px solid var(--vg-charcoal) !important; border-radius: 2px; background: var(--vg-charcoal) !important; color: var(--vg-warm-white) !important; }
  .vg-sticky-cart:not(.is-ready) .vg-sticky-cart__button { border-color: #b9b3aa !important; background: #b9b3aa !important; color: #fff !important; cursor: pointer; opacity: 1; }
  .vg-sticky-cart.is-ready .vg-sticky-cart__button { border-color: var(--vg-leather-brown) !important; background: var(--vg-leather-brown) !important; }
  body.has-vg-sticky-cart { padding-bottom: 86px; }
}

@media (max-width: 520px) {
  .vg-grid-4 { grid-template-columns: 1fr; }
  .vg-swatches { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vg-page h1 { font-size: clamp(38px, 12vw, 54px); }
  .vg-page h2 { font-size: clamp(30px, 9vw, 42px); }
}

@media (max-width: 600px) {
  .vg-palette-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vg-palette-choice { min-height: 50px; padding-inline: 9px; font-size: 12px; }
  .vg-palette-choice > span:first-child { width: 18px; height: 18px; flex-basis: 18px; }
  .vg-palette-slots { gap: 5px; }
  .vg-palette-slots li { gap: 5px; padding: 7px 5px; }
  .vg-palette-slot__number { width: 18px; height: 18px; flex-basis: 18px; }
  .vg-palette-slot__copy strong { font-size: 10px; }
  .vg-palette-slot__copy em { font-size: 9px; }
}
