
/* UFOcamping Core 3.0.0 — Cart / Checkout Blocks */
.ufoc-checkout-card{box-sizing:border-box;width:100%;margin:18px 0;padding:20px;border:1px solid #e4dce8;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(35,20,45,.07)}
.ufoc-checkout-card *{box-sizing:border-box}.ufoc-card-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.ufoc-card-icon{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:12px;background:#f6edf6;font-size:20px;flex:0 0 42px}.ufoc-card-heading h2{margin:0 0 4px;font-size:20px;line-height:1.25}.ufoc-card-heading p{margin:0;color:#6d6470;font-size:13px;line-height:1.5}.ufoc-info-note{margin:0 0 16px;padding:11px 13px;border-radius:10px;background:#f8f5fa;color:#5c5360;font-size:12px;line-height:1.5}.ufoc-grid{display:grid;gap:13px}.ufoc-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ufoc-field{display:block}.ufoc-field-label{display:block;margin:0 0 6px;font-size:12px;font-weight:700;color:#392f3d}.ufoc-field-input,.ufoc-coupon-row input{width:100%!important;min-height:47px!important;padding:10px 12px!important;border:1px solid #d9d0dd!important;border-radius:9px!important;background:#fff!important;font-size:14px!important}.ufoc-field-input:focus,.ufoc-coupon-row input:focus{outline:2px solid rgba(184,31,112,.16)!important;border-color:#b81f70!important}.ufoc-age-box{display:flex;min-height:70px;padding:10px 13px;border-radius:10px;background:#f8f4fa;flex-direction:column;justify-content:center}.ufoc-age-box span{font-size:11px;color:#786f7b}.ufoc-age-box strong{font-size:17px;color:#b31768}.ufoc-event-participants{margin-top:18px;padding-top:16px;border-top:1px solid #eee7f0}.ufoc-event-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.ufoc-event-title span{padding:4px 8px;border-radius:20px;background:#f4edf5;font-size:11px;font-weight:700}.ufoc-companion-card{margin:11px 0;padding:15px;border:1px solid #e7dfe9;border-radius:12px;background:#fcfafc}.ufoc-companion-card h3{margin:0 0 12px;font-size:15px}.ufoc-no-companions{margin:8px 0;color:#766d79;font-size:12px}.ufoc-policy-check{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid #e4c96a;border-radius:11px;background:#fffaf0;font-size:14px;line-height:1.5;cursor:pointer}.ufoc-policy-check input{width:20px;height:20px;margin-top:1px;flex:0 0 20px}.ufoc-policy-check a{font-weight:800;text-decoration:underline}.ufoc-policy-version{display:block;margin-top:8px;color:#807683}.ufoc-coupon-card{border-color:#ddc87b;background:linear-gradient(180deg,#fffdf7,#fff)}.ufoc-coupon-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.ufoc-coupon-row button{min-height:47px;padding:0 20px;border:0;border-radius:9px;background:#a91460;color:#fff;font-weight:800;cursor:pointer}.ufoc-coupon-row button:disabled{opacity:.6;cursor:wait}.ufoc-coupon-message{margin:9px 0 0;font-size:12px}.ufoc-applied-coupons{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;font-size:12px}.ufoc-applied-coupons span{padding:5px 8px;border-radius:20px;background:#edf8ef;color:#28603a}
/* Evitar duplicar el formulario nativo de cupón en Checkout Blocks; el Core usa el sistema nativo mediante el Cart Store. */
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block{display:none!important}
/* Cart Blocks: convertir la experiencia en tarjetas, sin overrides de templates. */
body.ufocamping-registration-cart .wc-block-cart-items{border-collapse:separate!important;border-spacing:0 13px!important}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item{background:#fff;box-shadow:0 7px 24px rgba(37,22,48,.07)}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item td{padding:18px!important;border-top:1px solid #e7dfe9!important;border-bottom:1px solid #e7dfe9!important}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item td:first-child{border-left:1px solid #e7dfe9!important;border-radius:14px 0 0 14px}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item td:last-child{border-right:1px solid #e7dfe9!important;border-radius:0 14px 14px 0}body.ufocamping-registration-cart .wc-block-components-totals-coupon{margin:16px 0;padding:16px;border:1px solid #e2c86f;border-radius:12px;background:#fffaf0}body.ufocamping-registration-cart .wc-block-components-totals-coupon:before{content:'🏷️ ¿TIENES UN CUPÓN?';display:block;margin-bottom:8px;font-weight:800;color:#3d303f}body.ufocamping-registration-cart .wc-block-cart__submit-button,body.ufocamping-registration-checkout .wc-block-components-checkout-place-order-button{min-height:58px!important;border-radius:11px!important;background:linear-gradient(135deg,#9f155c,#c11b73,#7d3cca)!important;color:#fff!important;font-weight:800!important;letter-spacing:.01em}body.ufocamping-registration-checkout .wc-block-checkout__main,body.ufocamping-registration-cart .wc-block-cart__main{min-width:0!important}
/* Administración del pedido */
.ufoc-admin-participants{margin-top:18px;padding:14px;border:1px solid #ddd3e1;border-radius:8px;background:#faf8fb}.ufoc-admin-participants h3{margin-top:0}.ufoc-admin-event{padding:10px 0;border-top:1px solid #e8e1ea}.ufoc-admin-event:first-of-type{border-top:0}.ufoc-admin-event p{margin:5px 0}
@media(max-width:782px){.ufoc-checkout-card{padding:15px;border-radius:13px}.ufoc-grid-2{grid-template-columns:1fr}.ufoc-event-title{align-items:flex-start;flex-direction:column}.ufoc-coupon-row{grid-template-columns:1fr}.ufoc-coupon-row button{width:100%}body.ufocamping-registration-cart .wc-block-cart-items,body.ufocamping-registration-cart .wc-block-cart-items tbody,body.ufocamping-registration-cart .wc-block-cart-items tr,body.ufocamping-registration-cart .wc-block-cart-items td{display:block!important;width:100%!important}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item{margin:0 0 14px;border:1px solid #e7dfe9;border-radius:14px;overflow:hidden}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item td{border:0!important;border-radius:0!important;padding:12px 15px!important}body.ufocamping-registration-cart .wc-block-cart-items__row.ufoc-cart-event-item .wc-block-cart-item__image{max-width:140px!important}body.ufocamping-registration-cart .wc-block-cart__totals-title{font-size:18px!important}body.ufocamping-registration-cart .wc-block-cart__submit-button,body.ufocamping-registration-checkout .wc-block-components-checkout-place-order-button{width:100%!important;min-height:56px!important}.wc-block-components-sidebar-layout{display:block!important}.wc-block-components-sidebar-layout .wc-block-components-main,.wc-block-components-sidebar-layout .wc-block-components-sidebar{width:100%!important;max-width:100%!important;margin:0!important}}


/* ==========================================================
   UFOcamping Core 3.0.1 — Políticas obligatorias
   ========================================================== */
.ufoc-policy-native-card{
    box-sizing:border-box!important;
    width:100%!important;
    margin:24px 0 18px!important;
    padding:20px!important;
    border:2px solid rgba(181,25,101,.30)!important;
    border-radius:18px!important;
    background:
        radial-gradient(circle at 0 0,rgba(189,21,106,.09),transparent 38%),
        linear-gradient(180deg,#fffafc,#ffffff)!important;
    box-shadow:0 12px 35px rgba(89,28,71,.10)!important;
}
.ufoc-policy-visual-heading{
    display:flex!important;
    align-items:flex-start!important;
    gap:13px!important;
    margin-bottom:14px!important;
}
.ufoc-policy-warning-icon{
    display:flex!important;
    flex:0 0 46px!important;
    width:46px!important;
    height:46px!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:13px!important;
    background:linear-gradient(135deg,#fff0b8,#ffe276)!important;
    font-size:22px!important;
    box-shadow:0 5px 16px rgba(178,129,12,.14)!important;
}
.ufoc-policy-visual-heading strong{
    display:block!important;
    margin:1px 0 4px!important;
    color:#251824!important;
    font-size:16px!important;
    line-height:1.3!important;
    letter-spacing:.015em!important;
}
.ufoc-policy-visual-heading p{
    margin:0!important;
    color:#6b5c67!important;
    font-size:13px!important;
    line-height:1.55!important;
}
.ufoc-policy-read-button{
    display:flex!important;
    width:100%!important;
    min-height:50px!important;
    margin:0 0 15px!important;
    padding:11px 16px!important;
    align-items:center!important;
    justify-content:center!important;
    border:0!important;
    border-radius:11px!important;
    background:linear-gradient(135deg,#271738,#6f2aa7,#b51568)!important;
    box-shadow:0 8px 21px rgba(108,32,113,.18)!important;
    color:#fff!important;
    font-size:13px!important;
    font-weight:850!important;
    letter-spacing:.025em!important;
    text-align:center!important;
    text-decoration:none!important;
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
.ufoc-policy-read-button:hover,
.ufoc-policy-read-button:focus{
    color:#fff!important;
    transform:translateY(-1px)!important;
    filter:brightness(1.07)!important;
    box-shadow:0 11px 27px rgba(108,32,113,.24)!important;
}
.ufoc-policy-native-check-wrapper,
.ufoc-policy-classic-check{
    box-sizing:border-box!important;
    margin:0!important;
    padding:15px!important;
    border:2px solid #e8d27d!important;
    border-radius:12px!important;
    background:#fff9e9!important;
}
.ufoc-policy-native-check-wrapper label,
.ufoc-policy-classic-check label{
    color:#332831!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.5!important;
    cursor:pointer!important;
}
.ufoc-policy-native-check-wrapper input[type="checkbox"],
.ufoc-policy-classic-check input[type="checkbox"]{
    appearance:auto!important;
    -webkit-appearance:checkbox!important;
    display:inline-block!important;
    visibility:visible!important;
    opacity:1!important;
    position:static!important;
    width:22px!important;
    min-width:22px!important;
    height:22px!important;
    min-height:22px!important;
    margin:1px 10px 0 0!important;
    accent-color:#b51568!important;
    vertical-align:top!important;
    cursor:pointer!important;
}
.ufoc-policy-native-check-wrapper:has(input[type="checkbox"]:checked),
.ufoc-policy-classic-check:has(input[type="checkbox"]:checked){
    border-color:#64b67a!important;
    background:#f0fbf3!important;
    box-shadow:0 0 0 3px rgba(72,164,96,.08)!important;
}
.ufoc-policy-version{
    display:block!important;
    margin-top:10px!important;
    color:#857680!important;
    font-size:10px!important;
    text-align:center!important;
}
@media(max-width:600px){
    .ufoc-policy-native-card{padding:15px!important;border-radius:14px!important}
    .ufoc-policy-read-button{min-height:54px!important;font-size:12.5px!important}
    .ufoc-policy-native-check-wrapper,
    .ufoc-policy-classic-check{padding:13px!important}
}


/* ==========================================================
   UFOcamping Core 3.0.2 — Participantes automáticos
   ========================================================== */
#ufoc-participants-autoload{
    width:100%!important;
    box-sizing:border-box!important;
    margin:18px 0 24px!important;
}
#ufoc-participants-autoload .ufoc-participants-card{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
}
#ufoc-participants-autoload .ufoc-section-label{
    margin:16px 0 10px!important;
    color:#3b2940!important;
    font-size:12px!important;
    font-weight:850!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
}
#ufoc-participants-autoload .ufoc-field-input{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    min-height:48px!important;
    box-sizing:border-box!important;
}
#ufoc-participants-autoload input[type="date"]{
    min-width:0!important;
    max-width:100%!important;
}
@media(max-width:600px){
    #ufoc-participants-autoload{
        margin:14px 0 20px!important;
    }
    #ufoc-participants-autoload .ufoc-grid-2{
        grid-template-columns:1fr!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.0.7 — Fecha de nacimiento Día / Mes / Año
   ========================================================== */
.ufoc-birthdate-field{
    box-sizing:border-box!important;
    width:100%!important;
}
.ufoc-birthdate-selects{
    display:grid!important;
    grid-template-columns:minmax(72px,.75fr) minmax(125px,1.35fr) minmax(92px,.9fr)!important;
    gap:8px!important;
    width:100%!important;
    margin-top:7px!important;
}
.ufoc-birth-select{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    box-sizing:border-box!important;
    padding:0 10px!important;
    border:1px solid rgba(84,61,88,.22)!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#2c2330!important;
    font-size:15px!important;
}
.ufoc-birth-select:focus{
    outline:2px solid rgba(181,21,104,.18)!important;
    border-color:#b51568!important;
}
.ufoc-age-result{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    margin-top:8px!important;
    padding:8px 10px!important;
    border-radius:9px!important;
    background:rgba(105,63,180,.07)!important;
    color:#655767!important;
    font-size:12px!important;
}
.ufoc-age-result strong{
    color:#3f2d46!important;
    font-size:13px!important;
    font-weight:800!important;
}
@media(max-width:600px){
    .ufoc-birthdate-selects{
        grid-template-columns:1fr!important;
        gap:7px!important;
    }
    .ufoc-birth-select{
        min-height:50px!important;
        font-size:16px!important;
    }
}


/* UFOcamping Core 3.0.8 — confirmación visual de fecha y edad */
.ufoc-age-result{display:flex!important;visibility:visible!important;opacity:1!important;min-height:38px!important}
.ufoc-age-result strong{display:inline!important;visibility:visible!important;opacity:1!important}
.ufoc-birthdate-valid .ufoc-age-result{background:#eefaf2!important;border:1px solid rgba(54,145,83,.18)!important}
.ufoc-birthdate-valid .ufoc-age-result strong{color:#287540!important}
.ufoc-birthdate-invalid .ufoc-age-result{background:#fff3f3!important;border:1px solid rgba(185,50,50,.18)!important}
.ufoc-birthdate-invalid .ufoc-age-result strong{color:#a02d2d!important}


/* ==========================================================
   UFOcamping Core 3.0.9 — campos nativos participante principal
   ========================================================== */
.ufoc-principal-native-age{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    align-items:center!important;
    gap:6px!important;
    width:100%!important;
    margin:8px 0 14px!important;
    padding:10px 12px!important;
    border:1px solid rgba(105,63,180,.14)!important;
    border-radius:10px!important;
    background:#f8f4fa!important;
}
.ufoc-principal-native-age span{
    color:#6c6170!important;
    font-size:12px!important;
}
.ufoc-principal-native-age strong{
    display:inline!important;
    visibility:visible!important;
    opacity:1!important;
    color:#b31768!important;
    font-size:16px!important;
    font-weight:850!important;
}

/* Los cuatro campos nativos del participante principal. */
.wc-block-components-select-input:has(select[id*="birth-day"]),
.wc-block-components-select-input:has(select[id*="birth-month"]),
.wc-block-components-select-input:has(select[id*="birth-year"]){
    margin-bottom:10px!important;
}


/* ==========================================================
   UFOcamping Core 3.0.10 — Compactación visual checkout
   ========================================================== */
#ufoc-participants-autoload{
    width:100%!important;
    margin:14px 0 18px!important;
    padding:0!important;
}
#ufoc-participants-autoload .ufoc-checkout-card{
    margin:0!important;
    padding:18px!important;
    border-radius:14px!important;
}
#ufoc-participants-autoload .ufoc-card-heading{
    margin:0 0 12px!important;
    padding:0!important;
    gap:10px!important;
}
#ufoc-participants-autoload .ufoc-card-heading h2{
    margin:0 0 2px!important;
    padding:0!important;
    font-size:18px!important;
    line-height:1.25!important;
}
#ufoc-participants-autoload .ufoc-card-heading p{
    margin:0!important;
    padding:0!important;
    font-size:12.5px!important;
    line-height:1.45!important;
}
#ufoc-participants-autoload .ufoc-event-participants{
    margin:12px 0 0!important;
    padding:0!important;
}
#ufoc-participants-autoload .ufoc-event-title{
    margin:0 0 9px!important;
    padding:9px 11px!important;
    min-height:0!important;
    border-radius:10px!important;
}
#ufoc-participants-autoload .ufoc-companions-wrap{
    margin:0!important;
    padding:0!important;
}
#ufoc-participants-autoload .ufoc-companion-card{
    margin:10px 0 0!important;
    padding:14px!important;
    border-radius:12px!important;
}
#ufoc-participants-autoload .ufoc-companion-card h3{
    margin:0 0 11px!important;
    padding:0!important;
    font-size:14px!important;
    line-height:1.3!important;
}
#ufoc-participants-autoload .ufoc-grid{
    gap:11px!important;
    margin:0!important;
}
#ufoc-participants-autoload .ufoc-field{
    margin:0!important;
    padding:0!important;
}
#ufoc-participants-autoload .ufoc-field-label{
    display:block!important;
    margin:0 0 5px!important;
    padding:0!important;
    font-size:12px!important;
    line-height:1.3!important;
}
#ufoc-participants-autoload .ufoc-field-input,
#ufoc-participants-autoload .ufoc-birth-select{
    min-height:45px!important;
    margin:0!important;
}
#ufoc-participants-autoload .ufoc-birthdate-field{
    margin:0!important;
    padding:0!important;
}
#ufoc-participants-autoload .ufoc-birthdate-selects{
    margin:0!important;
    gap:7px!important;
}
#ufoc-participants-autoload .ufoc-age-result{
    margin:6px 0 0!important;
    padding:7px 9px!important;
    min-height:0!important;
}
.ufoc-principal-native-age{
    margin:7px 0 12px!important;
    padding:8px 10px!important;
}
@media(max-width:600px){
    #ufoc-participants-autoload{
        margin:10px 0 14px!important;
    }
    #ufoc-participants-autoload .ufoc-checkout-card{
        padding:14px!important;
    }
    #ufoc-participants-autoload .ufoc-companion-card{
        padding:12px!important;
    }
    #ufoc-participants-autoload .ufoc-grid{
        grid-template-columns:1fr!important;
        gap:9px!important;
    }
    #ufoc-participants-autoload .ufoc-birthdate-selects{
        grid-template-columns:1fr 1fr 1fr!important;
        gap:5px!important;
    }
    #ufoc-participants-autoload .ufoc-birth-select{
        min-height:44px!important;
        padding:0 5px!important;
        font-size:14px!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.0.11 — orden visual definitivo
   ========================================================== */

/* Campo técnico nativo de acompañantes: nunca visible. */
.ufoc-native-technical-field{
    display:none!important;
}

/* Grupo principal: compacto, sin espacios excesivos. */
.ufoc-principal-native-group{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin:12px 0 14px!important;
    padding:14px!important;
    border:1px solid rgba(91,55,104,.12)!important;
    border-radius:14px!important;
    background:#fff!important;
    box-sizing:border-box!important;
}
.ufoc-principal-native-group .ufoc-principal-native-field{
    margin:0!important;
    padding:0!important;
    min-width:0!important;
}
.ufoc-principal-native-group .ufoc-principal-native-field:last-of-type{
    grid-column:1/-1!important;
}
.ufoc-principal-native-group select,
.ufoc-principal-native-group input{
    width:100%!important;
    min-height:46px!important;
    margin:0!important;
    box-sizing:border-box!important;
}

/* Edad principal dentro del mismo ritmo visual. */
.ufoc-principal-native-age{
    margin:0 0 14px!important;
    padding:9px 11px!important;
    border-radius:10px!important;
}

/* Acompañantes: sin márgenes verticales inflados. */
#ufoc-participants-autoload{
    margin:12px 0 14px!important;
}
#ufoc-participants-autoload .ufoc-checkout-card{
    padding:16px!important;
}
#ufoc-participants-autoload .ufoc-card-heading{
    margin-bottom:10px!important;
}
#ufoc-participants-autoload .ufoc-event-participants{
    margin-top:10px!important;
}
#ufoc-participants-autoload .ufoc-event-title{
    margin-bottom:8px!important;
}
#ufoc-participants-autoload .ufoc-companion-card{
    margin-top:8px!important;
    padding:13px!important;
}
#ufoc-participants-autoload .ufoc-companion-card h3{
    margin-bottom:9px!important;
}
#ufoc-participants-autoload .ufoc-grid{
    gap:9px!important;
}
#ufoc-participants-autoload .ufoc-birthdate-selects{
    gap:6px!important;
}
#ufoc-participants-autoload .ufoc-age-result{
    margin-top:5px!important;
    padding:6px 8px!important;
}

@media(max-width:700px){
    .ufoc-principal-native-group{
        grid-template-columns:1fr!important;
        gap:8px!important;
        padding:12px!important;
    }
    .ufoc-principal-native-group .ufoc-principal-native-field:last-of-type{
        grid-column:auto!important;
    }

    #ufoc-participants-autoload .ufoc-checkout-card{
        padding:13px!important;
    }

    #ufoc-participants-autoload .ufoc-grid{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    #ufoc-participants-autoload .ufoc-birthdate-selects{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:5px!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.0.12 — layout corregido de Información adicional
   ========================================================== */

/* Anula la cuadrícula genérica que mezclaba políticas y campos. */
.ufoc-principal-native-group{
    display:block!important;
    grid-template-columns:none!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
}

/* Layout controlado exclusivamente para Additional Fields UFOcamping. */
.ufoc-additional-fields-layout{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:10px!important;
    row-gap:10px!important;
    width:100%!important;
    align-items:start!important;
}

/* Día / Mes / Año: una sola fila. */
.ufoc-additional-fields-layout .ufoc-native-birth-day{
    grid-column:1!important;
}
.ufoc-additional-fields-layout .ufoc-native-birth-month{
    grid-column:2!important;
}
.ufoc-additional-fields-layout .ufoc-native-birth-year{
    grid-column:3!important;
}

/* Documento: fila completa. */
.ufoc-additional-fields-layout .ufoc-native-document-principal{
    grid-column:1/-1!important;
}

/* Edad: fila completa. */
.ufoc-additional-fields-layout #ufoc-principal-age-result,
.ufoc-additional-fields-layout .ufoc-principal-native-age{
    grid-column:1/-1!important;
    width:100%!important;
    box-sizing:border-box!important;
}

/* Acompañantes: fila completa y antes de políticas. */
.ufoc-additional-fields-layout #ufoc-participants-autoload{
    grid-column:1/-1!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
}

/* Políticas: fila completa, nunca como columna lateral. */
.ufoc-additional-fields-layout .ufoc-policy-native-card{
    grid-column:1/-1!important;
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    margin:0!important;
}

/* Campo técnico oculto: sin ocupar celda. */
.ufoc-additional-fields-layout .ufoc-native-technical-field{
    display:none!important;
}

/* Campos principales compactos. */
.ufoc-additional-fields-layout .ufoc-principal-native-field{
    margin:0!important;
    padding:0!important;
    min-width:0!important;
    width:100%!important;
}
.ufoc-additional-fields-layout .ufoc-principal-native-field select,
.ufoc-additional-fields-layout .ufoc-principal-native-field input{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    box-sizing:border-box!important;
}

/* Edad principal debajo de los selectores, sin exceso de altura. */
#ufoc-principal-age-result.ufoc-principal-native-age{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    min-height:44px!important;
    margin:0!important;
    padding:9px 12px!important;
    border-radius:10px!important;
}

/* Política en formato ancho/normal. */
.ufoc-additional-fields-layout .ufoc-policy-native-card{
    padding:16px!important;
    border-radius:13px!important;
}
.ufoc-additional-fields-layout .ufoc-policy-visual-heading{
    display:flex!important;
    align-items:flex-start!important;
    gap:12px!important;
}
.ufoc-additional-fields-layout .ufoc-policy-read-button{
    display:flex!important;
    width:100%!important;
    box-sizing:border-box!important;
    margin:11px 0 0!important;
}
.ufoc-additional-fields-layout .ufoc-policy-native-check-wrapper{
    width:100%!important;
    box-sizing:border-box!important;
    margin:10px 0 0!important;
}

/* Acompañantes integrados al flujo, sin irse debajo del botón. */
#ufoc-participants-autoload .ufoc-checkout-card{
    margin:0!important;
    padding:15px!important;
    border-radius:13px!important;
    box-shadow:none!important;
}
#ufoc-participants-autoload .ufoc-card-heading{
    margin:0 0 10px!important;
}
#ufoc-participants-autoload .ufoc-event-participants{
    margin:9px 0 0!important;
    padding:0!important;
}
#ufoc-participants-autoload .ufoc-event-title{
    margin:0 0 8px!important;
    padding:8px 10px!important;
}
#ufoc-participants-autoload .ufoc-companion-card{
    margin:0!important;
    padding:13px!important;
}
#ufoc-participants-autoload .ufoc-companion-card h3{
    margin:0 0 9px!important;
}
#ufoc-participants-autoload .ufoc-grid{
    margin:0!important;
    gap:9px!important;
}
#ufoc-participants-autoload .ufoc-age-result{
    margin:5px 0 0!important;
    padding:6px 8px!important;
}

/* Evitar espacios heredados de versiones anteriores. */
body.ufocamping-registration-checkout .ufoc-additional-fields-layout > *{
    margin-top:0!important;
    margin-bottom:0!important;
}

/* Responsive. */
@media(max-width:700px){
    .ufoc-additional-fields-layout{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    .ufoc-additional-fields-layout .ufoc-native-birth-day,
    .ufoc-additional-fields-layout .ufoc-native-birth-month,
    .ufoc-additional-fields-layout .ufoc-native-birth-year,
    .ufoc-additional-fields-layout .ufoc-native-document-principal,
    .ufoc-additional-fields-layout #ufoc-principal-age-result,
    .ufoc-additional-fields-layout #ufoc-participants-autoload,
    .ufoc-additional-fields-layout .ufoc-policy-native-card{
        grid-column:1!important;
    }

    #ufoc-participants-autoload .ufoc-checkout-card{
        padding:12px!important;
    }

    #ufoc-participants-autoload .ufoc-grid{
        grid-template-columns:1fr!important;
    }

    #ufoc-participants-autoload .ufoc-birthdate-selects{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:5px!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.1.0 — checkout estable y fusionado
   ========================================================== */

/* Módulo fusionado dentro de Información del contacto */
.ufoc-contact-extra-module{
    margin:14px 0 0!important;
    padding:14px!important;
    border:1px solid rgba(91,55,104,.14)!important;
    border-radius:13px!important;
    background:#fbf9fc!important;
    box-sizing:border-box!important;
}
.ufoc-contact-extra-heading{
    display:flex!important;
    flex-direction:column!important;
    gap:2px!important;
    margin:0 0 10px!important;
}
.ufoc-contact-extra-heading strong{
    color:#3f2d46!important;
    font-size:14px!important;
    line-height:1.3!important;
}
.ufoc-contact-extra-heading span{
    color:#766b79!important;
    font-size:12px!important;
    line-height:1.4!important;
}
.ufoc-contact-extra-fields{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:9px!important;
    width:100%!important;
}
.ufoc-contact-extra-fields .ufoc-native-birth-day{
    grid-column:1!important;
}
.ufoc-contact-extra-fields .ufoc-native-birth-month{
    grid-column:2!important;
}
.ufoc-contact-extra-fields .ufoc-native-birth-year{
    grid-column:3!important;
}
.ufoc-contact-extra-fields .ufoc-native-document-principal{
    grid-column:1/-1!important;
}
.ufoc-contact-extra-fields #ufoc-principal-age-result{
    grid-column:1/-1!important;
    margin:0!important;
}

/* Ya no necesitamos la antigua cuadrícula Additional Fields. */
.ufoc-additional-fields-layout{
    display:block!important;
}
.ufoc-original-additional-empty{
    display:none!important;
}

/* Flujo visual requested: Contacto -> Acompañantes -> Facturación -> Pago -> Políticas */
.wp-block-woocommerce-checkout-contact-information-block,
.wc-block-checkout__contact-fields{
    margin-bottom:12px!important;
}
#ufoc-participants-autoload{
    margin:0 0 14px!important;
}
.wp-block-woocommerce-checkout-billing-address-block{
    margin-top:0!important;
}
.wp-block-woocommerce-checkout-payment-block{
    margin-top:12px!important;
}
.ufoc-policy-native-card{
    margin:14px 0!important;
    width:100%!important;
    box-sizing:border-box!important;
}

/* Acompañantes compactos y alineados */
#ufoc-participants-autoload .ufoc-checkout-card{
    margin:0!important;
    padding:15px!important;
    border-radius:13px!important;
}
#ufoc-participants-autoload .ufoc-card-heading{
    margin:0 0 9px!important;
}
#ufoc-participants-autoload .ufoc-event-participants{
    margin:8px 0 0!important;
}
#ufoc-participants-autoload .ufoc-companion-card{
    margin:0!important;
}

/* El campo técnico nativo nunca debe mostrarse. */
.ufoc-native-technical-field,
input[id*="companions-json"]{
    display:none!important;
}

/* Responsive */
@media(max-width:700px){
    .ufoc-contact-extra-fields{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    .ufoc-contact-extra-fields .ufoc-native-birth-day,
    .ufoc-contact-extra-fields .ufoc-native-birth-month,
    .ufoc-contact-extra-fields .ufoc-native-birth-year,
    .ufoc-contact-extra-fields .ufoc-native-document-principal,
    .ufoc-contact-extra-fields #ufoc-principal-age-result{
        grid-column:1!important;
    }

    .ufoc-contact-extra-module{
        padding:12px!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.1.1 — rendimiento y foco estables
   ========================================================== */

/*
 * El checkout ya NO se reorganiza continuamente con JavaScript.
 * El orden general se resuelve por CSS sobre los bloques WooCommerce.
 */
.ufoc-stable-checkout-layout{
    display:flex!important;
    flex-direction:column!important;
}

/* Orden solicitado */
.ufoc-stable-checkout-layout > .ufoc-order-contact{
    order:10!important;
}
.ufoc-stable-checkout-layout > .ufoc-order-participant{
    order:20!important;
}
.ufoc-stable-checkout-layout > .ufoc-order-billing{
    order:30!important;
}
.ufoc-stable-checkout-layout > .ufoc-order-payment{
    order:40!important;
}
.ufoc-stable-checkout-layout > .ufoc-order-policy{
    order:50!important;
}

/*
 * Fusión visual con Información del contacto.
 * Los campos siguen en su contenedor original de React.
 */
.ufoc-contact-merged-additional{
    margin-top:-2px!important;
    padding-top:0!important;
}
.ufoc-contact-merged-additional > h2,
.ufoc-contact-merged-additional > .wc-block-components-checkout-step__heading{
    display:none!important;
}
.ufoc-contact-merged-additional .wc-block-components-checkout-step__container{
    margin-top:0!important;
    padding-top:0!important;
}

/*
 * Anular el módulo físico creado en 3.1.0.
 * No movemos los campos a Contacto; solo los mostramos como una
 * continuación visual del mismo bloque.
 */
#ufoc-contact-extra-module{
    display:none!important;
}

/* Mantener los campos nativos en su contenedor WooCommerce. */
.ufoc-contact-extra-fields{
    display:contents!important;
}

/* Compactación continua Contacto + participante */
.ufoc-order-contact{
    margin-bottom:0!important;
}
.ufoc-order-participant{
    margin-top:0!important;
}

/* Acompañantes accesibles y sin capas que bloqueen el foco. */
#ufoc-participants-autoload,
#ufoc-participants-autoload .ufoc-checkout-card,
#ufoc-participants-autoload .ufoc-companion-card,
#ufoc-participants-autoload .ufoc-grid,
#ufoc-participants-autoload .ufoc-field,
#ufoc-participants-autoload .ufoc-field-input,
#ufoc-participants-autoload .ufoc-birth-select{
    pointer-events:auto!important;
}
#ufoc-participants-autoload{
    position:relative!important;
    z-index:1!important;
}
#ufoc-participants-autoload .ufoc-field-input,
#ufoc-participants-autoload .ufoc-birth-select{
    position:relative!important;
    z-index:2!important;
}

/* Política después de pago */
.ufoc-order-policy{
    width:100%!important;
    margin:14px 0!important;
}

/* Evitar espacios antiguos de la fusión 3.1.0 */
.ufoc-contact-extra-module + *,
.ufoc-contact-merged-additional{
    clear:both!important;
}

@media(max-width:700px){
    .ufoc-stable-checkout-layout{
        display:flex!important;
        flex-direction:column!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.1.2 — orden visual real del Checkout Blocks
   ========================================================== */

/*
 * WooCommerce usa wrappers intermedios. En 3.1.1 las clases podían
 * quedar en nodos internos y `order` no surtía efecto. Ahora las clases
 * se aplican al hijo DIRECTO de .wc-block-checkout__main.
 */
.ufoc-stable-checkout-layout{
    display:flex!important;
    flex-direction:column!important;
}

/* Orden exacto solicitado */
.ufoc-stable-checkout-layout > .ufoc-flow-contact{
    order:10!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-participant{
    order:20!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-companions{
    order:30!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-billing{
    order:40!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-payment{
    order:50!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-policy{
    order:60!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-note{
    order:70!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-actions{
    order:80!important;
}

/*
 * Cualquier bloque WooCommerce no identificado queda antes del botón
 * pero después de la estructura principal, sin alterar su funcionalidad.
 */
.ufoc-stable-checkout-layout > *{
    min-width:0!important;
}

/* Fusión visual Contacto + Datos del participante */
.ufoc-contact-merged-additional{
    margin-top:-2px!important;
    padding-top:0!important;
}
.ufoc-contact-merged-additional > h2,
.ufoc-contact-merged-additional .wc-block-components-checkout-step__heading{
    display:none!important;
}
.ufoc-contact-merged-additional .wc-block-components-checkout-step__container{
    margin-top:0!important;
    padding-top:0!important;
}

/*
 * Convertimos visualmente la sección de datos principales en un módulo
 * integrado a Contacto, sin mover inputs React.
 */
.ufoc-flow-participant{
    margin-top:0!important;
}
.ufoc-flow-participant .ufoc-additional-fields-layout{
    margin-top:0!important;
}
.ufoc-flow-participant .ufoc-additional-fields-layout::before{
    content:"Datos del participante principal";
    display:block!important;
    grid-column:1/-1!important;
    margin:0 0 3px!important;
    color:#3f2d46!important;
    font-size:14px!important;
    font-weight:800!important;
}

/* Acompañantes inmediatamente después del participante */
.ufoc-flow-companions{
    margin-top:10px!important;
    margin-bottom:14px!important;
}
.ufoc-flow-companions #ufoc-participants-autoload,
.ufoc-flow-companions.ufoc-order-companions{
    margin:0!important;
}

/* Facturación, pago y políticas con separación uniforme */
.ufoc-flow-billing{
    margin-top:4px!important;
}
.ufoc-flow-payment{
    margin-top:10px!important;
}
.ufoc-flow-policy{
    margin-top:12px!important;
    margin-bottom:12px!important;
}

/* Nota y botón */
.ufoc-flow-note{
    margin-top:4px!important;
}
.ufoc-flow-actions{
    margin-top:10px!important;
}

/*
 * 3.1.0 creó un módulo físico dentro de Contacto. Sigue oculto:
 * la fusión estable se realiza solo mediante orden visual.
 */
#ufoc-contact-extra-module{
    display:none!important;
}

/* Campos principales: forma compacta similar a 3.0.12 */
.ufoc-flow-participant .ufoc-additional-fields-layout{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:9px!important;
    width:100%!important;
}
.ufoc-flow-participant .ufoc-native-birth-day{
    grid-column:1!important;
}
.ufoc-flow-participant .ufoc-native-birth-month{
    grid-column:2!important;
}
.ufoc-flow-participant .ufoc-native-birth-year{
    grid-column:3!important;
}
.ufoc-flow-participant .ufoc-native-document-principal,
.ufoc-flow-participant #ufoc-principal-age-result,
.ufoc-flow-participant .ufoc-policy-native-card,
.ufoc-flow-participant #ufoc-participants-autoload{
    grid-column:1/-1!important;
}

/* Políticas no deben quedar dentro de Información adicional visualmente */
.ufoc-flow-participant .ufoc-policy-native-card{
    display:none!important;
}
.ufoc-flow-policy .ufoc-policy-native-card{
    display:block!important;
}

/* Responsive */
@media(max-width:700px){
    .ufoc-flow-participant .ufoc-additional-fields-layout{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    .ufoc-flow-participant .ufoc-native-birth-day,
    .ufoc-flow-participant .ufoc-native-birth-month,
    .ufoc-flow-participant .ufoc-native-birth-year,
    .ufoc-flow-participant .ufoc-native-document-principal,
    .ufoc-flow-participant #ufoc-principal-age-result{
        grid-column:1!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.1.3 — ajuste fino de orden y acompañantes
   ========================================================== */

/*
 * Orden definitivo solicitado:
 * Contacto -> Participante principal -> Acompañantes ->
 * Dirección de facturación -> Pago -> Políticas -> Nota -> Finalizar.
 */
.ufoc-stable-checkout-layout > .ufoc-flow-contact{
    order:10!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-participant{
    order:20!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-companions{
    order:30!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-billing{
    order:40!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-payment{
    order:50!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-policy{
    order:60!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-note{
    order:70!important;
}
.ufoc-stable-checkout-layout > .ufoc-flow-actions{
    order:80!important;
}

/* Eliminar visualmente el título largo del evento en acompañantes. */
#ufoc-participants-autoload .ufoc-event-title-compact{
    display:flex!important;
    justify-content:flex-end!important;
    align-items:center!important;
    min-height:0!important;
    margin:0 0 8px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
}
#ufoc-participants-autoload .ufoc-event-title-compact strong{
    display:none!important;
}
#ufoc-participants-autoload .ufoc-event-title-compact span{
    font-size:11.5px!important;
    line-height:1.3!important;
    color:#7a6d7c!important;
    font-weight:600!important;
}

/* Compactar transición antes de Dirección de facturación. */
.ufoc-flow-participant{
    margin-bottom:10px!important;
}
.ufoc-flow-companions{
    margin-top:0!important;
    margin-bottom:12px!important;
}
.ufoc-flow-billing{
    margin-top:0!important;
}


/* ==========================================================
   UFOcamping Core 3.1.4 — orden exacto + pasarelas por país
   ========================================================== */

/*
 * El orden ahora lo fija el DOM de wrappers completos.
 * Neutralizamos órdenes CSS heredados para evitar contradicciones.
 */
.ufoc-exact-checkout-order{
    display:block!important;
}
.ufoc-exact-checkout-order > *{
    order:initial!important;
}

/* Contacto + participante como flujo continuo */
.ufoc-contact-merged-additional{
    margin-top:0!important;
    padding-top:0!important;
}
.ufoc-contact-merged-additional > h2,
.ufoc-contact-merged-additional .wc-block-components-checkout-step__heading{
    display:none!important;
}
.ufoc-contact-merged-additional .wc-block-components-checkout-step__container{
    margin-top:0!important;
    padding-top:0!important;
}

/* Participante principal */
.ufoc-contact-merged-additional .ufoc-additional-fields-layout{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:9px!important;
    width:100%!important;
}
.ufoc-contact-merged-additional .ufoc-native-birth-day{
    grid-column:1!important;
}
.ufoc-contact-merged-additional .ufoc-native-birth-month{
    grid-column:2!important;
}
.ufoc-contact-merged-additional .ufoc-native-birth-year{
    grid-column:3!important;
}
.ufoc-contact-merged-additional .ufoc-native-document-principal,
.ufoc-contact-merged-additional #ufoc-principal-age-result{
    grid-column:1/-1!important;
}

/* Espaciado final solicitado */
#ufoc-participants-autoload{
    margin:10px 0 14px!important;
}
.wp-block-woocommerce-checkout-billing-address-block{
    margin-top:0!important;
}
.wp-block-woocommerce-checkout-payment-block{
    margin-top:10px!important;
}
.ufoc-order-policy{
    margin:12px 0!important;
}

/* Evitar título antiguo de Información adicional */
.ufoc-contact-merged-additional::before{
    content:"Datos del participante principal";
    display:block!important;
    margin:0 0 10px!important;
    color:#3f2d46!important;
    font-size:14px!important;
    font-weight:800!important;
}

/* Responsive */
@media(max-width:700px){
    .ufoc-contact-merged-additional .ufoc-additional-fields-layout{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    .ufoc-contact-merged-additional .ufoc-native-birth-day,
    .ufoc-contact-merged-additional .ufoc-native-birth-month,
    .ufoc-contact-merged-additional .ufoc-native-birth-year,
    .ufoc-contact-merged-additional .ufoc-native-document-principal,
    .ufoc-contact-merged-additional #ufoc-principal-age-result{
        grid-column:1!important;
    }
}


/* ==========================================================
   UFOcamping Core 3.1.5 — checkout limpio, jerarquía visual y país
   ========================================================== */
body.ufocamping-registration-checkout .wc-block-checkout__main{
    --ufoc-wine:#8f174f;
    --ufoc-wine-dark:#68113a;
    --ufoc-ink:#28212b;
    --ufoc-muted:#746b77;
    --ufoc-line:#eadfe7;
    --ufoc-soft:#fbf7fa;
}
body.ufocamping-registration-checkout .wc-block-checkout__main > *{
    box-sizing:border-box!important;
}
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-contact-information-block,
body.ufocamping-registration-checkout .ufoc-contact-merged-additional,
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-checkout-card,
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-billing-address-block,
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-payment-block,
body.ufocamping-registration-checkout .ufoc-policy-native-card,
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-order-note-block{
    width:100%!important;
    margin:0 0 14px!important;
    padding:18px!important;
    border:1px solid var(--ufoc-line)!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 5px 18px rgba(47,29,48,.045)!important;
}
body.ufocamping-registration-checkout .ufoc-contact-merged-additional{
    position:relative!important;
    padding-top:54px!important;
}
body.ufocamping-registration-checkout .ufoc-contact-merged-additional::before{
    content:"👤  Datos del participante principal"!important;
    position:absolute!important;
    top:17px!important;
    left:18px!important;
    right:18px!important;
    margin:0!important;
    padding:0 0 10px!important;
    border-bottom:1px solid var(--ufoc-line)!important;
    color:var(--ufoc-ink)!important;
    font-size:17px!important;
    font-weight:800!important;
    line-height:1.3!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload{
    margin:0 0 14px!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-checkout-card{
    margin:0!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-card-heading{
    margin:0 0 14px!important;
    padding:0 0 12px!important;
    border-bottom:1px solid var(--ufoc-line)!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-card-heading h2{
    color:var(--ufoc-ink)!important;
    font-size:17px!important;
    font-weight:800!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-card-heading p{
    color:var(--ufoc-muted)!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-companion-card{
    padding:15px!important;
    border:1px solid #eadde5!important;
    border-left:4px solid var(--ufoc-wine)!important;
    background:var(--ufoc-soft)!important;
    box-shadow:none!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-grid-2{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-event-title-compact{
    display:none!important;
}
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-billing-address-block::before{
    content:"🧾  Dirección de facturación";
    display:block;
    margin:0 0 13px;
    padding:0 0 10px;
    border-bottom:1px solid var(--ufoc-line);
    color:var(--ufoc-ink);
    font-size:17px;
    font-weight:800;
}
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-billing-address-block > .wc-block-components-checkout-step__heading{
    display:none!important;
}
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-payment-block::before{
    content:"💳  Opciones de pago";
    display:block;
    margin:0 0 13px;
    padding:0 0 10px;
    border-bottom:1px solid var(--ufoc-line);
    color:var(--ufoc-ink);
    font-size:17px;
    font-weight:800;
}
body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-payment-block > .wc-block-components-checkout-step__heading{
    display:none!important;
}
body.ufocamping-registration-checkout .ufoc-policy-native-card{
    border-color:#e5d090!important;
    background:#fffdf6!important;
}
body.ufocamping-registration-checkout .wc-block-components-checkout-place-order-button{
    min-height:60px!important;
    border:0!important;
    border-radius:12px!important;
    background:linear-gradient(135deg,var(--ufoc-wine-dark),var(--ufoc-wine))!important;
    box-shadow:0 8px 20px rgba(143,23,79,.18)!important;
    color:#fff!important;
    font-weight:900!important;
    text-transform:none!important;
}
body.ufocamping-registration-checkout .wc-block-components-checkout-place-order-button:hover{
    filter:brightness(1.06)!important;
}
body.ufocamping-registration-checkout input,
body.ufocamping-registration-checkout select,
body.ufocamping-registration-checkout textarea{
    border-radius:9px!important;
}
@media(max-width:700px){
    body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-contact-information-block,
    body.ufocamping-registration-checkout .ufoc-contact-merged-additional,
    body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-checkout-card,
    body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-billing-address-block,
    body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-payment-block,
    body.ufocamping-registration-checkout .ufoc-policy-native-card,
    body.ufocamping-registration-checkout .wp-block-woocommerce-checkout-order-note-block{
        padding:14px!important;
        border-radius:12px!important;
    }
    body.ufocamping-registration-checkout .ufoc-contact-merged-additional{
        padding-top:50px!important;
    }
    body.ufocamping-registration-checkout .ufoc-contact-merged-additional::before{
        top:14px!important;
        left:14px!important;
        right:14px!important;
        font-size:16px!important;
    }
    body.ufocamping-registration-checkout #ufoc-participants-autoload .ufoc-grid-2{
        grid-template-columns:1fr!important;
    }
}
\n\n/* UFOcamping Core 3.1.7 - aceptación obligatoria de políticas */
.ufoc-policy-required-error {
    outline: 2px solid #b42318;
    outline-offset: 3px;
}
.ufoc-policy-required-notice {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    font-weight: 600;
}
.ufoc-policy-place-order-locked {
    cursor: not-allowed !important;
}


/* UFOcamping Core 3.2.3 — campo de identificación sin solapamiento */
body.ufocamping-registration-checkout .ufoc-native-document-principal.wc-block-components-text-input,
body.ufocamping-registration-checkout .ufoc-native-document-principal .wc-block-components-text-input,
body.ufocamping-registration-checkout .ufoc-native-document-principal{
    position:relative!important;
    min-height:54px!important;
}
body.ufocamping-registration-checkout .ufoc-native-document-principal input[type="text"]{
    min-height:54px!important;
    padding:22px 13px 7px!important;
    line-height:1.35!important;
    font-size:14px!important;
    background:#fff!important;
}
body.ufocamping-registration-checkout .ufoc-native-document-principal label{
    position:absolute!important;
    top:7px!important;
    left:13px!important;
    right:auto!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    translate:none!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:600!important;
    color:#756b78!important;
    pointer-events:none!important;
    z-index:2!important;
}
body.ufocamping-registration-checkout .ufoc-native-document-principal input::placeholder{
    color:transparent!important;
    opacity:0!important;
}
