/* Isolated product-form preview. No global product, theme or checkout overrides. */
.cfl-rm-product-controls {
    --rm-p-bg: var(--cfl-surface, #fff);
    --rm-p-text: var(--cfl-text, #18232e);
    --rm-p-border: var(--cfl-border, #aab6c1);
    --rm-p-soft: var(--cfl-surface-alt, #f3f6f8);
    --rm-p-accent: var(--cfl-brand, #174e68);
    --rm-p-error: #9f2428;
    --rm-p-error-bg: #fff1f1;
    container-type: inline-size;
    display: block; box-sizing: border-box; min-inline-size: 0; width: 100%; max-width: 100%;
    margin: 1rem 0; padding: 1rem; border: 1px solid var(--rm-p-border); border-radius: 12px;
    background: var(--rm-p-bg); color: var(--rm-p-text); font-size: 1rem; line-height: 1.5;
    overflow-wrap: anywhere; text-align: start;
}
[data-theme="dark"] .cfl-rm-product-controls, [data-cfl-theme="dark"] .cfl-rm-product-controls,
.cfl-theme-dark .cfl-rm-product-controls, .cfl-rm-product-controls[data-theme="dark"] {
    --rm-p-bg: #161d25; --rm-p-text: #edf1f5; --rm-p-border: #738292; --rm-p-soft: #202c38;
    --rm-p-accent: #a2d8f4; --rm-p-error: #ffb9ba; --rm-p-error-bg: #3b1b21; color-scheme: dark;
}
[data-theme="light"] .cfl-rm-product-controls, [data-cfl-theme="light"] .cfl-rm-product-controls { color-scheme: light; }
.cfl-rm-product-controls *, .cfl-rm-product-controls *::before, .cfl-rm-product-controls *::after { box-sizing: border-box; }
.cfl-rm-product-controls [hidden] { display: none !important; }
.cfl-rm-product-controls legend.screen-reader-text { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.cfl-rm-product-controls .cfl-rm-product-controls__heading { color:var(--rm-p-text)!important; font-size:1.15rem!important; line-height:1.3!important; font-weight:700; margin:0 0 .85rem!important; padding:0!important; }
[data-cfl-storefront-location][data-cfl-native-location-replaced="yes"] { display:none!important; }
.cfl-rm-product-controls p { color: inherit; margin: .5rem 0 .9rem; }
.cfl-rm-product-controls__notice { border-inline-start: 3px solid var(--rm-p-accent); padding-inline-start: .8rem; }
.cfl-rm-product-controls label { display: block; margin: .65rem 0 .25rem; font-weight: 600; color: inherit; }
.cfl-rm-product-controls input:not([type="hidden"]), .cfl-rm-product-controls select {
    display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 44px; margin: 0; padding: .55rem .7rem;
    color: var(--rm-p-text); background: var(--rm-p-bg); border: 1px solid var(--rm-p-border); border-radius: 6px; font: inherit;
}
.cfl-rm-product-controls input[aria-invalid="true"], .cfl-rm-product-controls select[aria-invalid="true"] { border: 2px solid var(--rm-p-error); }
.cfl-rm-product-controls__dates { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.cfl-rm-product-controls [data-timezone], .cfl-rm-product-controls [data-duration-limits] { font-size:.875rem; line-height:1.45; margin:.5rem 0 .85rem; }
.cfl-rm-product-controls [data-duration-limits] { padding:.65rem .75rem; border-radius:6px; background:var(--rm-p-soft); }
.cfl-rm-product-controls [data-quantity-slot] { margin-block:.5rem; }
.cfl-rm-product-controls [data-quantity-slot] .quantity { display:block!important; float:none!important; margin:0!important; width:6.5rem; max-width:100%; }
.cfl-rm-product-controls [data-quantity-slot] .quantity input.qty { width:100%!important; padding:.55rem .7rem!important; font-size:1rem!important; }
.cfl-rm-product-controls input[type="date"], .cfl-rm-product-controls input[type="datetime-local"] { min-inline-size:0; -webkit-appearance:none; appearance:none; text-align:start; }
.cfl-rm-product-controls input::-webkit-date-and-time-value { text-align:start; min-height:1.5em; }
@container (min-width: 34rem) { .cfl-rm-product-controls__dates { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cfl-rm-product-controls .button { min-height: 44px; max-width: 100%; margin: .65rem .3rem 0 0; padding: .65rem 1rem;
    background: var(--rm-p-text); color: var(--rm-p-bg); border: 1px solid var(--rm-p-text); border-radius: 6px; font: inherit; font-weight: 600; white-space: normal; cursor: pointer; }
.cfl-rm-product-controls .button:disabled { opacity: .6; cursor: wait; }
.cfl-rm-product-controls [data-reload] { background:var(--rm-p-bg)!important; color:var(--rm-p-text)!important; border-color:var(--rm-p-border)!important; }
@container (max-width:34rem) {
    .cfl-rm-product-controls [data-calculate], .cfl-rm-product-controls [data-reload] { display:block; width:100%; margin-inline:0; }
}
.cfl-rm-product-controls summary { min-height: 44px; padding: .65rem 0; cursor: pointer; font-weight: 600; }
.cfl-rm-product-controls__error { background: var(--rm-p-error-bg); border: 1px solid var(--rm-p-error); color: var(--rm-p-error); padding: .8rem; border-radius: 6px; margin: .75rem 0; }
.cfl-rm-product-controls__quote { background: var(--rm-p-soft); border: 1px solid var(--rm-p-border); padding: .9rem; border-radius: 8px; margin: .9rem 0; }
.cfl-rm-product-controls__quote h3 { color: inherit; margin: 0 0 .3rem; font-size: 1.05rem; }
.cfl-rm-product-controls__quote strong { font-size: 1.5rem; }
.cfl-rm-product-controls__quote ul { padding-inline-start: 1.1rem; }
.cfl-rm-product-controls :focus-visible, .cfl-rm-product-controls__error:focus { outline: 3px solid var(--rm-p-accent); outline-offset: 3px; }
@media (forced-colors: active) { .cfl-rm-product-controls :focus-visible { outline: 3px solid Highlight; } }
@media (prefers-reduced-motion: reduce) { .cfl-rm-product-controls * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Availability is observational. Red uncertainty/unavailable states use text as well as color. */
.cfl-rm-product-controls__availability, .cfl-rm-product-controls__alternatives {
    border: 1px solid var(--rm-p-border); border-radius: 8px; padding: .9rem; margin: .9rem 0;
    background: var(--rm-p-soft); color: var(--rm-p-text);
}
.cfl-rm-product-controls__availability[data-state="unavailable"], .cfl-rm-product-controls__availability[data-state="unverified"] {
    border-color: var(--rm-p-error); color: var(--rm-p-error); background: var(--rm-p-error-bg);
}
.cfl-rm-product-controls__availability h3, .cfl-rm-product-controls__alternatives h3 { font-size: 1.05rem; margin: 0 0 .35rem; color: inherit; }
.cfl-rm-product-controls__alternatives ul { padding-inline-start: 1.2rem; margin: .7rem 0; }
.cfl-rm-product-controls__alternatives li { padding-block: .6rem; border-block-end: 1px solid var(--rm-p-border); }
.cfl-rm-product-controls__availability:focus, .cfl-rm-product-controls__alternatives:focus { outline: 3px solid var(--rm-p-accent); outline-offset: 3px; }

.cfl-rm-product-controls .cfl-rm-product-controls__sr-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Availability signup stays inside the selected item/location; never a second cart form. */
.cfl-rm-availability-only { display:block!important; width:100%; margin:1rem 0; }
.cfl-rm-availability-only > label { display:block; font-weight:600; margin:.5rem 0; }
.cfl-rm-availability-only > select { min-height:44px; max-width:100%; width:100%; padding:.6rem; }
.cfl-rm-product-controls[data-availability-only] [data-calculate], .cfl-rm-product-controls[data-availability-only] .cfl-rm-product-controls__dates,
.cfl-rm-product-controls[data-availability-only] [data-quantity-slot], .cfl-rm-product-controls[data-availability-only] [data-quantity-note],
.cfl-rm-product-controls[data-availability-only] [data-duration-limits], .cfl-rm-product-controls[data-availability-only] [data-fulfillment-panel],
.cfl-rm-product-controls[data-availability-only] [data-clock-options] { display:none!important; }
.cfl-rm-product-controls .cfl-rm-availability-alert { margin-block:.8rem; padding:.6rem .85rem; border:1px solid var(--rm-p-border); border-radius:8px; background:var(--rm-p-soft); }
.cfl-rm-product-controls .cfl-rm-availability-alert summary { line-height:1.4; padding:.45rem 0; }
.cfl-rm-product-controls .cfl-rm-availability-alert__fields { display:grid; grid-template-columns:minmax(0,1fr); gap:.65rem; margin-block:.5rem; }
.cfl-rm-product-controls .cfl-rm-availability-alert__fields label { min-width:0; margin:0; display:grid; gap:.35rem; }
.cfl-rm-product-controls .cfl-rm-availability-alert__consent { display:flex; align-items:flex-start; gap:.55rem; margin-block:1rem .65rem; font-weight:400; }
.cfl-rm-product-controls .cfl-rm-availability-alert__consent input[type="checkbox"] { display:inline-block; flex:0 0 18px; width:18px; height:18px; min-height:18px; margin:.2rem 0 0; padding:0; accent-color:var(--cfl-brand-primary,#17324d); }
.cfl-rm-product-controls .cfl-rm-availability-alert p { font-size:.9rem; margin:.65rem 0; }
.cfl-rm-product-controls .cfl-rm-availability-alert [data-alert-error] { color:var(--rm-p-error); font-weight:600; }
.cfl-rm-product-controls .cfl-rm-availability-alert__submit,
.cfl-rm-product-controls .cfl-rm-availability-alert__submit:hover,
.cfl-rm-product-controls .cfl-rm-availability-alert__submit:focus { background:var(--cfl-brand-primary,#17324d); color:#fff!important; -webkit-text-fill-color:#fff!important; border-color:var(--cfl-brand-primary,#17324d); }
@container (min-width:34rem) { .cfl-rm-product-controls .cfl-rm-availability-alert__fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@container (max-width:34rem) { .cfl-rm-product-controls .cfl-rm-availability-alert__submit { width:100%; margin-inline:0; } }

/* S07 selected-location fulfillment; no separate form or storefront. */
.cfl-rm-product-controls__fulfillment { margin-top:1rem; border-top:1px solid var(--rm-p-border); padding-top:1rem; }
.cfl-rm-product-controls__delivery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; margin-block:1rem; }
.cfl-rm-product-controls__delivery-grid > div { min-width:0; }
.cfl-rm-product-controls textarea { width:100%; box-sizing:border-box; font:inherit; padding:.6rem; border:1px solid currentColor; border-radius:.4rem; background:transparent; color:inherit; resize:vertical; }
.cfl-rm-product-controls__fulfillment [data-fulfillment-options] { overflow-wrap:anywhere; margin-block:1rem; }
.cfl-rm-product-controls__fulfillment-warning { border-inline-start:3px solid var(--rm-p-error); padding-left:.75rem; }
@container (max-width:34rem) { .cfl-rm-product-controls__delivery-grid { grid-template-columns:minmax(0,1fr); } }

.cfl-rm-product-controls [data-fulfillment-options]:focus, .cfl-rm-product-controls [data-fulfillment-result]:focus { outline:3px solid var(--rm-p-accent); outline-offset:3px; }
