.elementor-kit-4{--e-global-color-primary:#2F7386;--e-global-color-secondary:#D67F48;--e-global-color-text:#201E1D;--e-global-color-accent:#245C6C;--e-global-color-wcream:#F5EAD8;--e-global-color-wsand:#EBDDC5;--e-global-color-wraise:#FDF7EC;--e-global-color-wbl900:#122D37;--e-global-color-wbl800:#1A4351;--e-global-color-wbl500:#3F8B9D;--e-global-color-wbl300:#A4D0DA;--e-global-color-wbl100:#E9F4F6;--e-global-color-wbltnt:#2F73861A;--e-global-color-wcl800:#643312;--e-global-color-wcl700:#8C491A;--e-global-color-wcl300:#FFC6A5;--e-global-color-wcl100:#FFF2EB;--e-global-color-wnt800:#3C3934;--e-global-color-wmuted:#57524A;--e-global-color-wnt300:#DED5C4;--e-global-color-wnt200:#EFE8DB;--e-global-color-wondrk:#FAF6EE;--e-global-color-wdivid:#201E1D29;--e-global-color-wwhite:#FFFFFF;--e-global-color-wwht55:#FFFFFF8C;--e-global-color-wwht14:#FFFFFF24;--e-global-color-wcl200:#FFE1D0;--e-global-color-wcl600:#B2622D;--e-global-color-wbl200:#CFE7EC;--e-global-color-wcoral:#FB784C;--e-global-color-wgold:#FBAA28;--e-global-color-wcoink:#A8461A;--e-global-color-wabdeep:#0F2A45;--e-global-color-wabdp2:#173D5F;--e-global-color-wabpop:#21A9FA;--e-global-color-wabsoft:#B5DEFC;--e-global-color-wabink:#106AA3;--e-global-color-wgadeep:#2C1A45;--e-global-color-wgadp2:#40275F;--e-global-color-wgapop:#A161E7;--e-global-color-wgasoft:#DCC6F7;--e-global-color-wcyan:#11D5E5;--e-global-color-wshpop:#E54973;--e-global-color-wshsoft:#F7BCCC;--e-global-color-wshink:#B02A55;--e-global-color-wwkpop:#04ADC1;--e-global-color-wwksoft:#A4E4EC;--e-global-color-wrust:#C85816;--e-global-color-wwkink:#0B6A76;--e-global-color-wevdeep:#4A1F0C;--e-global-color-wgaink:#6E3CAD;--e-global-color-wshdeep:#45162B;--e-global-color-wshdp2:#5E2140;--e-global-color-w404:#885E41;--e-global-typography-primary-font-family:"Caprasimo";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Figtree";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Figtree";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.55em;--e-global-typography-accent-font-family:"Caprasimo";--e-global-typography-accent-font-size:13px;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.55em;--e-global-typography-accent-letter-spacing:0.1em;--e-global-typography-whero-font-family:"Caprasimo";--e-global-typography-whero-font-size:76px;--e-global-typography-whero-font-weight:400;--e-global-typography-whero-line-height:1.04em;--e-global-typography-wh1-font-family:"Caprasimo";--e-global-typography-wh1-font-size:56px;--e-global-typography-wh1-font-weight:400;--e-global-typography-wh1-line-height:1.04em;--e-global-typography-wh2-font-family:"Caprasimo";--e-global-typography-wh2-font-size:38px;--e-global-typography-wh2-font-weight:400;--e-global-typography-wh2-line-height:1.15em;--e-global-typography-wh3-font-family:"Caprasimo";--e-global-typography-wh3-font-size:28px;--e-global-typography-wh3-font-weight:400;--e-global-typography-wh3-line-height:1.15em;--e-global-typography-wh4-font-family:"Caprasimo";--e-global-typography-wh4-font-size:22px;--e-global-typography-wh4-font-weight:400;--e-global-typography-wh4-line-height:1.15em;--e-global-typography-wlead-font-family:"Figtree";--e-global-typography-wlead-font-size:19px;--e-global-typography-wlead-font-weight:400;--e-global-typography-wlead-line-height:1.55em;--e-global-typography-wtagln-font-family:"Figtree";--e-global-typography-wtagln-font-size:16px;--e-global-typography-wtagln-font-weight:600;--e-global-typography-wtagln-line-height:1.55em;--e-global-typography-wbold-font-family:"Figtree";--e-global-typography-wbold-font-size:16px;--e-global-typography-wbold-font-weight:700;--e-global-typography-wbold-line-height:1.55em;--e-global-typography-wsmall-font-family:"Figtree";--e-global-typography-wsmall-font-size:14px;--e-global-typography-wsmall-font-weight:400;--e-global-typography-wsmall-line-height:1.55em;--e-global-typography-wnav-font-family:"Figtree";--e-global-typography-wnav-font-size:14px;--e-global-typography-wnav-font-weight:600;--e-global-typography-wnav-line-height:1.55em;--e-global-typography-wbtnlg-font-family:"Figtree";--e-global-typography-wbtnlg-font-size:16px;--e-global-typography-wbtnlg-font-weight:600;--e-global-typography-wbtnlg-line-height:1.55em;--e-global-typography-wtag-font-family:"Figtree";--e-global-typography-wtag-font-size:12px;--e-global-typography-wtag-font-weight:600;--e-global-typography-wtag-line-height:1.55em;--e-global-typography-wtag-letter-spacing:0.02em;--e-global-typography-wdow-font-family:"Caprasimo";--e-global-typography-wdow-font-size:12px;--e-global-typography-wdow-font-weight:400;--e-global-typography-wdow-text-transform:uppercase;--e-global-typography-wdow-line-height:1.55em;--e-global-typography-wdow-letter-spacing:0.06em;--e-global-typography-wday-font-family:"Caprasimo";--e-global-typography-wday-font-size:26px;--e-global-typography-wday-font-weight:400;--e-global-typography-wday-line-height:1em;--e-global-typography-wnum-font-family:"Caprasimo";--e-global-typography-wnum-font-size:46px;--e-global-typography-wnum-font-weight:400;--e-global-typography-wnum-line-height:1em;background-color:var( --e-global-color-wcream );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-wnav-font-family ), Sans-serif;font-size:var( --e-global-typography-wnav-font-size );font-weight:var( --e-global-typography-wnav-font-weight );line-height:var( --e-global-typography-wnav-line-height );color:var( --e-global-color-wwhite );border-radius:999px 999px 999px 999px;padding:10px 20px 10px 20px;}.elementor-kit-4 button:hover,.elementor-kit-4 button:focus,.elementor-kit-4 input[type="button"]:hover,.elementor-kit-4 input[type="button"]:focus,.elementor-kit-4 input[type="submit"]:hover,.elementor-kit-4 input[type="submit"]:focus,.elementor-kit-4 .elementor-button:hover,.elementor-kit-4 .elementor-button:focus{background-color:var( --e-global-color-wbl500 );color:var( --e-global-color-wwhite );}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4 a{color:var( --e-global-color-accent );}.elementor-kit-4 a:hover{color:var( --e-global-color-primary );}.elementor-kit-4 h1{color:var( --e-global-color-text );font-family:var( --e-global-typography-wh1-font-family ), Sans-serif;font-size:var( --e-global-typography-wh1-font-size );font-weight:var( --e-global-typography-wh1-font-weight );line-height:var( --e-global-typography-wh1-line-height );}.elementor-kit-4 h2{color:var( --e-global-color-text );font-family:var( --e-global-typography-wh2-font-family ), Sans-serif;font-size:var( --e-global-typography-wh2-font-size );font-weight:var( --e-global-typography-wh2-font-weight );line-height:var( --e-global-typography-wh2-line-height );}.elementor-kit-4 h3{color:var( --e-global-color-text );font-family:var( --e-global-typography-wh3-font-family ), Sans-serif;font-size:var( --e-global-typography-wh3-font-size );font-weight:var( --e-global-typography-wh3-font-weight );line-height:var( --e-global-typography-wh3-line-height );}.elementor-kit-4 h4{color:var( --e-global-color-text );font-family:var( --e-global-typography-wh4-font-family ), Sans-serif;font-size:var( --e-global-typography-wh4-font-size );font-weight:var( --e-global-typography-wh4-font-weight );line-height:var( --e-global-typography-wh4-line-height );}.elementor-kit-4 label{color:var( --e-global-color-text );font-family:var( --e-global-typography-wnav-font-family ), Sans-serif;font-size:var( --e-global-typography-wnav-font-size );font-weight:var( --e-global-typography-wnav-font-weight );line-height:var( --e-global-typography-wnav-line-height );}.elementor-kit-4 input:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea,.elementor-kit-4 .elementor-field-textual{font-family:var( --e-global-typography-wsmall-font-family ), Sans-serif;font-size:var( --e-global-typography-wsmall-font-size );font-weight:var( --e-global-typography-wsmall-font-weight );line-height:var( --e-global-typography-wsmall-line-height );color:var( --e-global-color-text );background-color:var( --e-global-color-wraise );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-wdivid );border-radius:999px 999px 999px 999px;padding:10px 16px 10px 16px;}.elementor-kit-4 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea:focus,.elementor-kit-4 .elementor-field-textual:focus{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-4{--e-global-typography-whero-font-size:60px;--e-global-typography-wh1-font-size:46px;--e-global-typography-wh2-font-size:34px;--e-global-typography-wh3-font-size:26px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-4 h1{font-size:var( --e-global-typography-wh1-font-size );line-height:var( --e-global-typography-wh1-line-height );}.elementor-kit-4 h2{font-size:var( --e-global-typography-wh2-font-size );line-height:var( --e-global-typography-wh2-line-height );}.elementor-kit-4 h3{font-size:var( --e-global-typography-wh3-font-size );line-height:var( --e-global-typography-wh3-line-height );}.elementor-kit-4 h4{font-size:var( --e-global-typography-wh4-font-size );line-height:var( --e-global-typography-wh4-line-height );}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{font-size:var( --e-global-typography-wnav-font-size );line-height:var( --e-global-typography-wnav-line-height );}.elementor-kit-4 label{font-size:var( --e-global-typography-wnav-font-size );line-height:var( --e-global-typography-wnav-line-height );}.elementor-kit-4 input:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea,.elementor-kit-4 .elementor-field-textual{font-size:var( --e-global-typography-wsmall-font-size );line-height:var( --e-global-typography-wsmall-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-4{--e-global-typography-whero-font-size:44px;--e-global-typography-wh1-font-size:38px;--e-global-typography-wh2-font-size:30px;--e-global-typography-wh3-font-size:24px;--e-global-typography-wh4-font-size:20px;--e-global-typography-wlead-font-size:17px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-4 h1{font-size:var( --e-global-typography-wh1-font-size );line-height:var( --e-global-typography-wh1-line-height );}.elementor-kit-4 h2{font-size:var( --e-global-typography-wh2-font-size );line-height:var( --e-global-typography-wh2-line-height );}.elementor-kit-4 h3{font-size:var( --e-global-typography-wh3-font-size );line-height:var( --e-global-typography-wh3-line-height );}.elementor-kit-4 h4{font-size:var( --e-global-typography-wh4-font-size );line-height:var( --e-global-typography-wh4-line-height );}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{font-size:var( --e-global-typography-wnav-font-size );line-height:var( --e-global-typography-wnav-line-height );}.elementor-kit-4 label{font-size:var( --e-global-typography-wnav-font-size );line-height:var( --e-global-typography-wnav-line-height );}.elementor-kit-4 input:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea,.elementor-kit-4 .elementor-field-textual{font-size:var( --e-global-typography-wsmall-font-size );line-height:var( --e-global-typography-wsmall-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* WUB-DECOR-START */
/* WUB decorative layer — from the design system's styles.css.
   Applied through each element's CSS Classes field in Elementor.
   Colours/sizes still come from the global settings; this file is motion,
   shape and photo aspect ratios only. */

/* Photo slots: the image keeps the design's aspect ratio at any width. */
.wub-ar-11 img, .wub-ar-34 img, .wub-ar-43 img, .wub-ar-45 img,
.wub-ar-169 img, .wub-ar-1610 img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wub-ar-11 img { aspect-ratio: 1/1; }
.wub-ar-34 img { aspect-ratio: 3/4; }
.wub-ar-43 img { aspect-ratio: 4/3; }
.wub-ar-45 img { aspect-ratio: 4/5; }
.wub-ar-169 img { aspect-ratio: 16/9; }
.wub-ar-1610 img { aspect-ratio: 16/10; }

/* Decorative soft shapes. Sit behind content; never carry meaning. */
.wub-blob { pointer-events: none; border-radius: 50%; }
.wub-blob--squish { border-radius: 58% 42% 47% 53% / 52% 46% 54% 48%; }
.wub-op-35 { opacity: .35; } .wub-op-40 { opacity: .4; } .wub-op-45 { opacity: .45; }
.wub-op-50 { opacity: .5; } .wub-op-55 { opacity: .55; } .wub-op-60 { opacity: .6; }
.wub-op-70 { opacity: .7; }

.wub-float { animation: wub-float 9s cubic-bezier(.32,.72,.28,1) infinite; }
.wub-float--slow { animation-duration: 14s; }
.wub-float--delay { animation-delay: -4s; }
@keyframes wub-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -16px, 0); }
}

/* Tilted tiles. Straighten on hover so the page feels alive under the cursor. */
.wub-tilt img { transition: transform .2s cubic-bezier(.32,.72,.28,1); }
.wub-tilt--a img { transform: rotate(-2.5deg); }
.wub-tilt--b img { transform: rotate(2deg); }
.wub-tilt--c img { transform: rotate(-1.25deg); }
@media (hover: hover) and (pointer: fine) { .wub-tilt:hover img { transform: rotate(0deg) scale(1.015); } } /* zoom only with a mouse – on phones a swipe set it off */

/* Blob-cropped photo (the portrait on About and Gallery). */
.wub-photo--blob img { border-radius: 58% 42% 47% 53% / 52% 46% 54% 48%; }

/* Doors: a tall photo tile with a label sitting in a gradient at its foot. */
.wub-door { position: relative; overflow: hidden; aspect-ratio: 3/4; transition: transform .2s cubic-bezier(.32,.72,.28,1); }
.wub-door:hover { transform: translateY(-8px); }
.wub-door__img, .wub-door__img .elementor-widget-container, .wub-door__img img { position: absolute; inset: 0; height: 100%; width: 100%; }
.wub-door__img img { object-fit: cover; }

/* Running band of the studio's own phrases. */
.wub-marquee { overflow: hidden; display: flex; }
.wub-marquee__track {
  display: flex; flex: none; gap: 35px; padding-right: 35px;
  animation: wub-marquee 34s linear infinite;
}
.wub-marquee__item {
  font-family: "Caprasimo", Georgia, serif; font-size: 28px; white-space: nowrap;
  display: flex; align-items: center; gap: 35px;
  line-height: 1.55;
}
.wub-marquee__item::after { content: "●"; font-size: 0.4em; opacity: 0.55; }
@keyframes wub-marquee { to { transform: translateX(-100%); } }

/* Gallery parallax columns (the drift itself is the Custom Code snippet). */
.wub-par__col { will-change: transform; }
@media (max-width: 900px) { .wub-par__col { transform: none !important; } }
@media (prefers-reduced-motion: reduce) { .wub-par__col { transform: none !important; } }

/* A curved edge between two colour bands. */
.wub-curve { display: block; width: 100%; height: 56px; }

@media (max-width: 900px) {
  .wub-door { aspect-ratio: 16/9; }
  .wub-tilt--a img, .wub-tilt--b img, .wub-tilt--c img { transform: none; }
  .wub-marquee__item { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .wub-float, .wub-marquee__track { animation: none; }
}

/* Textareas keep a soft corner rather than the pill used by single-line inputs.
   !important is deliberate: the form widget's own field radius is five classes
   deep, so a plain .elementor-kit-4 cannot reach it. */
textarea.elementor-field-textual { border-radius: 12px !important; }

/* Sessions HQ booking form follows the site's globals (its own tokens are CSS vars). */
.wpsess-booking {
  --wpsess-accent: var(--e-global-color-primary);
  --wpsess-accent-hover: var(--e-global-color-wbl500);
  --wpsess-accent-text: var(--e-global-color-wwhite);
  --wpsess-muted: var(--e-global-color-wmuted);
  --wpsess-border: var(--e-global-color-wdivid);
}

/* The class row is one loop template used on a light band and a dark one.
   Elementor does not emit heading colour rules inside a loop template, so the
   row's two fixed colours are set here — still through the globals. */
.wub-chip .elementor-widget .elementor-heading-title { color: var(--e-global-color-wbl800); }
.wpsess-row .wub-sub .elementor-heading-title { color: var(--e-global-color-wmuted); }

.wub-on-dark .elementor-heading-title { color: var(--e-global-color-wondrk); }
.wub-on-dark .wpsess-row .wub-sub.elementor-widget .elementor-heading-title { color: var(--e-global-color-wnt300); }
.wub-on-dark .wub-chip .elementor-widget .elementor-heading-title { color: var(--e-global-color-wbl800); }
.wub-on-dark .wpsess-row { border-top-color: var(--e-global-color-wwht14); }
.wub-on-dark .wpsess-booking { --wpsess-muted: var(--e-global-color-wnt300); --wpsess-border: var(--e-global-color-wwht14); }

/* Clay bands (Workshops #upcoming, Shop #gear). The date chip and the booking
   form both default to blue, which fights the clay, so they take the clay tints
   here. !important on the chip because Elementor's own background rule is more
   specific than anything this file can reach. */
.wub-on-clay .wub-chip { background-color: var(--e-global-color-wcl100) !important; }
.wub-on-clay .wpsess-row .wub-chip .elementor-widget .elementor-heading-title { color: var(--e-global-color-wcl800); }
.wub-on-clay .wpsess-row { border-top-color: var(--e-global-color-wwht14); }
.wub-on-clay .wpsess-row .wub-sub.elementor-widget .elementor-heading-title { color: var(--e-global-color-wcl100); }
.wub-on-clay .wpsess-booking {
  --wpsess-accent: var(--e-global-color-wondrk);
  --wpsess-accent-text: var(--e-global-color-wcl700);
  --wpsess-accent-hover: var(--e-global-color-wwhite);
  --wpsess-muted: var(--e-global-color-wcl100);
  --wpsess-border: var(--e-global-color-wwht55);
}

/* The booking controls are <button>s, so the kit's global button style paints
   them. Hand them back to the plugin's own tokens, which each band then sets. */
.wpsess-booking .wpsess-btn { background-color: var(--wpsess-accent); color: var(--wpsess-accent-text); }
.wpsess-booking .wpsess-btn:hover:not(:disabled) { background-color: var(--wpsess-accent-hover); color: var(--wpsess-accent-text); }
.wpsess-booking .wpsess-stepper__btn { background-color: transparent; color: inherit; }
.wpsess-booking .wpsess-stepper__btn:hover:not(:disabled) { background-color: color-mix(in srgb, var(--wpsess-accent) 14%, transparent); }

/* ===== Gallery (WP Filter HQ) =====
   Filter HQ's card is thumbnail + title + buttons and its stylesheet marks
   nearly every rule !important, so these overrides must do the same to win.
   The design wants bare photo tiles and pill filters. */

/* Filters as pills. The checkbox stays in the DOM for keyboard and screen
   readers; only its box is hidden, and the pill itself shows the state. */
.wub-gallery .wpfhq-filter-body { display: flex !important; flex-wrap: wrap; gap: 13px 26px; justify-content: center; align-items: center; }
.wub-gallery .wpfhq-filter-section { display: flex !important; flex-wrap: wrap; align-items: center; gap: 9px; margin: 0 !important; }
.wub-gallery .wpfhq-filter-heading {
  font-family: var(--e-global-typography-accent-font-family), Georgia, serif !important;
  font-size: var(--e-global-typography-accent-font-size) !important;
  letter-spacing: var(--e-global-typography-accent-letter-spacing) !important;
  text-transform: uppercase !important; color: var(--e-global-color-accent) !important;
  margin: 0 !important;
}
.wub-gallery .wpfhq-filter-option {
  display: inline-flex !important; align-items: center; gap: 0 !important; white-space: nowrap;
  border: 1px solid var(--e-global-color-primary) !important; border-radius: 999px !important;
  padding: 7px 16px !important; margin: 0 !important; cursor: pointer;
  font-family: var(--e-global-typography-wnav-font-family), sans-serif !important;
  font-size: var(--e-global-typography-wnav-font-size) !important;
  font-weight: var(--e-global-typography-wnav-font-weight) !important;
  color: var(--e-global-color-accent) !important;
  transition: background .12s cubic-bezier(.32,.72,.28,1), color .12s cubic-bezier(.32,.72,.28,1);
}
.wub-gallery .wpfhq-filter-option input { position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; }
.wub-gallery .wpfhq-filter-option .wpfhq-custom-input { display: none !important; }
.wub-gallery .wpfhq-filter-option:hover { background: var(--e-global-color-wbltnt) !important; }
.wub-gallery .wpfhq-filter-option:has(input:checked) { background: var(--e-global-color-primary) !important; color: #fff !important; }
.wub-gallery .wpfhq-filter-option:has(input:focus-visible) { outline: 2px solid var(--e-global-color-wbl500); outline-offset: 2px; }
.wub-gallery .wpfhq-mobile-toggle { display: none !important; }

/* Tiles: the photo only. */
.wub-gallery .wpfhq-cards { align-items: start; }
.wub-gallery .wpfhq-card {
  background: transparent !important; border: 0 !important; overflow: visible !important;
  padding: 0 !important; margin-bottom: 0 !important;
}
.wub-gallery .wpfhq-card:hover { box-shadow: none !important; }
.wub-gallery .wpfhq-card-body { display: none !important; }
.wub-gallery .wpfhq-card-img { background: transparent !important; overflow: visible !important; }
.wub-gallery .wpfhq-card-img img {
  border-radius: 26px !important;
  box-shadow: 0 4px 12px rgba(74, 58, 34, .14);
  filter: saturate(.82) contrast(.94);
  transition: none !important;
}
/* The design's mix of tile shapes, and its scattered stagger and tilts. */
.wub-gallery .wpfhq-card:nth-child(3n+1) .wpfhq-card-img { aspect-ratio: 3/4 !important; }
.wub-gallery .wpfhq-card:nth-child(3n+2) .wpfhq-card-img { aspect-ratio: 1/1 !important; }
.wub-gallery .wpfhq-card:nth-child(3n+3) .wpfhq-card-img { aspect-ratio: 4/5 !important; }
.wub-gallery .wpfhq-card:nth-child(3n+1) .wpfhq-card-img img { transform: rotate(-2.5deg); }
.wub-gallery .wpfhq-card:nth-child(3n+2) .wpfhq-card-img img { transform: rotate(2deg); }
.wub-gallery .wpfhq-card:nth-child(3n+3) .wpfhq-card-img img { transform: rotate(-1.25deg); }
/* WUB-GALLERY-SAFARI: a photo's own size must never size its tile. The tiles let their content overflow (for the tilt shadows), and Safari then won't make a box smaller than the photo inside – so on iPhones each photo pushed its column wider than the screen, and every photo that loaded while scrolling made them grow again. Fixed 2026-10-30. */ .wub-gallery .wpfhq-card { min-width: 0 !important; } .wub-gallery .wpfhq-card-img { min-width: 0 !important; min-height: 0 !important; } .wub-gallery .wpfhq-card-img > .wpfhq-card-link { position: absolute !important; inset: 0 !important; }
/* Gallery photos never zoom – tap opens the lightbox (her call 2026-10-30). Filter HQ's own hover zoom loses to the tilt rules above and to transform:none on phones. */
.wub-gallery .wpfhq-card:nth-child(3n+2) { margin-top: 35px; }
@media (max-width: 900px) {
  .wub-gallery .wpfhq-card { margin-top: 0 !important; }
  .wub-gallery .wpfhq-card-img img { transform: none !important; }
  /* Filter HQ collapses its filters behind a toggle on small screens (max-height:0,
     opened by a class). The pills are small enough to stay visible, so the drawer
     is held open and the toggle stays hidden. */
  .wub-gallery .wpfhq-filter-body {
    display: flex !important; justify-content: flex-start;
    max-height: none !important; overflow: visible !important;
  }
}
/* WUB-DECOR-END */

/* Booking pop-up (WP Events HQ). It opens over the page on the light ground,
   whatever band the row sits in, so it maps the plugin's tokens to the globals here. */
.wpsess-be,
.wpsess-cal,
.wpsess-pkg,
.wpsess-pkg-cards,
.wpsess-modal,
.wpsess-confirm,
.wpsess-mine,
.wpsess-enquiry,
.wpsess-quote {
  --wpsess-warm: var(--e-global-color-wcl700);
  --wpsess-bright: var(--e-global-color-secondary);
  --wpsess-warm-hover: var(--e-global-color-wcl600);
  --wpsess-warm-blob: var(--e-global-color-wcl600);
  --wpsess-on-warm: var(--e-global-color-wcl100);
  --wpsess-on-warm-ink: var(--e-global-color-wcl200);
  --wpsess-info-bg: var(--e-global-color-wnt200);
  --wpsess-info-text: var(--e-global-color-wnt800);
  --wpsess-raised: var(--e-global-color-wraise);
  --wpsess-card: var(--e-global-color-wsand);
  --wpsess-hot: var(--e-global-color-wcl700);
  --wpsess-dark: var(--e-global-color-wbl800);
  --wpsess-on-dark-muted: var(--e-global-color-wnt200);
  --wpsess-code: var(--e-global-color-wcl300);
  --wpsess-deep: var(--e-global-color-wbl900);
  --wpsess-on-deep: var(--e-global-color-wondrk);
  --wpsess-on-deep-ink: var(--e-global-color-wbl300);
  --wpsess-deep-blob: color-mix(in srgb, var(--e-global-color-wbl500) 35%, transparent);
  --wpsess-accent: var(--e-global-color-primary);
  --wpsess-accent-hover: var(--e-global-color-wbl500);
  --wpsess-accent-text: var(--e-global-color-wwhite);
  --wpsess-ink: var(--e-global-color-accent);
  --wpsess-tint: var(--e-global-color-wbl100);
  --wpsess-text: var(--e-global-color-text);
  --wpsess-muted: var(--e-global-color-wmuted);
  --wpsess-border: var(--e-global-color-wdivid);
  --wpsess-surface: var(--e-global-color-wraise);
  --wpsess-field: var(--e-global-color-wraise);
  --wpsess-chip: var(--e-global-color-wnt200);
  --wpsess-seat: var(--e-global-color-wnt300);
  --wpsess-warn-bg: var(--e-global-color-wcl100);
  --wpsess-warn-line: var(--e-global-color-wcl300);
  --wpsess-warn-text: var(--e-global-color-wcl800);
  --wpsess-ok-bg: var(--e-global-color-wbl100);
  --wpsess-ok-line: var(--e-global-color-wbl300);
  --wpsess-ok-text: var(--e-global-color-wbl800);
  --wpsess-backdrop: color-mix(in srgb, var(--e-global-color-wbl900) 55%, transparent);
  --wpsess-display: var(--e-global-typography-primary-font-family), Georgia, serif;
}


/* Featured events: the second card tilts the other way, like the static pair did. */
.wub-featured .e-loop-item:nth-child(even) .wub-tilt--a img { transform: rotate(2deg); }
@media (hover: hover) and (pointer: fine) { .wub-featured .e-loop-item .wub-tilt:hover img { transform: rotate(0deg) scale(1.015); } } /* zoom only with a mouse – on phones a swipe set it off */
@media (prefers-reduced-motion: reduce) { .wub-featured .e-loop-item .wub-tilt img { transform: none; } }


/* Gallery – For sale / Sold labels on the photo (from mu-plugin wub-artworks.php).
   Pass clicks through to the photo underneath. For sale = Cream + Blue 700 text (6:1); Sold = clay with dark text (white on clay is only 3:1). */
.wub-gallery .wub-piece-tag {
  position: absolute; left: 16px; bottom: 16px; z-index: 2; pointer-events: none;
  padding: 6px 14px; border-radius: 999px; white-space: nowrap; line-height: 1.2;
  background: var(--e-global-color-wcream); color: var(--e-global-color-accent);
  font-family: var(--e-global-typography-wnav-font-family), sans-serif;
  font-size: var(--e-global-typography-wnav-font-size);
  font-weight: var(--e-global-typography-wnav-font-weight);
  box-shadow: 0 2px 8px rgba(18, 45, 55, .2);
}

.wub-gallery .wub-piece-tag.is-sold { background: var(--e-global-color-secondary); color: var(--e-global-color-text); }

/* Selected pill: Filter HQ colours the option's text with its accent, which here is
   the pill's own fill – the text vanished. White on Blue 600 = 5.2:1. */
.wub-gallery .wpfhq-filter-option:has(input:checked) span:last-child { color: var(--e-global-color-wwhite) !important; }

/* WUB footer at the bottom: on short pages (log in, empty cart) the page stretches so the
   footer sits at the foot of the window instead of leaving a gap under it. */
body:not(.elementor-editor-active) { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
body.admin-bar:not(.elementor-editor-active) { min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px)); }
body:not(.elementor-editor-active) .elementor-location-footer { margin-top: auto; }

/* WUB-ENQUIRY-BUTTON: "Send enquiry" on the Events page in Clay 600 (700 on hover), so it stands out on the cream card. */
.wpsess-enquiry .wpsess-btn--primary {
  --wpsess-accent: var(--e-global-color-wcl600);
  --wpsess-accent-hover: var(--e-global-color-wcl700);
  --wpsess-accent-text: var(--e-global-color-wcl100);
}


/* WUB-SHOUTOUTS – WP Shoutouts HQ's cards in the kit's colours and type (homepage "What people are saying"). */
.wpshouthq {
	--wpshouthq-card: var(--e-global-color-wraise);
	--wpshouthq-text: var(--e-global-color-text);
	--wpshouthq-muted: var(--e-global-color-wmuted);
	--wpshouthq-mark: var(--e-global-color-wcl700);
	--wpshouthq-mark-font: var(--e-global-typography-primary-font-family), Georgia, serif;
	--wpshouthq-heading-font: var(--e-global-typography-wh4-font-family);
}
.wpshouthq .wpshouthq-card__quote { font-family: var(--e-global-typography-text-font-family); font-size: var(--e-global-typography-text-font-size); line-height: var(--e-global-typography-text-line-height); }
.wpshouthq .wpshouthq-card__name { font-size: var(--e-global-typography-wh4-font-size); font-weight: var(--e-global-typography-wh4-font-weight); line-height: var(--e-global-typography-wh4-line-height); }
.wpshouthq .wpshouthq-card__who { margin-top: 4px; font-family: var(--e-global-typography-wsmall-font-family); font-size: var(--e-global-typography-wsmall-font-size); font-weight: var(--e-global-typography-wsmall-font-weight); line-height: var(--e-global-typography-wsmall-line-height); }
/* WUB-SHOUTOUTS-FORM – the Say thanks form: the big box gets card corners (the site's pill radius makes it an oval); the send button loses Hello's default pink border. */
.wpshouthq-form textarea { border-radius: 22px; padding: 16px 20px; }
.wpshouthq-form button.wpshouthq-form__send { border-color: transparent; }
/* WUB-SHOUTOUTS-END */

/* WUB-HERO-LIGHT (2026-10-28, design "WUB Header 1b"): organic blob + 90% opacity for the light page heroes. */
.wub-blob--organic { border-radius: 42% 58% 63% 37% / 45% 40% 60% 55%; }
.wub-op-90 { opacity: .9; }
.wub-balance .elementor-heading-title { text-wrap: balance; }

/* WUB-HEADER-STYLES */
.wub-op-30 { opacity: .3; }

/* WUB-EVENT-LINKS (2026-10-30): event names and photos open the event page. The name underlines on hover so it reads as a link. */
.wub-event-link .elementor-heading-title a { text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 2px; text-underline-offset: .15em; transition: text-decoration-color .15s; }
.wub-event-link .elementor-heading-title a:hover, .wub-event-link .elementor-heading-title a:focus-visible { text-decoration-color: currentColor; }
.wub-event-photo a { display: block; }
.wub-event-photo a img { transition: opacity .15s; }
.wub-event-photo a:hover img { opacity: .88; }
/* /WUB-EVENT-LINKS *//* End custom CSS */