/* Firefly Reference PDP 1.0 — isolated storefront system */
:where(.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related) {
  --ffp-ink:#111;
  --ffp-muted:#6b6b68;
  --ffp-line:#d8d8d4;
  --ffp-line-soft:#e9e9e6;
  --ffp-canvas:#f3f3f1;
  --ffp-white:#fff;
  --ffp-danger:#8b2626;
  --ffp-ease:cubic-bezier(.22,.61,.36,1);
  box-sizing:border-box;
  color:var(--ffp-ink);
  font-family:Cabin,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:12px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:where(.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related),
:where(.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related) * { box-sizing:border-box; }
:where(.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related) button,
:where(.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related) input,
:where(.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related) select { font:inherit; }

/* Reference flow: full-width gallery first, commerce and content below. */
.ffp-pdp { display:block; width:100%; margin:0; padding:0; overflow:hidden; background:#fff; }
.ffp-pdp__gallery { width:100%; }
.ffp-pdp__purchase { width:100%; margin:0; padding:clamp(38px,4vw,64px) clamp(20px,2.5vw,48px) 0; background:#fff; }
.ffp-pdp__purchase-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.56fr); align-items:start; column-gap:clamp(48px,7vw,132px); width:100%; margin:0 auto; }
.ffp-pdp__purchase-inner>.ffp-info { grid-column:1; min-width:0; }
.ffp-pdp__purchase-inner>.ffp-buybox { grid-column:2; min-width:0; }
.ffp-pdp__purchase .ffp-buybox { margin-top:0; }
.ffp-pdp__related { width:100%; padding:0 clamp(12px,2.2vw,36px) clamp(48px,6vw,88px); }

/* Remove only spacing introduced around shortcode widgets. */
.elementor-widget-shortcode.ffp-host,
.elementor-widget-shortcode.ffp-host>.elementor-widget-container {
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.elementor-widget-shortcode.ffp-host>.elementor-widget-container>p:empty,
.elementor-widget-shortcode.ffp-host>.elementor-widget-container>br { display:none!important; }

/* Gallery */
.ffp-gallery {
  width:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border:0!important;
  background:var(--ffp-gallery-bg,var(--ffp-canvas));
}
.ffp-gallery__viewport {
  position:relative;
  width:100%;
  aspect-ratio:2/1;
  overflow:hidden;
  outline:0;
  background:var(--ffp-gallery-bg,var(--ffp-canvas));
  cursor:grab;
  touch-action:pan-y;
}
.ffp-gallery__viewport.is-dragging { cursor:grabbing; }
.ffp-gallery__viewport:focus-visible { outline:1px solid var(--ffp-ink); outline-offset:-1px; }
.ffp-gallery__track {
  display:flex;
  width:100%;
  height:100%;
  transform:translate3d(0,0,0);
  transition:none;
  will-change:transform;
  backface-visibility:hidden;
}
.ffp-gallery__track.is-resist-prev { animation:ffpGalleryResistPrev .38s var(--ffp-ease); }
.ffp-gallery__track.is-resist-next { animation:ffpGalleryResistNext .38s var(--ffp-ease); }
.ffp-gallery__slide {
  position:relative;
  flex:0 0 50%;
  width:50%;
  height:100%;
  min-width:0;
  margin:0;
  padding:0;
  overflow:hidden;
  border:0;
  background:var(--ffp-gallery-bg,var(--ffp-canvas));
  backface-visibility:hidden;
}
.ffp-gallery__slide[data-span="full"] { flex-basis:100%; width:100%; }
.ffp-gallery__media {
  appearance:none;
  position:relative;
  display:block;
  width:100%;
  height:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ffp-gallery__media--image { cursor:pointer; }
.ffp-gallery__media--image.is-zoomed { cursor:grab; }
.ffp-gallery__media--image.is-panning { cursor:grabbing; }
.ffp-gallery__zoom-layer {
  display:block;
  width:100%;
  height:100%;
  transform:translate3d(0,0,0) scale(1);
  transform-origin:50% 50%;
  transform:translate3d(0,0,0) scale(1);
  transition:transform .58s cubic-bezier(.33,1,.68,1);
  will-change:transform;
}
.ffp-gallery__zoom-layer.is-direct { transition:none; }
.ffp-gallery__image,
.ffp-gallery__video {
  display:block;
  width:100%;
  height:100%;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backface-visibility:hidden;
}
.ffp-gallery__slide.is-product .ffp-gallery__image { object-fit:contain; object-position:center; }
.ffp-gallery__slide.is-editorial .ffp-gallery__image,
.ffp-gallery__video { object-fit:cover; object-position:center; }
.ffp-gallery__slide.is-product .ffp-gallery__video { object-fit:contain; }
.ffp-gallery__video-toggle {
  appearance:none;
  position:absolute;
  z-index:3;
  top:50%;
  left:50%;
  width:42px;
  height:42px;
  padding:0;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  background:rgba(17,17,17,.25);
  color:#fff;
  opacity:0;
  cursor:pointer;
  backdrop-filter:blur(7px);
  transition:opacity .2s ease,background .2s ease;
}
.ffp-gallery__slide.is-video:hover .ffp-gallery__video-toggle,
.ffp-gallery__video-toggle:focus-visible,
.ffp-gallery__video-toggle.is-paused { opacity:1; }
.ffp-gallery__video-toggle span {
  position:absolute;
  top:13px;
  left:17px;
  width:0;
  height:0;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-left:11px solid currentColor;
}
.ffp-gallery__video-toggle.is-playing span { top:13px; left:15px; width:12px; height:14px; border:0; border-right:3px solid currentColor; border-left:3px solid currentColor; }
.ffp-gallery__overlay {
  pointer-events:none;
  position:absolute;
  z-index:8;
  right:0;
  bottom:0;
  left:0;
  display:flex;
  align-items:flex-end;
  min-height:68px;
  padding:20px 32px;
  line-height:1;
}
.ffp-gallery__desktop-controls,
.ffp-gallery__mobile-count { pointer-events:auto; }
.ffp-gallery__left-controls { display:none; }
.ffp-gallery__desktop-controls { display:flex; align-items:center; gap:8px; margin-left:auto; }
.ffp-gallery__thumbs { display:flex; align-items:center; justify-content:flex-end; gap:3px; max-width:320px; }
.ffp-gallery__thumb {
  appearance:none;
  position:relative;
  flex:0 0 20px;
  width:20px;
  height:25px;
  margin:0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.35);
  border-radius:0;
  background:#ddd;
  opacity:.55;
  cursor:pointer;
  transition:width .24s ease,flex-basis .24s ease,opacity .24s ease,border-color .24s ease;
}
.ffp-gallery__thumb:hover,
.ffp-gallery__thumb:focus-visible,
.ffp-gallery__thumb.is-active,
.ffp-gallery__thumb.is-companion { flex-basis:25px; width:25px; opacity:1; border-color:#fff; }
.ffp-gallery__thumb img,
.ffp-gallery__thumb video { display:block; width:100%; height:100%; object-fit:cover; }
.ffp-gallery__thumb.is-video::after { content:""; position:absolute; top:50%; left:50%; transform:translate(-38%,-50%); border-top:3px solid transparent; border-bottom:3px solid transparent; border-left:5px solid #fff; }
.ffp-gallery__thumb-more,
.ffp-gallery__arrow,
.ffp-gallery__mobile-count {
  border:0;
  background:rgba(17,17,17,.42);
  color:#fff;
  backdrop-filter:blur(8px);
}
.ffp-gallery__thumb-more { width:25px; height:25px; padding:0; font-size:9px; cursor:pointer; }
.ffp-gallery__arrows { display:flex; gap:3px; }
.ffp-gallery__arrow { display:grid; width:25px; height:25px; padding:0; place-items:center; border-radius:50%; cursor:pointer; transition:opacity .18s ease,background .18s ease; }
.ffp-gallery__arrow:hover { background:rgba(17,17,17,.68); }
.ffp-gallery__arrow.is-edge { opacity:.42; }
.ffp-gallery__arrow svg { width:11px; height:11px; fill:none; stroke:currentColor; stroke-width:1.4; }
.ffp-gallery__mobile-count { display:none; margin-left:auto; padding:5px 7px; border-radius:20px; font-size:9px; letter-spacing:.03em; }

/* Product identity and description */
.ffp-info { width:100%; margin:0; padding:0; background:#fff; }
.ffp-info__header { display:flex; flex-direction:column; gap:7px; padding:0 0 21px; }
.ffp-info__brand { color:var(--ffp-muted); font-size:9px; font-weight:500; line-height:1.2; letter-spacing:.13em; text-transform:uppercase; }
.ffp-info__title { margin:0!important; color:var(--ffp-ink); font:400 clamp(17px,1.3vw,21px)/1.28 Cabin,"Helvetica Neue",Helvetica,Arial,sans-serif; letter-spacing:-.018em; }
.ffp-info__line { display:flex; align-items:baseline; justify-content:space-between; gap:18px; margin-top:2px; }
.ffp-info__price,
.ffp-info__price .price { display:block!important; visibility:visible!important; opacity:1!important; height:auto!important; margin:0!important; color:var(--ffp-ink)!important; font:500 12px/1.4 Cabin,"Helvetica Neue",Helvetica,Arial,sans-serif!important; }
.ffp-info__variations { width:100%; margin:0 0 2px; padding:0 0 2px; border-bottom:1px solid var(--ffp-line); }
.ffp-info__price del { margin-right:6px; color:#888; font-weight:400; }
.ffp-info__price ins { color:inherit; text-decoration:none; }
.ffp-info__sku { color:#8a8a86; font-size:8px; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.ffp-info__stock { width:max-content; margin-top:2px; padding-left:9px; color:#444; font-size:9px; line-height:1.3; position:relative; }
.ffp-info__stock::before { content:""; position:absolute; top:4px; left:0; width:4px; height:4px; border-radius:50%; background:#6b7b61; }
.ffp-breadcrumbs { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 15px; color:#888; font-size:8px; letter-spacing:.03em; }
.ffp-breadcrumbs a { color:inherit; text-decoration:none; }
.ffp-breadcrumbs a:hover { color:var(--ffp-ink); }
.ffp-accordions { width:min(100%,640px); margin:2px 0 0; border:0; }
.ffp-accordion { margin:0; border-bottom:1px solid var(--ffp-line); }
.ffp-accordion:last-child { border-bottom:0; }
.ffp-accordion summary { display:flex; min-height:38px; margin:0; padding:11px 1px 10px 0; align-items:center; justify-content:space-between; gap:14px; list-style:none; cursor:pointer; color:var(--ffp-ink); font-size:8px; font-weight:500; line-height:1.2; letter-spacing:.085em; text-transform:uppercase; }
.ffp-accordion summary::-webkit-details-marker { display:none; }
.ffp-accordion__icon { position:relative; flex:0 0 11px; width:11px; height:11px; }
.ffp-accordion__icon::before,
.ffp-accordion__icon::after { content:""; position:absolute; background:currentColor; transition:transform .24s var(--ffp-ease); }
.ffp-accordion__icon::before { top:5px; left:0; width:11px; height:1px; }
.ffp-accordion__icon::after { top:0; left:5px; width:1px; height:11px; }
.ffp-accordion[open] .ffp-accordion__icon::after { transform:rotate(90deg); }
.ffp-accordion__content { max-width:62ch; padding:3px 20px 17px 0; color:#454542; font-size:10px; line-height:1.58; transform-origin:top; }
.ffp-accordion__content>:first-child { margin-top:0; }
.ffp-accordion__content>:last-child { margin-bottom:0; }
.ffp-accordion__content p { margin:0 0 10px; }
.ffp-accordion__content h4 { margin:17px 0 7px; color:var(--ffp-ink); font-size:9px; font-weight:600; line-height:1.35; letter-spacing:.08em; text-transform:uppercase; }
.ffp-accordion__content a { color:inherit!important; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.ffp-accordion__content ul,
.ffp-accordion__content ol { margin:8px 0 10px; padding-left:17px; }
.ffp-drawer__backdrop { appearance:none; position:fixed; z-index:80; inset:0; display:block; width:100%; height:100%; margin:0!important; padding:0!important; border:0!important; background:rgba(0,0,0,.28)!important; opacity:0; visibility:hidden; cursor:default; transition:opacity .36s ease,visibility 0s linear .36s; }
.ffp-drawer { position:fixed; z-index:81; top:0; right:0; width:min(520px,100vw); height:100dvh; overflow:auto; overscroll-behavior:contain; background:#fff; box-shadow:-18px 0 45px rgba(0,0,0,.12); transform:translate3d(100%,0,0); visibility:hidden; transition:transform .52s cubic-bezier(.76,0,.24,1),visibility 0s linear .52s; }
[data-ffp-drawer][open]>.ffp-drawer__backdrop { opacity:1; visibility:visible; transition-delay:0s; }
[data-ffp-drawer][open]>.ffp-drawer { transform:translate3d(0,0,0); visibility:visible; transition-delay:0s; }
.ffp-drawer__header { position:sticky; z-index:2; top:0; display:flex; min-height:70px; padding:0 clamp(22px,4vw,48px); align-items:center; justify-content:space-between; border-bottom:1px solid var(--ffp-line); background:rgba(255,255,255,.96); backdrop-filter:blur(10px); }
.ffp-drawer__header h2 { margin:0!important; color:var(--ffp-ink); font-size:11px; font-weight:500; line-height:1.3; letter-spacing:.09em; text-transform:uppercase; }
.ffp-drawer__content { padding:28px clamp(22px,4vw,48px) 54px; color:#454542; font-size:11px; line-height:1.68; }
.ffp-drawer__content p { margin:0 0 14px; }
.ffp-drawer__content a { color:inherit!important; text-decoration:underline; text-underline-offset:3px; }
.ffp-contact-list { display:grid; gap:17px; margin-top:24px; }
.ffp-contact-list a { display:block; text-decoration:none!important; }
.ffp-contact-list small { display:block; margin-bottom:3px; color:var(--ffp-muted); font-size:8px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.ffp-contact-list span { color:var(--ffp-ink); font-size:11px; line-height:1.45; text-decoration:underline; text-underline-offset:3px; }
.ffp-drawer__close { appearance:none; position:relative; width:32px; height:32px; margin:0 -8px 0 0!important; padding:0!important; border:0!important; border-radius:50%!important; background:transparent!important; color:#111!important; box-shadow:none!important; cursor:pointer; }
.ffp-drawer__close span::before,.ffp-drawer__close span::after { content:""; position:absolute; top:15px; left:8px; width:16px; height:1px; background:currentColor; }
.ffp-drawer__close span::before { transform:rotate(45deg); }
.ffp-drawer__close span::after { transform:rotate(-45deg); }
html.ffp-drawer-open,html.ffp-drawer-open body { overflow:hidden!important; }

/* Buy box */
.ffp-buybox { width:100%; margin:0; padding:0; background:#fff; }
.ffp-form { width:100%; margin:0!important; padding:0!important; }
.ffp-form__native { position:absolute!important; width:1px!important; height:1px!important; margin:-1px!important; padding:0!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.ffp-option-group { min-width:0; margin:0; padding:14px 0 15px; border:0; }
.ffp-option-group+.ffp-option-group { border-top:1px solid var(--ffp-line-soft); }
.ffp-option-group__legend { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; width:100%; margin:0 0 11px; padding:0; color:var(--ffp-ink); font-size:9px; font-weight:500; line-height:1.2; letter-spacing:.09em; text-transform:uppercase; }
.ffp-option-group__value { min-width:0; margin-left:6px; overflow:hidden; color:var(--ffp-muted); font-size:9px; font-weight:400; letter-spacing:0; text-overflow:ellipsis; text-transform:none; white-space:nowrap; }
.ffp-option-group__guide { color:var(--ffp-ink); font-size:9px; font-weight:400; letter-spacing:0; text-underline-offset:3px; text-transform:none; }
.ffp-options { display:flex; flex-wrap:wrap; gap:6px; }
.ffp-option { appearance:none; position:relative; display:inline-grid; min-width:39px; height:34px; margin:0!important; padding:0 11px; place-items:center; border:1px solid #cfcfcb!important; border-radius:0!important; background:#fff!important; color:var(--ffp-ink)!important; box-shadow:none!important; text-shadow:none!important; cursor:pointer; font-size:9px; line-height:1!important; transition:border-color .17s ease,color .17s ease,background .17s ease; }
.ffp-option:hover { border-color:var(--ffp-ink)!important; }
.ffp-option.is-active { border-color:var(--ffp-ink)!important; background:var(--ffp-ink)!important; color:#fff!important; }
.ffp-option.is-unavailable:not(.ffp-option--color) { color:#8d8d89!important; }
.ffp-option.is-unavailable:not(.ffp-option--color)::after { content:""; position:absolute; top:50%; right:6px; left:6px; height:1px; background:currentColor; transform:rotate(-16deg); opacity:.55; }
.ffp-option--color { width:28px; min-width:28px; height:28px; padding:3px; border-color:transparent!important; border-radius:50%!important; background:transparent!important; }
.ffp-option--color:hover,
.ffp-option--color.is-active { border-color:var(--ffp-ink)!important; background:transparent!important; }
.ffp-option__swatch { display:block; width:20px; height:20px; border:1px solid rgba(17,17,17,.15); border-radius:50%; background-repeat:no-repeat; background-position:center; }
.ffp-option--color.is-unavailable .ffp-option__swatch { opacity:1; filter:none; }
.ffp-option--color.is-unavailable::after { content:""; position:absolute; top:13px; right:4px; left:4px; height:1px; background:rgba(17,17,17,.72); transform:rotate(-42deg); }
.ffp-form__notice { min-height:16px; padding:6px 0 0; color:var(--ffp-danger); font-size:9px; line-height:1.35; }
.ffp-form__actions { display:grid; grid-template-columns:1fr; gap:6px; margin:0; }
.ffp-button { appearance:none; display:inline-flex; width:100%; min-height:44px; margin:0!important; padding:12px 18px; align-items:center; justify-content:center; gap:8px; border:1px solid var(--ffp-ink)!important; border-radius:0!important; box-shadow:none!important; text-shadow:none!important; cursor:pointer; font-size:9px!important; font-weight:500!important; line-height:1!important; letter-spacing:.1em!important; text-transform:uppercase; transition:background .2s ease,color .2s ease,opacity .2s ease; }
.ffp-buybox .ffp-button--primary { background:var(--ffp-ink)!important; color:#fff!important; }
.ffp-buybox .ffp-button--primary:hover { background:#fff!important; color:var(--ffp-ink)!important; }
.ffp-buybox .ffp-button--primary:disabled { border-color:#aaa!important; background:#aaa!important; color:#fff!important; opacity:.62; cursor:not-allowed; }
.ffp-buybox .ffp-button--wishlist { background:#fff!important; color:var(--ffp-ink)!important; }
.ffp-buybox .ffp-button--wishlist:hover,
.ffp-buybox .ffp-button--wishlist.is-active,
.ffp-buybox .ffp-button--wishlist.is-added { background:var(--ffp-ink)!important; color:#fff!important; }
.ffp-heart { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.35; }
.ffp-button--wishlist.is-active .ffp-heart,
.ffp-button--wishlist.is-added .ffp-heart { fill:currentColor; }

/* Compact client-service block below the purchase actions. */
.ffp-services { width:100%; margin:20px 0 0; padding:12px 0 0; border-top:1px solid var(--ffp-line); }
.ffp-service-note { max-width:52ch; margin:0 0 8px; padding:0 0 8px; border:0; color:#242421; font-size:9px; font-weight:500; line-height:1.5; letter-spacing:.015em; }
.ffp-service { display:grid; grid-template-columns:15px minmax(0,1fr); gap:8px; width:100%; margin:0!important; padding:9px 0; align-items:start; border:0!important; background:transparent!important; color:var(--ffp-ink)!important; box-shadow:none!important; text-decoration:none!important; }
.ffp-service+.ffp-service { border-top:1px solid var(--ffp-line-soft)!important; }
.ffp-service__icon { width:14px; height:14px; margin-top:1px; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
.ffp-service>span { display:block; min-width:0; }
.ffp-service strong { display:inline; font-size:10px; font-weight:500; line-height:1.35; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.ffp-service small { display:block; margin-top:2px; color:#595955; font-size:8px; font-weight:400; line-height:1.4; }
.ffp-service:hover strong,.ffp-service:focus-visible strong { text-decoration-thickness:1.5px; }
.ffp-service-drawer { display:contents; }
.ffp-service-drawer>summary { display:none!important; }

/* Related products: Atelier owns product-card structure and behavior. */
.ffp-related { width:100%; margin:0; padding:clamp(48px,6vw,82px) 0 0; overflow:hidden; background:#fff; }
.ffp-related__header { display:flex; align-items:center; gap:18px; margin:0 0 19px; }
.ffp-related__header h2 { flex:0 0 auto; margin:0!important; color:var(--ffp-ink); font:500 10px/1.2 Cabin,"Helvetica Neue",Helvetica,Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.ffp-related__rule { width:100%; height:1px; background:var(--ffp-line-soft); }
.ffp-related__slider { position:relative; width:100%; min-width:0; }
.ffp-related-carousel { position:relative; width:100%; min-width:0; }
.ffp-related-carousel__viewport { width:100%; min-width:0; overflow:auto hidden; scrollbar-width:none; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; }
.ffp-related-carousel__viewport::-webkit-scrollbar { display:none; }
.ffp-related-carousel__track { display:flex; width:100%; min-width:100%; align-items:flex-start; gap:var(--ffpr-gap,8px); transform:translate3d(0,0,0); }
.ffp-related-carousel__track.is-resist-prev { animation:ffpResistPrev .3s var(--ffp-ease); }
.ffp-related-carousel__track.is-resist-next { animation:ffpResistNext .3s var(--ffp-ease); }
.ffp-related-carousel__item { flex:0 0 calc((100% - (var(--ffpr-cols-d) - 1)*var(--ffpr-gap))/var(--ffpr-cols-d)); width:calc((100% - (var(--ffpr-cols-d) - 1)*var(--ffpr-gap))/var(--ffpr-cols-d)); min-width:0; scroll-snap-align:start; }
.ffp-related-carousel__item>.acx-card { width:100%; }
.ffp-related-carousel__arrow { appearance:none; position:absolute; z-index:12; top:42%; display:grid; width:32px; height:32px; padding:0; place-items:center; transform:translateY(-50%); border:1px solid rgba(17,17,17,.15)!important; border-radius:50%!important; background:rgba(255,255,255,.9)!important; color:#111!important; box-shadow:none!important; cursor:pointer; backdrop-filter:blur(7px); transition:opacity .18s ease; }
.ffp-related-carousel__arrow.is-prev { left:10px; }
.ffp-related-carousel__arrow.is-next { right:10px; }
.ffp-related-carousel__arrow.is-edge { opacity:.38; }
.ffp-related-carousel__arrow svg { width:11px; height:11px; fill:none; stroke:currentColor; stroke-width:1.4; }
.ffp-related-carousel__progress { width:100%; height:1px; margin-top:16px; overflow:hidden; background:var(--ffp-line-soft); }
.ffp-related-carousel__progress span { display:block; width:100%; height:100%; background:var(--ffp-ink); transform:scaleX(.08); transform-origin:left center; transition:transform .22s ease; }
.ffp-related .acx-card-meta { padding-top:9px; }
.ffp-related .acx-card-meta h3 { margin:0 0 3px; font-size:10px; font-weight:500; line-height:1.35; }
.ffp-related .acx-card-price { font-size:9px; color:#5d5d59; }
.ffp-related-fallback { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - (var(--ffp-related-cols) - 1)*var(--ffp-related-gap))/var(--ffp-related-cols)); gap:var(--ffp-related-gap); overflow:auto hidden; scrollbar-width:none; scroll-snap-type:x mandatory; }
.ffp-related-fallback::-webkit-scrollbar { display:none; }
.ffp-related-card { min-width:0; scroll-snap-align:start; }
.ffp-related-card__media { display:block; width:100%; aspect-ratio:2/3; overflow:hidden; background:var(--ffp-canvas); }
.ffp-related-card__media img { display:block; width:100%; height:100%; margin:0!important; object-fit:cover; }
.ffp-related-card h3 { margin:9px 0 3px; font-size:10px; font-weight:500; line-height:1.35; }
.ffp-related-card h3 a { color:inherit; text-decoration:none; }
.ffp-related-card__price { color:#5d5d59; font-size:9px; }

/* Hard boundary against theme accent/pink hover styles. */
html body :where(.ffp-pdp,.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related,.ffp-services) :is(button,a,summary):hover,
html body :where(.ffp-pdp,.ffp-gallery,.ffp-info,.ffp-buybox,.ffp-related,.ffp-services) :is(button,a,summary):focus {
  --wp--preset--color--vivid-red:#111;
  --wp--preset--color--luminous-vivid-orange:#111;
  text-shadow:none!important;
}
html body .ffp-gallery :is(.ffp-gallery__media,.ffp-gallery__media:hover,.ffp-gallery__media:focus),
html body .ffp-related :is(.acx-card,.acx-card:hover,.acx-card-media,.acx-card-media:hover,.acx-card-link,.acx-card-link:hover,.acx-card-images,.acx-card-image) {
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}
html body .ffp-related :is(.acx-heart,.acx-heart:hover,.acx-image-arrow,.acx-image-arrow:hover) { background:transparent!important; color:#111!important; box-shadow:none!important; }
html body .ffp-related .acx-quick-trigger:hover:not(:disabled) { border-color:#111!important; background:#111!important; color:#fff!important; }
html body .ffp-gallery :is(.ffp-gallery__arrow,.ffp-gallery__arrow:hover,.ffp-gallery__arrow:focus,.ffp-gallery__arrow:active) { border:0!important; background-color:rgba(17,17,17,.48)!important; background-image:none!important; color:#fff!important; box-shadow:none!important; }
html body .ffp-services :is(.ffp-service,.ffp-service:hover,.ffp-service:focus,.ffp-service:active) { background:transparent!important; background-image:none!important; color:#111!important; box-shadow:none!important; }
html body .ffp-related :is(.ffp-related-carousel__arrow,.ffp-related-carousel__arrow:hover,.ffp-related-carousel__arrow:focus,.ffp-related-carousel__arrow:active) { border:1px solid rgba(17,17,17,.15)!important; background-color:rgba(255,255,255,.92)!important; background-image:none!important; color:#111!important; box-shadow:none!important; }
html body :is(.ffp-gallery__arrow,.ffp-related-carousel__arrow)::before,
html body :is(.ffp-gallery__arrow,.ffp-related-carousel__arrow)::after { content:none!important; display:none!important; background:transparent!important; }

@keyframes ffpResistPrev { 0%,100%{transform:translate3d(0,0,0)} 48%{transform:translate3d(9px,0,0)} }
@keyframes ffpResistNext { 0%,100%{transform:translate3d(0,0,0)} 48%{transform:translate3d(-9px,0,0)} }
@keyframes ffpGalleryResistPrev { 0%,100%{transform:translate3d(0,0,0)} 48%{transform:translate3d(12px,0,0)} }
@keyframes ffpGalleryResistNext { 0%,100%{transform:translate3d(var(--ffp-current-x,0),0,0)} 48%{transform:translate3d(calc(var(--ffp-current-x,0) - 12px),0,0)} }

@media (min-width:1024px) {
  .ffp-gallery,
  .ffp-gallery__viewport,
  .ffp-gallery__slide {
    --ffp-gallery-bg:#fff;
    background:#fff;
  }
  .ffp-gallery__slide .ffp-gallery__image {
    object-fit:contain!important;
    object-position:center center!important;
  }
  .ffp-pdp__purchase-inner>.ffp-buybox {
    position:sticky;
    top:clamp(72px,8vh,104px);
    align-self:start;
  }
}

@media (max-width:1023px) {
  .ffp-pdp__purchase { padding:32px 18px 0; }
  .ffp-pdp__purchase-inner { display:block; }
  .ffp-pdp__purchase-inner>.ffp-buybox { display:block; }
  .ffp-pdp__purchase-inner .ffp-form__actions { margin-top:16px; }
  .ffp-pdp__purchase-inner .ffp-services { margin-top:15px; }
  .ffp-gallery__viewport { aspect-ratio:var(--ffp-mobile-ratio,.75); background:#fff; transition:aspect-ratio .38s cubic-bezier(.33,1,.68,1); }
  .ffp-gallery__slide,
  .ffp-gallery__slide[data-span="full"] { flex-basis:100%; width:100%; border:0!important; }
  .ffp-gallery__slide.is-product .ffp-gallery__image { object-fit:contain; }
  .ffp-gallery__desktop-controls { display:none; }
  .ffp-gallery__left-controls { display:block; order:2; pointer-events:none; }
  .ffp-gallery__mobile-count { display:block; order:1; margin-left:auto; }
  .ffp-gallery__mobile-preview { position:relative; display:block; width:28px; height:34px; border:1px solid rgba(255,255,255,.8); background-color:#ddd; background-repeat:no-repeat; background-position:center; background-size:cover; box-shadow:0 1px 5px rgba(0,0,0,.12); }
  .ffp-gallery__mobile-preview.is-video::after { content:""; position:absolute; top:50%; left:50%; transform:translate(-38%,-50%); border-top:3px solid transparent; border-bottom:3px solid transparent; border-left:5px solid #fff; }
  .ffp-gallery__overlay { min-height:0; padding:0 12px 12px; align-items:center; justify-content:flex-end; gap:4px; background:transparent!important; }
  .ffp-info__title { font-size:18px; }
  .ffp-info__price,.ffp-info__price .price,.ffp-info__price :is(span,bdi,ins) { display:inline!important; visibility:visible!important; opacity:1!important; color:var(--ffp-ink)!important; }
  .ffp-related-carousel__item { flex-basis:calc((100% - (var(--ffpr-cols-t) - 1)*var(--ffpr-gap))/var(--ffpr-cols-t)); width:calc((100% - (var(--ffpr-cols-t) - 1)*var(--ffpr-gap))/var(--ffpr-cols-t)); }
}
@media (min-width:1024px) and (max-width:1366px) {
  .ffp-related-carousel__item { flex-basis:calc((100% - (var(--ffpr-cols-l) - 1)*var(--ffpr-gap))/var(--ffpr-cols-l)); width:calc((100% - (var(--ffpr-cols-l) - 1)*var(--ffpr-gap))/var(--ffpr-cols-l)); }
}
@media (max-width:767px) {
  .ffp-pdp__purchase { padding:31px 16px 0; }
  .ffp-pdp__purchase-inner { width:100%; }
  .ffp-drawer { width:100vw; }
  .ffp-drawer__header { min-height:62px; padding:0 18px; }
  .ffp-accordion__content { padding:2px 16px 20px 0; }
  .ffp-drawer__content { padding:24px 18px 42px; }
  .ffp-pdp__related { padding-right:8px; padding-left:8px; }
  .ffp-info__header { padding-bottom:18px; }
  .ffp-info__line { align-items:flex-start; flex-direction:column; gap:3px; }
  .ffp-info__sku { white-space:normal; }
  .ffp-option-group { padding:15px 0 16px; }
  .ffp-button { min-height:43px; }
  .ffp-related { padding-top:42px; }
  .ffp-related__header { gap:12px; margin-bottom:14px; }
  .ffp-related__header h2 { font-size:9px; }
  .ffp-related-fallback { grid-auto-columns:calc((100% - 5px)/2); gap:5px; }
  .ffp-related-carousel__item { flex-basis:calc((100% - (var(--ffpr-cols-m) - 1)*var(--ffpr-gap))/var(--ffpr-cols-m)); width:calc((100% - (var(--ffpr-cols-m) - 1)*var(--ffpr-gap))/var(--ffpr-cols-m)); }
  .ffp-related-carousel__arrow { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .ffp-gallery__track,
  .ffp-gallery__zoom-layer,
  .ffp-gallery__thumb,
  .ffp-accordion__icon::after { transition-duration:1ms!important; }
}
