/* UFOcamping Art v1.2.0 — Foundation + Brand System */
.ufca-mobile-trigger{
    display:none;
    width:44px;
    height:44px;
    padding:10px;
    border:0;
    border-radius:var(--ufo-radius-md,12px);
    background:var(--ufca-accent);
    color:var(--ufca-navigation-toggle-text,var(--ufo-white,#fff));
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    cursor:pointer;
    box-shadow:none;
    line-height:1;
    z-index:20;
}
.ufca-mobile-trigger span{display:block;width:22px;height:2px;border-radius:999px;background:currentColor;transition:transform .22s ease,opacity .22s ease}
body.ufca-drawer-open .ufca-mobile-trigger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.ufca-drawer-open .ufca-mobile-trigger span:nth-child(2){opacity:0}
body.ufca-drawer-open .ufca-mobile-trigger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.ufca-overlay{
    position:fixed;
    inset:0;
    border:0;
    padding:0;
    margin:0;
    background:rgba(4,3,12,.62);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    opacity:0;
    visibility:hidden;
    transition:opacity .25s ease,visibility .25s ease;
    z-index:999996;
}
.ufca-drawer{
    position:fixed;
    top:0;
    bottom:0;
    max-width:92vw;
    display:flex;
    flex-direction:column;
    background:var(--ufca-panel-bg);
    color:var(--ufca-panel-text);
    box-shadow:0 0 48px rgba(0,0,0,.32);
    transition:transform .3s cubic-bezier(.22,.61,.36,1);
    z-index:999997;
    overflow:hidden;
}
body.admin-bar .ufca-drawer{top:32px}
body.ufca-drawer-open{overflow:hidden}
body.ufca-drawer-open .ufca-overlay{opacity:1;visibility:visible}
body.ufca-drawer-open .ufca-drawer{transform:translateX(0)!important}

.ufca-drawer-head{min-height:82px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(255,255,255,.11)}
.ufca-drawer-brand{display:flex;align-items:center;min-width:0}
.ufca-logo{display:block;max-width:170px;max-height:48px;width:auto;height:auto;object-fit:contain}
.ufca-site-name{font-weight:800;font-size:18px;line-height:1.2;color:inherit}
.ufca-close{position:relative;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(255,255,255,.16);border-radius:var(--ufo-radius-md,12px);background:rgba(255,255,255,.07);color:inherit;cursor:pointer}
.ufca-close span{position:absolute;left:11px;top:19px;width:20px;height:2px;border-radius:4px;background:currentColor}
.ufca-close span:first-child{transform:rotate(45deg)}
.ufca-close span:last-child{transform:rotate(-45deg)}

.ufca-drawer-body{padding:10px 20px 24px;overflow:auto;overscroll-behavior:contain;flex:1}
.ufca-mobile-nav,.ufca-mobile-nav ul{list-style:none;margin:0;padding:0}
.ufca-mobile-nav>li{border-bottom:1px solid rgba(255,255,255,.09)}
.ufca-mobile-nav li{position:relative}
.ufca-mobile-nav li>a{display:block;color:inherit!important;text-decoration:none!important;padding:17px 46px 17px 2px;font-size:17px;line-height:1.25;font-weight:650;transition:color .2s ease,transform .2s ease}
.ufca-mobile-nav li>a:hover,.ufca-mobile-nav li.current-menu-item>a{color:var(--ufca-accent)!important}
.ufca-mobile-nav .sub-menu{display:none;padding:0 0 12px 14px}
.ufca-mobile-nav .sub-menu li>a{padding:11px 44px 11px 0;font-size:15px;font-weight:500;opacity:.9}
.ufca-mobile-nav li.ufca-submenu-open>.sub-menu{display:block}
.ufca-submenu-toggle{position:absolute;right:0;top:8px;width:40px;height:40px;border:0;background:transparent;color:inherit;cursor:pointer;border-radius:10px}
.ufca-submenu-toggle:hover{background:rgba(255,255,255,.07)}
.ufca-submenu-toggle span:before,.ufca-submenu-toggle span:after{content:"";position:absolute;left:13px;top:19px;width:14px;height:2px;border-radius:3px;background:currentColor;transition:transform .2s ease}
.ufca-submenu-toggle span:after{transform:rotate(90deg)}
.ufca-submenu-open>.ufca-submenu-toggle span:after{transform:rotate(0)}

.ufca-mobile-cta-wrap{padding-top:22px}
.ufca-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 18px;border-radius:var(--ufo-radius-pill,999px);background:var(--ufca-accent);color:var(--ufca-navigation-cta-text,var(--ufo-white,#fff))!important;text-decoration:none!important;font-weight:750;line-height:1.15;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}
.ufca-cta:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 10px 24px rgba(0,0,0,.14)}
.ufca-cta svg{width:21px;height:21px;flex:0 0 21px}
.ufca-mobile-cta{display:flex;width:100%;min-height:52px}
.ufca-desktop-cta{margin-left:12px;white-space:nowrap}

.ufca-drawer-foot{padding:13px 20px 18px;border-top:1px solid rgba(255,255,255,.09);font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.55}

@media(max-width:782px){body.admin-bar .ufca-drawer{top:46px}}
@media(max-width:600px){body.admin-bar .ufca-drawer{top:0}.ufca-drawer-head{min-height:74px;padding:14px 16px}.ufca-drawer-body{padding-left:16px;padding-right:16px}}

@media(prefers-reduced-motion:reduce){.ufca-drawer,.ufca-overlay,.ufca-mobile-trigger span,.ufca-cta{transition:none!important}}

/* =========================================================
 * v1.2.0 — Header Studio
 * ======================================================= */
body.ufca-header-studio-enabled{--ufca-adminbar-offset:0px}
body.admin-bar.ufca-header-studio-enabled{--ufca-adminbar-offset:32px}

.ufca-studio-header,
.ufca-studio-target{
    transition:transform .28s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease,border-color .25s ease,min-height .25s ease;
    will-change:transform;
}

body.ufca-header-sticky-always .ufca-studio-target,
body.ufca-header-sticky-smart .ufca-studio-target{
    position:sticky;
    top:var(--ufca-adminbar-offset);
    z-index:9997;
}

body.ufca-header-sticky-smart .ufca-studio-target.is-hidden,
body.ufca-header-sticky-smart .ufca-studio-header.is-hidden{
    transform:translateY(calc(-100% - var(--ufca-adminbar-offset)));
}

.ufca-studio-target.is-transparent{
    background:transparent!important;
    box-shadow:none!important;
    border-color:transparent!important;
}

.ufca-studio-header{
    position:relative;
    z-index:9997;
    width:100%;
    min-height:var(--ufca-header-height,92px);
    background:var(--ufca-header-bg,#fff);
    color:var(--ufca-header-text,#171020);
    border-bottom:1px solid transparent;
}
body.ufca-header-sticky-always .ufca-studio-header,
body.ufca-header-sticky-smart .ufca-studio-header{
    position:fixed;
    top:var(--ufca-adminbar-offset);
    left:0;
    right:0;
}
body.ufca-header-border-enabled .ufca-studio-header,
body.ufca-header-border-enabled .ufca-studio-target{
    border-bottom-color:var(--ufo-divider,rgba(18,14,26,.09));
}
body.ufca-header-shadow-enabled .ufca-studio-header.is-scrolled,
body.ufca-header-shadow-enabled .ufca-studio-target.is-scrolled{
    box-shadow:0 12px 34px rgba(11,9,16,.10);
}
body.ufca-header-blur-enabled .ufca-studio-header.is-scrolled,
body.ufca-header-blur-enabled .ufca-studio-target.is-scrolled{
    -webkit-backdrop-filter:saturate(135%) blur(14px);
    backdrop-filter:saturate(135%) blur(14px);
}
.ufca-studio-header.is-scrolled{
    background:var(--ufca-header-bg-scrolled,var(--ufca-header-bg,#fff));
    color:var(--ufca-header-text-scrolled,var(--ufca-header-text,#171020));
}
.ufca-studio-header.is-transparent{
    background:transparent;
    color:var(--ufca-header-text-transparent,#fff);
    border-bottom-color:transparent!important;
    box-shadow:none!important;
}

.ufca-studio-shell{
    width:100%;
    max-width:var(--ufca-header-max-width,1320px);
    margin:0 auto;
    padding:0 24px;
}
.ufca-studio-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    min-height:var(--ufca-header-height,92px);
    gap:20px;
    transition:min-height .25s ease;
}
.ufca-studio-mobile{display:none}
.ufca-studio-zone{display:flex;align-items:center;min-width:0}
.ufca-zone-left{justify-content:flex-start}
.ufca-zone-center{justify-content:center}
.ufca-zone-right{justify-content:flex-end}
.ufca-studio-logo{display:inline-flex;align-items:center;text-decoration:none!important;color:inherit!important;line-height:1}
.ufca-studio-logo img,.ufca-studio-logo .ufca-logo{display:block;width:auto;max-width:var(--ufca-header-logo-width,190px);max-height:64px;height:auto;object-fit:contain}
.ufca-studio-logo .ufca-site-name,.ufca-studio-site-title{font-weight:800;color:inherit!important;text-decoration:none!important;white-space:nowrap}

.ufca-studio-nav-wrap{display:flex;align-items:center}
.ufca-studio-nav{display:flex;align-items:center;gap:var(--ufca-header-menu-gap,28px);margin:0;padding:0;list-style:none}
.ufca-studio-nav li{position:relative;margin:0;padding:0;list-style:none}
.ufca-studio-nav>li>a{display:flex;align-items:center;min-height:44px;color:inherit!important;text-decoration:none!important;font-family:var(--ufo-font-ui,inherit);font-weight:650;line-height:1.2;white-space:nowrap;transition:opacity .2s ease,color .2s ease}
.ufca-studio-nav>li>a:hover,.ufca-studio-nav>li.current-menu-item>a,.ufca-studio-nav>li.current-menu-ancestor>a{color:var(--ufo-accent,var(--e-global-color-accent,#e637a5))!important}
.ufca-studio-nav .sub-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;display:block;min-width:220px;margin:0;padding:9px;border:1px solid var(--ufo-divider,rgba(18,14,26,.08));border-radius:var(--ufo-radius-md,14px);background:var(--ufo-background,#fff);color:var(--ufo-primary,#171020);box-shadow:var(--ufo-shadow-md,0 12px 32px rgba(11,9,16,.13));opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.ufca-studio-nav li:hover>.sub-menu,.ufca-studio-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.ufca-studio-nav .sub-menu a{display:block;padding:10px 12px;border-radius:9px;color:inherit!important;text-decoration:none!important;font-size:14px;line-height:1.3;white-space:nowrap}
.ufca-studio-nav .sub-menu a:hover{background:var(--ufo-secondary,#f5f2f8);color:var(--ufo-accent,#e637a5)!important}
.ufca-studio-nav .sub-menu .sub-menu{top:-9px;left:calc(100% + 8px)}

.ufca-header-search-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--ufo-radius-pill,999px);background:transparent;color:inherit;cursor:pointer}
.ufca-header-search-toggle:hover{background:rgba(127,127,127,.10)}
.ufca-header-search-toggle svg{width:22px;height:22px}
.ufca-header-search{position:absolute;left:0;right:0;top:100%;padding:14px 24px;background:var(--ufca-header-bg-scrolled,var(--ufo-background,#fff));color:var(--ufca-header-text-scrolled,var(--ufo-primary,#171020));border-top:1px solid var(--ufo-divider,rgba(18,14,26,.08));box-shadow:0 16px 34px rgba(11,9,16,.12);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease}
.ufca-studio-header.is-search-open .ufca-header-search{opacity:1;visibility:visible;transform:translateY(0)}
.ufca-header-search-inner{display:flex;align-items:center;gap:12px;max-width:var(--ufca-header-max-width,1320px);margin:0 auto}
.ufca-header-search-form{display:flex;align-items:center;gap:10px;flex:1}
.ufca-header-search-form input[type=search]{width:100%;min-height:48px;padding:10px 16px;border:1px solid var(--ufo-divider,#e8e4ec);border-radius:var(--ufo-radius-md,14px);background:var(--ufo-background,#fff);color:var(--ufo-text,#403a46);outline:none}
.ufca-header-search-form input[type=search]:focus{border-color:var(--ufo-accent,#e637a5);box-shadow:0 0 0 3px color-mix(in srgb,var(--ufo-accent,#e637a5) 18%, transparent)}
.ufca-header-search-form button{min-height:48px;padding:10px 18px;border:0;border-radius:var(--ufo-radius-pill,999px);background:var(--ufo-accent,#e637a5);color:var(--ufo-primary,#171020);font-weight:750;cursor:pointer}
.ufca-header-search-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:30px;line-height:1;cursor:pointer}

.ufca-header-spacer{display:none;height:var(--ufca-header-height,92px)}
body.ufca-header-transparent-page .ufca-header-spacer{height:0}
body.ufca-header-shrink-enabled .ufca-studio-header.is-scrolled .ufca-studio-desktop{min-height:var(--ufca-header-compact-height,70px)}
body.ufca-header-shrink-enabled .ufca-studio-target.is-scrolled{min-height:var(--ufca-header-compact-height,70px)}

@media(max-width:1024px){
    .ufca-studio-shell{padding-left:16px;padding-right:16px}
    .ufca-studio-desktop{display:none}
    .ufca-studio-mobile{display:grid;min-height:var(--ufca-header-mobile-height,72px);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px}
    .ufca-studio-logo img,.ufca-studio-logo .ufca-logo{max-width:var(--ufca-header-logo-mobile-width,150px);max-height:52px}
    .ufca-header-spacer{height:var(--ufca-header-mobile-height,72px)}
    body.ufca-header-shrink-enabled .ufca-studio-header.is-scrolled .ufca-studio-mobile{min-height:var(--ufca-header-compact-height,70px)}
}

@media(max-width:782px){body.admin-bar.ufca-header-studio-enabled{--ufca-adminbar-offset:46px}}
@media(max-width:600px){body.admin-bar.ufca-header-studio-enabled{--ufca-adminbar-offset:0px}}
@media(prefers-reduced-motion:reduce){.ufca-studio-header,.ufca-studio-target,.ufca-header-search,.ufca-studio-row,.ufca-studio-nav .sub-menu{transition:none!important}}

/* Header Studio — enhancement layer for existing Wildex / ElementsKit headers */
body.ufca-header-mode-enhance .ufca-studio-target{background:var(--ufca-header-bg);color:var(--ufca-header-text)}
body.ufca-header-mode-enhance .ufca-studio-target.is-scrolled{background:var(--ufca-header-bg-scrolled);color:var(--ufca-header-text-scrolled)}
body.ufca-header-mode-enhance .ufca-studio-target.is-transparent{color:var(--ufca-header-text-transparent)}
body.ufca-header-mode-enhance .ufca-studio-target.is-transparent .elementskit-navbar-nav>li>a,
body.ufca-header-mode-enhance .ufca-studio-target.is-transparent .main-menu .navbar-nav>li>a,
body.ufca-header-mode-enhance .ufca-studio-target.is-transparent .navbar-brand,
body.ufca-header-mode-enhance .ufca-studio-target.is-transparent .elementor-icon{color:var(--ufca-header-text-transparent)!important}
body.ufca-header-mode-enhance .ufca-studio-target.is-scrolled .elementskit-navbar-nav>li>a,
body.ufca-header-mode-enhance .ufca-studio-target.is-scrolled .main-menu .navbar-nav>li>a,
body.ufca-header-mode-enhance .ufca-studio-target.is-scrolled .navbar-brand,
body.ufca-header-mode-enhance .ufca-studio-target.is-scrolled .elementor-icon{color:var(--ufca-header-text-scrolled)!important}

/* Navigation stability: preserve contrast on dark headers and continuous hover paths. */
.ufca-studio-nav>li>a:hover,.ufca-studio-nav>li.current-menu-item>a,.ufca-studio-nav>li.current-menu-ancestor>a{color:var(--ufca-header-nav-active,inherit)!important;text-decoration:underline!important;text-underline-offset:6px}
.ufca-studio-nav>li.menu-item-has-children>a::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:8px;margin-top:-4px}
.ufca-studio-nav .sub-menu{top:100%}
.ufca-studio-nav .sub-menu .sub-menu{left:100%}
.ufca-mobile-nav li>a:hover,.ufca-mobile-nav li.current-menu-item>a{color:var(--ufca-panel-active-text,inherit)!important;text-decoration:underline!important;text-underline-offset:5px}
.ufca-mobile-trigger:focus-visible,.ufca-close:focus-visible,.ufca-submenu-toggle:focus-visible,.ufca-studio-nav a:focus-visible,.ufca-mobile-nav a:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.ufca-studio-nav>li>a{font-size:var(--ufca-header-menu-font-size,16px)}
.ufca-studio-nav .sub-menu{background:var(--ufca-header-dropdown-bg,var(--ufo-background,#fff));color:var(--ufca-header-dropdown-text,var(--ufo-text,#171020))}
.ufca-studio-nav .sub-menu a:hover,.ufca-studio-nav .sub-menu a:focus-visible{background:transparent;color:inherit!important;text-decoration:underline!important;text-underline-offset:4px}

.ufca-studio-desktop{grid-template-columns:auto minmax(0,1fr) auto}
body.ufca-header-shrink-enabled .ufca-studio-header.is-scrolled{min-height:var(--ufca-header-compact-height,70px)}

/* --------------------------------------------------------------------------
 * v2.2.5.1 — Checkout field geometry compatibility
 *
 * Presentation-only bridge for WooCommerce Blocks + UFOcamping participant
 * controls. It intentionally does not hide labels, alter field names, values,
 * validation, Store API, gateways, totals or submission behaviour.
 * ----------------------------------------------------------------------- */
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-checkout .wc-block-checkout {
  --ufca-checkout-control-height: 56px;
  --ufca-checkout-control-font-size: 16px;
  --ufca-checkout-label-font-size: 12px;
  --ufca-checkout-control-x: 14px;
  --ufca-checkout-control-top: 22px;
  --ufca-checkout-control-bottom: 7px;
}

/* Keep every text-like checkout control readable even when Forms & UX,
   Wildex or another visual layer normalizes generic form padding. */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form select,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form textarea,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form select,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form textarea {
  box-sizing: border-box;
  max-width: 100%;
  font-size: var(--ufca-checkout-control-font-size);
  line-height: 1.375;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form select,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form select {
  min-height: var(--ufca-checkout-control-height);
  padding: var(--ufca-checkout-control-top) var(--ufca-checkout-control-x) var(--ufca-checkout-control-bottom);
}

/* WooCommerce Blocks text input: restore the space reserved for its floating
   label. This is the key override for the Art generic 11px/14px form padding. */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="text"],
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="email"],
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="tel"],
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="url"],
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="number"],
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="text"],
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="email"],
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="tel"],
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="url"],
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input[type="number"] {
  height: var(--ufca-checkout-control-height);
  min-height: var(--ufca-checkout-control-height);
  padding: 14px 0;
  text-indent: var(--ufca-checkout-control-x);
  line-height: 1.375;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input.is-active input,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input:-webkit-autofill,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input.is-active input,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input:-webkit-autofill {
  padding: var(--ufca-checkout-control-top) 0 var(--ufca-checkout-control-bottom);
  text-indent: var(--ufca-checkout-control-x);
}

/* Preserve the native floating-label model, but normalize its geometry so
   theme typography cannot push it onto the entered value. */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input label {
  margin: 0 0 0 var(--ufca-checkout-control-x);
  max-width: calc(100% - 28px);
  font-size: var(--ufca-checkout-control-font-size);
  line-height: 1.25;
  transform: translateY(15px);
  transform-origin: top left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-text-input input:-webkit-autofill + label,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-text-input input:-webkit-autofill + label {
  transform: translateY(5px) scale(.75);
}

/* Woo Blocks select / combobox variants. Labels remain visible above the
   selected value; the value gets its own vertical lane. */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-blocks-components-select,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-select,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-combobox-control,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-blocks-components-select,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-select,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-combobox-control {
  position: relative;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-blocks-components-select__select,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-select__select,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-combobox-control input {
  min-height: var(--ufca-checkout-control-height);
  padding: var(--ufca-checkout-control-top) 42px var(--ufca-checkout-control-bottom) var(--ufca-checkout-control-x);
  font-size: var(--ufca-checkout-control-font-size);
  line-height: 1.25;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-blocks-components-select__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-select__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form .wc-block-components-combobox-control label.components-base-control__label,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-select__label,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form .wc-block-components-combobox-control label.components-base-control__label {
  position: absolute;
  z-index: 1;
  top: 6px;
  left: var(--ufca-checkout-control-x);
  max-width: calc(100% - 54px);
  margin: 0;
  font-size: var(--ufca-checkout-label-font-size);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}

/* UFOcamping participant/billing controls rendered inside the Blocks form may
   be plain selects instead of the Woo select component. Give their selected
   value the same protected lane without relying on Core-specific class names. */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form select:not(.wc-blocks-components-select__select):not(.wc-block-components-select__select),
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form select:not(.wc-blocks-components-select__select):not(.wc-block-components-select__select) {
  min-height: var(--ufca-checkout-control-height);
  padding: 24px 40px 7px var(--ufca-checkout-control-x);
  line-height: 1.25;
  text-overflow: ellipsis;
}


body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form textarea,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form textarea {
  min-height: 112px;
  padding: 14px;
  resize: vertical;
}

/* Error, disabled and autofill states retain the same geometry; colors remain
   owned by WooCommerce/Core/Art tokens already active on the page. */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form :is(input, select, textarea):disabled,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form :is(input, select, textarea):disabled {
  cursor: not-allowed;
}

/* iOS Safari: 16px prevents focus zoom. Desktop already uses the same readable
   base size, so there is no breakpoint-induced reflow. */
@media (max-width: 767px) {
  body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
  body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form select,
  body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-checkout__form textarea,
  body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
  body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form select,
  body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__form textarea {
    font-size: 16px;
  }
}
