/* Shared bronze curtain. No markup, pseudo-element or JavaScript is needed,
   so native WPBakery buttons, input submits and loading indicators stay intact. */

.ob26-button-effects.wd {
  --ob26-curtain-bronze: var(--ob26-brand-bronze);
  --ob26-curtain-ink: var(--ob26-brand-ink);
  --ob26-curtain-duration: 380ms;
  --ob26-curtain-ease: cubic-bezier(.22, .7, .25, 1);
  --ob26-circle-fill: var(--ob26-curtain-bronze);
  --ob26-circle-hover-ink: var(--ob26-curtain-ink);
  --ob26-circle-position: 100%;
  --ob26-circle-rest-bg: transparent;
  --ob26-circle-rest-ink: var(--ob26-brand-ink);
  --ob26-circle-rest-border: #c7c9c0;
  --ob26-symbol-ne: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2019%2019%205M5%205h14v14'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-symbol-right: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M4%2012h16m-7-7%207%207-7%207'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-symbol-down: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%204v16m-7-7%207%207%207-7'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-symbol-se: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%205%2019%2019M6%2019h13V6'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-symbol-close: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M6%206l12%2012M18%206%206%2018'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-symbol-phone: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M8%203H4.8A1.8%201.8%200%200%200%203%204.8C3%2013.75%2010.25%2021%2019.2%2021a1.8%201.8%200%200%200%201.8-1.8V16l-5-2-2%202a13%2013%200%200%201-6-6l2-2-2-5Z'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-symbol-chevron: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='m9%205%207%207-7%207'%20fill='none'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --ob26-button-height: 52px;
  --ob26-button-padding-y: 15px;
  --ob26-button-padding-x: 21px;
  --ob26-button-gap: 32px;
  --ob26-button-font-size: 12px;
  --ob26-button-icon-size: 20px;
  --ob26-button-rest-bg: var(--ob26-brand-ink);
  --ob26-button-rest-color: var(--ob26-brand-paper);
  --ob26-button-rest-border: transparent;
  --ob26-cta-arrow-x: 3px;
  --ob26-cta-arrow-y: -3px;
  --ob26-control-size: 44px;
  --ob26-control-icon-size: 20px;
}

/* One vector handset for existing telephone actions, independent of icon fonts.
   Numbers, tel: destinations and the editable WPBakery content stay intact. */

.ob26-button-effects.wd a[href^="tel:"] > span[aria-hidden="true"] {
  display: inline-block;
  flex: none;
  width: 20px;
  height: 20px;
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  background: currentColor;
}

/* Specificity matches the existing page/header rules; the shared file loads last.
   Text links, skip links and portfolio category tabs retain their own treatments. */

.ob26-button-effects.wd :is(
  .whb-header .ob26-header-cta.btn,
  .ob26-button,
  .op26-button,
  .pg26-button,
  .oc26-map-load-button,
  .ref26-contact-link,
  .rd26-contact-link,
  .og26-more,
  .ref26-load-more,
  .ob26-round-button,
  .ob26-slider-controls button,
  .rd26-dialog button,
  .btn:where(:not(.btn-style-link, .wd-skip-links, .ob26-text-link)),
  .vc_btn3,
  .wp-element-button,
  .wp-block-button__link,
  .wp-block-file__button,
  .ob26-bronze-button,
  form input:where([type="submit"], [type="button"], [type="reset"]),
  form button[type="submit"]
) {
  background-image: linear-gradient(102deg, var(--ob26-curtain-bronze) 49.8%, transparent 50.2%);
  background-size: 240% 100%;
  background-position: 100% 50%;
  background-repeat: no-repeat;
  transition: background-position var(--ob26-curtain-duration) var(--ob26-curtain-ease),
    color 180ms ease, border-color 180ms ease;
}

.ob26-button-effects.wd :is(
  .whb-header .ob26-header-cta.btn,
  .ob26-button,
  .op26-button,
  .pg26-button,
  .oc26-map-load-button,
  .ref26-contact-link,
  .rd26-contact-link,
  .og26-more,
  .ref26-load-more,
  .ob26-round-button,
  .ob26-slider-controls button,
  .rd26-dialog button,
  .btn:where(:not(.btn-style-link, .wd-skip-links, .ob26-text-link)),
  .vc_btn3,
  .wp-element-button,
  .wp-block-button__link,
  .wp-block-file__button,
  .ob26-bronze-button,
  form input:where([type="submit"], [type="button"], [type="reset"]),
  form button[type="submit"]
):not(:disabled, [aria-disabled="true"], .disabled, .loading, .wd-disabled):is(:focus-visible, :active) {
  background-position: 0% 50%;
  border-color: var(--ob26-curtain-bronze);
  color: var(--ob26-curtain-ink);
}

/* Keep the current fill underneath the travelling curtain, instead of also
   switching to the older green/yellow hover background. */

.ob26-button-effects.wd :is(
  .whb-header .ob26-header-cta.btn,
  .ob26-button,
  .op26-button,
  .pg26-button,
  .oc26-contact-form .oc26-submit-button,
  .oc26-map-load-button,
  .ref26-contact-link,
  .rd26-contact-link,
  .og26-more,
  .ob26-round-button,
  .ob26-slider-controls button,
  .rd26-dialog button,
  .wp-block-file__button
):not(:disabled, [aria-disabled="true"], .disabled, .loading, .wd-disabled):is(:focus-visible, :active) {
  background-color: var(--ob26-button-rest-bg);
}

/* Move only the diagonal action arrows. No transform is applied to the button,
   so its size, text wrapping, click area and neighbouring content stay fixed. */

.ob26-button-effects.wd :is(.ob26-button, .ob26-header-cta)::after,
.ob26-button-effects.wd :is(.op26-button, .pg26-button, .oc26-map-load-button, .ref26-contact-link) > .ob26-icon,
.ob26-button-effects.wd .ob26-product-image .ob26-image-link-arrow > .ob26-icon {
  transition: transform var(--ob26-curtain-duration) var(--ob26-curtain-ease);
}

.ob26-button-effects.wd :is(.whb-header .ob26-header-cta.btn, .ob26-button):is(:focus-visible, :active)::after,
.ob26-button-effects.wd :is(.op26-button, .pg26-button, .oc26-map-load-button, .ref26-contact-link):is(:focus-visible, :active) > .ob26-icon,
.ob26-button-effects.wd .ob26-product-image > a:is(:focus-visible, :active) .ob26-image-link-arrow > .ob26-icon {
  transform: translate(3px, -3px);
}

/* Contact Form 7 renders the arrow beside its native input, not inside it. */

.ob26-button-effects.wd .oc26-submit-wrap > .oc26-text-arrow {
  transition: color 180ms ease, transform var(--ob26-curtain-duration) var(--ob26-curtain-ease);
}

.ob26-button-effects.wd .oc26-contact-form .oc26-submit-wrap:has(> .oc26-submit-button:not(:disabled):is(:focus-visible, :active)) > .oc26-text-arrow {
  color: var(--ob26-curtain-ink);
  transform: translate(3px, calc(-50% - 3px));
}

/* A touch browser may retain :hover after tap. Only a genuine hover-capable,
   fine primary pointer gets the hover animation. Keyboard focus stays global. */

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd :is(
    .whb-header .ob26-header-cta.btn,
    .ob26-button,
    .op26-button,
    .pg26-button,
    .oc26-map-load-button,
    .ref26-contact-link,
    .rd26-contact-link,
    .og26-more,
    .ref26-load-more,
    .ob26-round-button,
    .ob26-slider-controls button,
    .rd26-dialog button,
    .btn:where(:not(.btn-style-link, .wd-skip-links, .ob26-text-link)),
    .vc_btn3,
    .wp-element-button,
    .wp-block-button__link,
    .wp-block-file__button,
    .ob26-bronze-button,
    form input:where([type="submit"], [type="button"], [type="reset"]),
    form button[type="submit"]
  ):not(:disabled, [aria-disabled="true"], .disabled, .loading, .wd-disabled):hover {
    background-position: 0% 50%;
    border-color: var(--ob26-curtain-bronze);
    color: var(--ob26-curtain-ink);
  }

  .ob26-button-effects.wd :is(
    .whb-header .ob26-header-cta.btn,
    .ob26-button,
    .op26-button,
    .pg26-button,
    .oc26-contact-form .oc26-submit-button,
    .oc26-map-load-button,
    .ref26-contact-link,
    .rd26-contact-link,
    .og26-more,
    .ob26-round-button,
    .ob26-slider-controls button,
    .rd26-dialog button,
    .wp-block-file__button
  ):not(:disabled, [aria-disabled="true"], .disabled, .loading, .wd-disabled):hover {
    background-color: var(--ob26-button-rest-bg);
  }

  .ob26-button-effects.wd :is(.whb-header .ob26-header-cta.btn, .ob26-button):hover::after,
  .ob26-button-effects.wd :is(.op26-button, .pg26-button, .oc26-map-load-button, .ref26-contact-link):hover > .ob26-icon,
  .ob26-button-effects.wd .ob26-product-image > a:hover .ob26-image-link-arrow > .ob26-icon {
    transform: translate(3px, -3px);
  }

  .ob26-button-effects.wd .oc26-contact-form .oc26-submit-wrap:has(> .oc26-submit-button:not(:disabled):hover) > .oc26-text-arrow {
    color: var(--ob26-curtain-ink);
    transform: translate(3px, calc(-50% - 3px));
  }
}

/* Touch feedback lasts only while pressed. Restoring the known native fills
   also cancels the older component :hover colors, without blurring focus,
   intercepting clicks or changing any link's hit area. */

@media (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd :is(
    .whb-header .ob26-header-cta.btn,
    .ob26-button,
    .op26-button,
    .pg26-button,
    .oc26-map-load-button,
    .ref26-contact-link,
    .rd26-contact-link,
    .og26-more,
    .ref26-load-more,
    .ob26-round-button,
    .ob26-slider-controls button,
    .rd26-dialog button,
    .btn:where(:not(.btn-style-link, .wd-skip-links, .ob26-text-link)),
    .vc_btn3,
    .wp-element-button,
    .wp-block-button__link,
    .wp-block-file__button,
    .ob26-bronze-button,
    form input:where([type="submit"], [type="button"], [type="reset"]),
    form button[type="submit"]
  ),
  .ob26-button-effects.wd :is(.ob26-button, .ob26-header-cta)::after,
  .ob26-button-effects.wd :is(.op26-button, .pg26-button, .oc26-map-load-button, .ref26-contact-link) > .ob26-icon,
  .ob26-button-effects.wd .ob26-product-image .ob26-image-link-arrow > .ob26-icon,
  .ob26-button-effects.wd .oc26-submit-wrap > .oc26-text-arrow {
    transition: none;
  }

  .ob26-button-effects.wd :is(
    .whb-header .ob26-header-cta.btn,
    .ob26-button,
    .op26-button,
    .pg26-button,
    .oc26-map-load-button,
    .ref26-contact-link,
    .rd26-contact-link,
    .og26-more,
    .ref26-load-more,
    .ob26-round-button,
    .ob26-slider-controls button,
    .rd26-dialog button,
    .btn:where(:not(.btn-style-link, .wd-skip-links, .ob26-text-link)),
    .vc_btn3,
    .wp-element-button,
    .wp-block-button__link,
    .wp-block-file__button,
    .ob26-bronze-button,
    form input:where([type="submit"], [type="button"], [type="reset"]),
    form button[type="submit"]
  ):not(:active, :focus-visible) {
    background-position: 100% 50%;
  }

  .ob26-button-effects.wd :is(
    .whb-header .ob26-header-cta.btn,
    .ob26-button,
    .op26-button,
    .pg26-button,
    .oc26-contact-form .oc26-submit-button,
    .oc26-map-load-button,
    .ref26-contact-link,
    .rd26-contact-link,
    .og26-more,
    .ob26-round-button,
    .ob26-slider-controls button,
    .rd26-dialog button,
    .wp-block-file__button,
    .ref26-load-more
  ):not(:active, :focus-visible) {
    background-color: var(--ob26-button-rest-bg);
    border-color: var(--ob26-button-rest-border);
    color: var(--ob26-button-rest-color);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ob26-button-effects.wd :is(
    .whb-header .ob26-header-cta.btn,
    .ob26-button,
    .op26-button,
    .pg26-button,
    .oc26-map-load-button,
    .ref26-contact-link,
    .rd26-contact-link,
    .og26-more,
    .ref26-load-more,
    .ob26-round-button,
    .ob26-slider-controls button,
    .rd26-dialog button,
    .btn:where(:not(.btn-style-link, .wd-skip-links, .ob26-text-link)),
    .vc_btn3,
    .wp-element-button,
    .wp-block-button__link,
    .wp-block-file__button,
    .ob26-bronze-button,
    form input:where([type="submit"], [type="button"], [type="reset"]),
    form button[type="submit"]
  ),
  .ob26-button-effects.wd :is(.ob26-button, .ob26-header-cta)::after,
  .ob26-button-effects.wd :is(.op26-button, .pg26-button, .oc26-map-load-button, .ref26-contact-link) > .ob26-icon,
  .ob26-button-effects.wd .ob26-product-image .ob26-image-link-arrow > .ob26-icon,
  .ob26-button-effects.wd .oc26-submit-wrap > .oc26-text-arrow {
    transition: none;
  }
}

/* Approved “Plynulá linka”: bronze draws over the existing underline. */

.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden]))) {
  --ob26-link-active: 0;
  --ob26-link-arrow-x: 6px;
  --ob26-link-arrow-y: 0px;
  --ob26-link-duration: 360ms;
  --ob26-link-ease: cubic-bezier(.22, .68, .25, 1);
  position: relative;
}

.ob26-button-effects.wd :is(.oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden]))) {
  --ob26-link-arrow-x: 4px;
  --ob26-link-arrow-y: -4px;
}

.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden])))[href^="#"] {
  --ob26-link-arrow-x: 0px;
  --ob26-link-arrow-y: 4px;
}

.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden])))::before {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  width: auto;
  height: 1px;
  border: 0;
  background: #b89b77;
  transform: scaleX(var(--ob26-link-active));
  transform-origin: left center;
  transition: transform var(--ob26-link-duration) var(--ob26-link-ease);
  pointer-events: none;
}

.ob26-button-effects.wd .ob26-text-link.btn::after,
.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden]))) > :is(.ob26-icon, .ob26-text-arrow, .oa26-text-arrow, .oc26-text-arrow, :where(span[aria-hidden])) {
  transform: translate(calc(var(--ob26-link-active) * var(--ob26-link-arrow-x)), calc(var(--ob26-link-active) * var(--ob26-link-arrow-y)));
  transition: transform var(--ob26-link-duration) var(--ob26-link-ease);
}

.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden]))):not(:disabled, [aria-disabled="true"], .disabled, .loading):is(:focus-visible, :active) {
  --ob26-link-active: 1;
}

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden]))):not(:disabled, [aria-disabled="true"], .disabled, .loading):hover {
    --ob26-link-active: 1;
  }
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden])))::before,
  .ob26-button-effects.wd .ob26-text-link.btn::after,
  .ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, :where(.pg26-product-copy p > a:has(> span[aria-hidden]))) > :is(.ob26-icon, .ob26-text-arrow, .oa26-text-arrow, .oc26-text-arrow, :where(span[aria-hidden])) {
    transition: none;
  }
}

/* Native product-card actions use the same smooth-line engine without
   changing editable markup, link destinations or the surrounding paragraph. */

.ob26-button-effects.wd .pg26-product-copy p > a:has(> span[aria-hidden]) {
  transition: color 180ms ease;
}

.ob26-button-effects.wd .pg26-product-copy p > a:has(> span[aria-hidden]):is(:focus-visible, :active) {
  color: var(--ob26-brand-bronze-dark);
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd .pg26-product-copy p > a:has(> span[aria-hidden]) {
    transition: none;
  }
}

/* Approved round controls: one travelling fill, bronze by default.
   Portfolio arrows keep their dark fill. No geometry or icon changes. */

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .ob26-contact-big-arrow, .oa26-photo-scroll, .oa26-contact-big-arrow, .ref26-jump, .ob26-product-image .ob26-image-link-arrow, .ob26-project-photo .ob26-image-link-arrow, .ref26-project-arrow, .rd26-jump .ob26-icon, .rd26-related-arrow, .oc26-popup-close, .og26-nav),
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a::after,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]::after {
  background-color: var(--ob26-circle-rest-bg);
  background-image: linear-gradient(102deg, var(--ob26-circle-fill) 49.8%, transparent 50.2%);
  background-size: 240% 100%;
  background-position: var(--ob26-circle-position) 50%;
  background-repeat: no-repeat;
  color: var(--ob26-circle-rest-ink);
  border-color: var(--ob26-circle-rest-border);
  transition: background-position var(--ob26-curtain-duration) var(--ob26-curtain-ease),
    color 180ms ease, border-color 180ms ease;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-slider-controls button, .ob26-hero-scroll, .ob26-contact-big-arrow, .oa26-photo-scroll) {
  --ob26-circle-rest-ink: var(--ob26-brand-paper);
  --ob26-circle-rest-border: #ffffff6d;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ob26-slider-controls .ob26-slider-pause {
  --ob26-circle-rest-border: transparent;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .oa26-contact-big-arrow {
  --ob26-circle-rest-border: #a9a99a;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ref26-jump, .rd26-jump .ob26-icon) {
  --ob26-circle-rest-border: #c9cdc2;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-project-photo .ob26-image-link-arrow, .ref26-project-arrow, .rd26-related-arrow, .oc26-popup-close),
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a::after,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]::after {
  --ob26-circle-rest-bg: var(--ob26-brand-catalog-paper);
  --ob26-circle-rest-border: transparent;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .oc26-popup-close {
  --ob26-circle-rest-border: #d9dbd2;
}

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .og26-nav {
  --ob26-circle-rest-bg: rgba(248, 247, 243, .94);
  --ob26-circle-rest-border: #d5d7ce;
}

/* Keep the established dark portfolio palette, including its photo viewer. */

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-project-photo .ob26-image-link-arrow, .ref26-jump, .ref26-project-arrow, .rd26-jump .ob26-icon, .rd26-related-arrow),
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a::after,
.ob26-button-effects.wd.ob26-project-detail .og26-dialog .og26-nav {
  --ob26-circle-fill: var(--ink, var(--ob26-brand-ink));
  --ob26-circle-hover-ink: var(--paper, var(--ob26-brand-catalog-paper));
  --ob26-circle-rest-ink: var(--ink, var(--ob26-brand-ink));
}

/* The plus is an existing background icon; keep it above the moving fill. */

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]::after {
  --ob26-circle-symbol-size: 22px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23252b25' stroke-width='1.5'/%3E%3C/svg%3E"), linear-gradient(102deg, var(--ob26-circle-fill) 49.8%, transparent 50.2%);
  background-size: var(--ob26-circle-symbol-size) var(--ob26-circle-symbol-size), 240% 100%;
  background-position: center, var(--ob26-circle-position) 50%;
  transition: background-position var(--ob26-curtain-duration) var(--ob26-curtain-ease),
    color 180ms ease, border-color 180ms ease,
    opacity 300ms ease, transform 400ms cubic-bezier(.2, .65, .3, 1);
}

/* Keyboard and press feedback remain available without hover. */

.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .ob26-contact-big-arrow, .oa26-photo-scroll, .oa26-contact-big-arrow, .ref26-jump, .oc26-popup-close, .og26-nav):not(:disabled, [aria-disabled="true"], .disabled, .loading, .wd-disabled):is(:focus-visible, :active),
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ob26-project:has(a:is(:focus-visible, :active)) .ob26-project-photo .ob26-image-link-arrow,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ob26-product-image > a:is(:focus-visible, :active) .ob26-image-link-arrow,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ref26-project-link:is(:focus-visible, :active) .ref26-project-arrow,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-jump:is(:focus-visible, :active) .ob26-icon,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a:is(:focus-visible, :active)::after,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-related-card a:is(:focus-visible, :active) .rd26-related-arrow,
.ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]:is(:focus-visible, :active)::after {
  --ob26-circle-position: 0%;
  color: var(--ob26-circle-hover-ink);
  border-color: var(--ob26-circle-fill);
}

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .ob26-contact-big-arrow, .oa26-photo-scroll, .oa26-contact-big-arrow, .ref26-jump, .oc26-popup-close, .og26-nav):not(:disabled, [aria-disabled="true"], .disabled, .loading, .wd-disabled):hover,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ob26-project:has(a:hover) .ob26-project-photo .ob26-image-link-arrow,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ob26-product-image > a:hover .ob26-image-link-arrow,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .ref26-project-link:hover .ref26-project-arrow,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-jump:hover .ob26-icon,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a:hover::after,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-related-card a:hover .rd26-related-arrow,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]:hover::after {
    --ob26-circle-position: 0%;
    color: var(--ob26-circle-hover-ink);
    border-color: var(--ob26-circle-fill);
  }
}

/* A touch tap must not leave the old component hover fill behind. */

@media (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .ob26-contact-big-arrow, .oa26-photo-scroll, .oa26-contact-big-arrow, .ref26-jump, .ob26-product-image .ob26-image-link-arrow, .ob26-project-photo .ob26-image-link-arrow, .ref26-project-arrow, .rd26-jump .ob26-icon, .rd26-related-arrow, .oc26-popup-close, .og26-nav),
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a::after,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]::after {
    transition: none;
  }

  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]::after {
    --ob26-circle-symbol-size: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) :is(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .ob26-contact-big-arrow, .oa26-photo-scroll, .oa26-contact-big-arrow, .ref26-jump, .ob26-product-image .ob26-image-link-arrow, .ob26-project-photo .ob26-image-link-arrow, .ref26-project-arrow, .rd26-jump .ob26-icon, .rd26-related-arrow, .oc26-popup-close, .og26-nav),
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .rd26-photo a::after,
  .ob26-button-effects.wd :is(.ob26-main, .oc26-popup, .og26-dialog) .pg26-media a.vc_single_image-wrapper[href*="/wp-content/uploads/"]::after {
    transition: none;
  }
}

/* Image actions retain the exact existing paper colour of their page. */

.ob26-button-effects.wd .ob26-main :is(.ob26-product-image .ob26-image-link-arrow, .ob26-project-photo .ob26-image-link-arrow, .ref26-project-arrow, .rd26-related-arrow),
.ob26-button-effects.wd.ob26-project-detail .ob26-main .rd26-photo a::after {
  --ob26-circle-rest-bg: var(--paper, var(--ob26-brand-catalog-paper));
}

/* Deterministic vector symbols: iOS must never choose an emoji font.
   Editable labels, native links and the approved hover fills stay intact. */

.ob26-button-effects.wd :is(.ob26-text-arrow, .oa26-text-arrow, .oc26-text-arrow, .ob26-mega-arrow, .ob26-mega-overview > span[aria-hidden], .pg26-product-copy a > span[aria-hidden], .og26-close > span[aria-hidden], .op26-dialog-close > span[aria-hidden], .rd26-dialog-close > span[aria-hidden]) {
  display: inline-block;
  flex: none;
  width: var(--ob26-symbol-size, 22px);
  height: var(--ob26-symbol-size, 22px);
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  background-color: currentColor;
  -webkit-mask: var(--ob26-symbol, var(--ob26-symbol-ne)) center / contain no-repeat;
  mask: var(--ob26-symbol, var(--ob26-symbol-ne)) center / contain no-repeat;
}

.ob26-button-effects.wd .ob26-mega-arrow {
  --ob26-symbol-size: 21px;
}

.ob26-button-effects.wd .ob26-mega-overview > span {
  --ob26-symbol-size: 20px;
}

.ob26-button-effects.wd .pg26-product-copy h3 > a > span {
  --ob26-symbol-size: 26px;
}

.ob26-button-effects.wd .pg26-product-copy p > a > span {
  --ob26-symbol-size: 20px;
  margin-left: 0;
}

.ob26-button-effects.wd .ob26-contact-big-arrow {
  --ob26-symbol-size: 45px;
}

.ob26-button-effects.wd .oa26-contact-big-arrow {
  --ob26-symbol-size: 60px;
}

.ob26-button-effects.wd :is(.oa26-text-link, .oa26-person-links) {
  --ob26-symbol-size: 20px;
}

.ob26-button-effects.wd .oa26-quick-contact {
  --ob26-symbol-size: 19px;
}

.ob26-button-effects.wd .oc26-popup .oc26-submit-wrap {
  --ob26-symbol-size: 24px;
}

.ob26-button-effects.wd :is(.ob26-hero-scroll, .oa26-photo-scroll, .oa26-text-link[href^="#"], .oc26-text-link[href^="#"]) {
  --ob26-symbol: var(--ob26-symbol-down);
}

.ob26-button-effects.wd .oc26-message-note {
  --ob26-symbol: var(--ob26-symbol-se);
  --ob26-symbol-size: 32px;
}

.ob26-button-effects.wd :is(.og26-close, .op26-dialog-close, .rd26-dialog-close) {
  --ob26-symbol: var(--ob26-symbol-close);
}

/* Telephone actions already use this handset; keep it instead of the default arrow. */

.ob26-button-effects.wd a[href^="tel:"] > span[aria-hidden="true"] {
  --ob26-symbol: var(--ob26-symbol-phone);
  --ob26-symbol-size: 20px;
  -webkit-mask: var(--ob26-symbol-phone) center / contain no-repeat;
  mask: var(--ob26-symbol-phone) center / contain no-repeat;
}

.ob26-button-effects.wd :is(.whb-header .ob26-header-cta.btn, .ob26-button.btn, .ob26-text-link.btn)::after,
.ob26-button-effects.wd.ob26-page .pg26-prose .pg26-document-group a::after {
  content: "";
  display: inline-block;
  flex: none;
  width: 20px;
  height: 20px;
  font-size: 0;
  line-height: 0;
  background-color: currentColor;
  -webkit-mask: var(--ob26-symbol, var(--ob26-symbol-ne)) center / contain no-repeat;
  mask: var(--ob26-symbol, var(--ob26-symbol-ne)) center / contain no-repeat;
}

.ob26-button-effects.wd .ob26-text-link.btn::after {
  --ob26-symbol: var(--ob26-symbol-right);
}

.ob26-button-effects.wd.ob26-page .pg26-prose .pg26-document-group a::after {
  --ob26-symbol: var(--ob26-symbol-down);
}

/* Keep the document-shaped border around its independent vector symbol. */

.ob26-button-effects.wd.ob26-page .pg26-document-icon {
  font-size: 0;
}

.ob26-button-effects.wd.ob26-page .pg26-document-icon::before {
  content: "";
  grid-area: 1 / 1;
  width: 22px;
  height: 22px;
  background: currentColor;
  -webkit-mask: var(--ob26-symbol-down) center / contain no-repeat;
  mask: var(--ob26-symbol-down) center / contain no-repeat;
}

/* Photo arrows have a filled tile: layer the vector above it, never mask the tile. */

.ob26-button-effects.wd .ob26-main .op26-gallery-image::after {
  content: "";
  font-size: 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2019%2019%205M5%205h14v14'%20fill='none'%20stroke='%23242b25'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 23px 23px;
  background-position: center;
  background-repeat: no-repeat;
}

/* Portfolio retains its dark travelling fill and a light symbol when active. */

.ob26-button-effects.wd.ob26-project-detail .ob26-main .rd26-photo a::after {
  --ob26-photo-symbol: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2019%2019%205M5%205h14v14'%20fill='none'%20stroke='%23242b25'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  content: "";
  font-size: 0;
  background-image: var(--ob26-photo-symbol), linear-gradient(102deg, var(--ob26-circle-fill) 49.8%, transparent 50.2%);
  background-size: 23px 23px, 240% 100%;
  background-position: center, var(--ob26-circle-position) 50%;
}

.ob26-button-effects.wd.ob26-project-detail .ob26-main .rd26-photo a:is(:focus-visible, :active)::after {
  --ob26-photo-symbol: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2019%2019%205M5%205h14v14'%20fill='none'%20stroke='%23f8f7f3'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
}

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd.ob26-project-detail .ob26-main .rd26-photo a:hover::after {
    --ob26-photo-symbol: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2019%2019%205M5%205h14v14'%20fill='none'%20stroke='%23f8f7f3'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  }
}

@media (max-width: 1024px) {
  .ob26-button-effects.wd .mobile-nav .ob26-mega-arrow {
    --ob26-symbol-size: 18px;
  }

  .ob26-button-effects.wd .oc26-message-note {
    --ob26-symbol-size: 28px;
  }
}

@media (max-width: 700px) {
  .ob26-button-effects.wd .oa26-contact-big-arrow {
    --ob26-symbol-size: 38px;
  }

  .ob26-button-effects.wd .ob26-main .op26-gallery-image::after {
    background-size: 21px 21px;
  }

  .ob26-button-effects.wd.ob26-project-detail .ob26-main .rd26-photo a::after {
    background-size: 20px 20px, 240% 100%;
  }
}

/* The reference contact CTA shares the existing bronze curtain, preserving
   its own paper colour. Its telephone link gets the approved smooth line. */

.ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone {
  position: relative;
  transition: color 180ms ease;
}

.ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: var(--ob26-curtain-bronze);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 360ms cubic-bezier(.22, .68, .25, 1);
  pointer-events: none;
}

.ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone:is(:focus-visible, :active) {
  color: var(--ob26-curtain-bronze);
}

.ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone:is(:focus-visible, :active)::after {
  transform: scaleX(1);
}

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone:hover {
    color: var(--ob26-curtain-bronze);
  }

  .ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone:hover::after {
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone,
  .ob26-button-effects.wd.ob26-references .ob26-main .ref26-phone::after {
    transition: none;
  }
}

/* Canonical components. Page styles own placement, never button geometry. */

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ob26-button-gap);
  min-width: 0;
  max-width: 100%;
  min-height: var(--ob26-button-height);
  padding: var(--ob26-button-padding-y) var(--ob26-button-padding-x);
  border: 1px solid var(--ob26-button-rest-border);
  border-radius: 0;
  background-color: var(--ob26-button-rest-bg);
  color: var(--ob26-button-rest-color);
  box-shadow: none;
  font-family: var(--font, "Bauer Manrope 2026", Arial, sans-serif);
  font-size: var(--ob26-button-font-size);
  font-weight: 500;
  font-style: normal;
  line-height: 1.5;
  letter-spacing: normal;
  text-align: left;
  text-transform: none;
  text-decoration: none;
  white-space: normal;
  vertical-align: middle;
  cursor: pointer;
}

.ob26-button-effects.wd :is(.ob26-button-white, .ob26-button-light, .op26-button-light, .pg26-button, .rd26-contact-link, .ref26-contact-link, .oc26-map-load-button) {
  --ob26-button-rest-bg: var(--ob26-brand-paper);
  --ob26-button-rest-color: var(--ob26-brand-ink);
}

.ob26-button-effects.wd :is(.ob26-button-outline, .oc26-map-load-button) {
  --ob26-button-rest-border: var(--line, #dedfd8);
}

.ob26-button-effects.wd :is(.ref26-load-more, .og26-more) {
  --ob26-cta-arrow-x: 0px;
  --ob26-cta-arrow-y: 3px;
}

.ob26-button-effects.wd :is(.ob26-round-button, .ob26-slider-controls button, .rd26-dialog button) {
  --ob26-button-rest-bg: transparent;
  --ob26-button-rest-color: var(--ink, var(--ob26-brand-ink));
  --ob26-button-rest-border: var(--line, #dedfd8);
}

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links))[hidden] {
  display: none;
}

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)):is(:disabled, [aria-disabled="true"]) {
  opacity: .65;
  cursor: default;
}

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)):focus-visible {
  outline: 2px solid var(--ob26-curtain-bronze);
  outline-offset: 4px;
}

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)) > :is(.ob26-icon, svg),
.ob26-button-effects.wd :is(.ob26-header-cta.btn, .ob26-button.btn):where(:not(.ob26-text-link))::after {
  flex: none;
  width: var(--ob26-button-icon-size);
  height: var(--ob26-button-icon-size);
  transition: transform var(--ob26-curtain-duration) var(--ob26-curtain-ease);
}

.ob26-button-effects.wd :is(.ob26-header-cta.btn, .ob26-button.btn):where(:not(.ob26-text-link))::after {
  position: static;
  margin: 0;
  border: 0;
  opacity: 1;
}

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)):not(:disabled, [aria-disabled="true"], .loading):is(:focus-visible, :active) > :is(.ob26-icon, svg),
.ob26-button-effects.wd :is(.ob26-header-cta.btn, .ob26-button.btn):where(:not(.ob26-text-link)):is(:focus-visible, :active)::after {
  transform: translate(var(--ob26-cta-arrow-x), var(--ob26-cta-arrow-y));
}

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)):not(:disabled, [aria-disabled="true"], .loading):hover > :is(.ob26-icon, svg),
  .ob26-button-effects.wd :is(.ob26-header-cta.btn, .ob26-button.btn):where(:not(.ob26-text-link)):hover::after {
    transform: translate(var(--ob26-cta-arrow-x), var(--ob26-cta-arrow-y));
  }
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)) > :is(.ob26-icon, svg),
  .ob26-button-effects.wd :is(.ob26-header-cta.btn, .ob26-button.btn):where(:not(.ob26-text-link))::after {
    transition: none;
  }
}

/* The same submit component works in the page form and the shared dialog. */

.ob26-button-effects.wd .oc26-submit-wrap {
  position: relative;
  display: inline-flex;
}

.ob26-button-effects.wd :is(a, button, input):is(.whb-header .ob26-header-cta.btn, .ob26-button, .op26-button, .pg26-button, .rd26-contact-link, .ref26-contact-link, .ref26-load-more, .oc26-map-load-button, .oc26-submit-button, .og26-more, .btn, .vc_btn3, .wp-element-button, .wp-block-button__link, .wp-block-file__button, .ob26-bronze-button, form input:where([type="submit"], [type="button"], [type="reset"]), form button[type="submit"]):where(:not(.ob26-text-link, .btn-style-link, .wd-skip-links)).oc26-submit-button {
  padding-inline-end: calc(var(--ob26-button-padding-x) + var(--ob26-button-icon-size) + var(--ob26-button-gap));
}

.ob26-button-effects.wd .oc26-submit-wrap > .oc26-text-arrow {
  position: absolute;
  right: var(--ob26-button-padding-x);
  top: 50%;
  transform: translateY(-50%);
  width: var(--ob26-button-icon-size);
  height: var(--ob26-button-icon-size);
  color: var(--ob26-button-rest-color);
  pointer-events: none;
}

.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, .pg26-product-copy p > a:has(> span[aria-hidden])) {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ob26-button-gap);
  min-height: 44px;
  padding: 9px 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ob26-text-link-color, inherit);
  font: 500 12px/1.5 var(--font, "Bauer Manrope 2026", Arial, sans-serif);
  text-decoration: none;
  text-transform: none;
  white-space: normal;
}

.ob26-button-effects.wd :is(.ob26-text-link-light, .oa26-text-link-light, .oc26-text-link-light) {
  --ob26-text-link-color: var(--paper, var(--ob26-brand-paper));
}

.ob26-button-effects.wd :is(.ob26-text-link, .oa26-text-link, .oc26-text-link, .pg26-product-copy p > a:has(> span[aria-hidden])) > :is(.ob26-icon, .ob26-text-arrow, .oa26-text-arrow, .oc26-text-arrow, span[aria-hidden]) {
  width: var(--ob26-button-icon-size);
  height: var(--ob26-button-icon-size);
  --ob26-symbol-size: var(--ob26-button-icon-size);
  margin-left: 0;
}

/* Icon controls share dimensions; palette stays with the existing fill engine. */

.ob26-button-effects.wd :where(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .oa26-photo-scroll, .ob26-contact-big-arrow, .oa26-contact-big-arrow, .ref26-jump, .rd26-jump .ob26-icon, .ob26-image-link-arrow, .ref26-project-arrow, .rd26-related-arrow, .oc26-popup-close, .og26-nav) {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  flex: none;
  width: var(--ob26-control-size);
  min-width: var(--ob26-control-size);
  height: var(--ob26-control-size);
  min-height: var(--ob26-control-size);
  padding: 0;
  border: 1px solid var(--ob26-circle-rest-border, #c7c9c0);
  border-radius: 50%;
  background-color: var(--ob26-circle-rest-bg, transparent);
  color: var(--ob26-circle-rest-ink, var(--ob26-brand-ink));
  box-shadow: none;
  font: 500 12px/1.5 var(--font, "Bauer Manrope 2026", Arial, sans-serif);
  cursor: pointer;
}

.ob26-button-effects.wd :where(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .oa26-photo-scroll, .ob26-contact-big-arrow, .oa26-contact-big-arrow, .ref26-jump, .rd26-jump .ob26-icon, .ob26-image-link-arrow, .ref26-project-arrow, .rd26-related-arrow, .oc26-popup-close, .og26-nav)[hidden] {
  display: none;
}

.ob26-button-effects.wd :where(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .oa26-photo-scroll, .ob26-contact-big-arrow, .oa26-contact-big-arrow, .ref26-jump, .rd26-jump .ob26-icon, .ob26-image-link-arrow, .ref26-project-arrow, .rd26-related-arrow, .oc26-popup-close, .og26-nav):disabled {
  opacity: .35;
  cursor: default;
}

.ob26-button-effects.wd :where(.ob26-round-button, .ob26-slider-controls button, .ob26-hero-scroll, .oa26-photo-scroll, .ob26-contact-big-arrow, .oa26-contact-big-arrow, .ref26-jump, .rd26-jump .ob26-icon, .ob26-image-link-arrow, .ref26-project-arrow, .rd26-related-arrow, .oc26-popup-close, .og26-nav) > :is(.ob26-icon, svg, .ob26-text-arrow, .oa26-text-arrow) {
  flex: none;
  width: var(--ob26-control-icon-size);
  height: var(--ob26-control-icon-size);
  --ob26-symbol-size: var(--ob26-control-icon-size);
}

.ob26-button-effects.wd :is(.ob26-contact-big-arrow, .oa26-contact-big-arrow) {
  --ob26-control-size: 100px;
  --ob26-control-icon-size: 40px;
}

.ob26-button-effects.wd :is(.ob26-product-image .ob26-image-link-arrow) {
  border-radius: 0;
}

.ob26-button-effects.wd .rd26-jump .ob26-icon {
  padding: 10px;
}

.ob26-button-effects.wd :is(.og26-close, .rd26-dialog button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 44px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line, #dedfd8);
  border-radius: 0;
  background-color: var(--paper, var(--ob26-brand-paper));
  color: var(--ink, var(--ob26-brand-ink));
  box-shadow: none;
  font: 500 12px/1.5 var(--font, "Bauer Manrope 2026", Arial, sans-serif);
  cursor: pointer;
}

.ob26-button-effects.wd .og26-close > span {
  --ob26-symbol-size: 20px;
}

/* A photo affordance uses the same 44px icon component and bronze fill. */

.ob26-button-effects.wd .op26-gallery-image::after {
  position: absolute;
  right: 16px;
  bottom: 16px;
  content: "";
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 0;
  background-color: var(--paper, var(--ob26-brand-paper));
  background-image: var(--ob26-symbol-ne), linear-gradient(102deg, var(--ob26-curtain-bronze) 49.8%, transparent 50.2%);
  background-size: 20px 20px, 240% 100%;
  background-position: center, var(--ob26-photo-position, 100%) 50%;
  background-repeat: no-repeat;
  transition: background-position var(--ob26-curtain-duration) var(--ob26-curtain-ease);
  pointer-events: none;
}

.ob26-button-effects.wd .op26-gallery-image:has(a:is(:focus-visible, :active))::after {
  --ob26-photo-position: 0%;
}

@media (hover: hover) and (pointer: fine) {
  .ob26-button-effects.wd .op26-gallery-image:hover::after {
    --ob26-photo-position: 0%;
  }
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .ob26-button-effects.wd .op26-gallery-image::after {
    transition: none;
  }
}

@media (max-width: 760px) {
  .ob26-button-effects.wd {
    --ob26-button-height: 48px;
    --ob26-button-padding-y: 13px;
    --ob26-button-padding-x: 18px;
    --ob26-button-gap: 24px;
  }

  .ob26-button-effects.wd .oc26-submit-wrap {
    display: block;
    width: 100%;
  }

  .ob26-button-effects.wd :is(.ob26-contact-big-arrow, .oa26-contact-big-arrow) {
    --ob26-control-size: 64px;
    --ob26-control-icon-size: 32px;
  }
}

.ob26-button-effects.wd .ob26-slider-controls button {
  --ob26-button-rest-color: var(--ob26-brand-paper);
  --ob26-button-rest-border: #ffffff6d;
}
