/** Buratino Store Inventory — area calculator */
.single-product .bsi-area-calc{
    clear:both;
    box-sizing:border-box;
    width:100%;
    margin:0;
    border:0;
    border-top:1px solid #e7e4e1;
    background:transparent;
}
/* Closed: a light divider row. Open: the same compact white card language
   used by the multistore availability block. */
.single-product .bsi-area-calc.is-open{
    border:1px solid #e7e1dc;
    border-radius:0;
    background:#fff;
    box-shadow:0 2px 10px rgba(56,51,47,.06);
}
.single-product .bsi-area-calc.is-open .bsi-area-calc__toggle{
    padding-left:14px;
    padding-right:14px;
}
.single-product .bsi-area-calc.is-open .bsi-area-calc__body{
    padding:12px 14px 14px;
    border-bottom:0;
}
.single-product .bsi-area-calc__toggle{
    -webkit-appearance:none;
    appearance:none;
    display:flex;
    width:100%;
    min-height:44px;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0;
    padding:10px 0;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#4a4039;
    font:inherit;
    font-size:13.5px;
    font-weight:600;
    line-height:1.35;
    text-align:left;
    text-transform:none;
    cursor:pointer;
    transition:background-color .18s ease,color .18s ease;
}
.single-product .bsi-area-calc__toggle-title{
    min-width:0;
}
.single-product .bsi-area-calc__status{
    flex:0 0 auto;
    margin-left:auto;
    padding:3px 8px;
    border:1px solid #ead9cc;
    border-radius:999px;
    background:#fbf6f2;
    color:#a45b3f;
    font-size:11px;
    font-weight:600;
    line-height:1.25;
    white-space:nowrap;
}
.single-product .bsi-area-calc__status[hidden]{display:none!important}
.single-product .bsi-area-calc__toggle:hover,
.single-product .bsi-area-calc__toggle:focus,
.single-product .bsi-area-calc__toggle:active{
    background:transparent!important;
    box-shadow:none!important;
    color:rgb(76,121,114);
}
.single-product .bsi-area-calc__toggle:focus-visible{
    outline:1px solid rgb(76,121,114);
    outline-offset:-1px;
}
/* Match the multistore/availability disclosure arrow: right when closed, down when open. */
.single-product .bsi-area-calc__arrow{
    display:inline-block;
    flex:0 0 auto;
    margin-left:8px;
    color:#958d86;
    font-size:19px;
    line-height:1;
    font-weight:400;
    opacity:1;
    transform:none;
    transition:transform .18s ease;
}
.single-product .bsi-area-calc__toggle[aria-expanded="true"]{
    color:rgb(76,121,114);
}
.single-product .bsi-area-calc__toggle[aria-expanded="true"] .bsi-area-calc__arrow{
    transform:rotate(90deg);
}
.single-product .bsi-area-calc__body{
    padding:12px 0 14px;
    border-top:1px solid #eee;
    border-bottom:1px solid #e7e4e1;
    background:transparent;
}
.single-product .bsi-area-calc__body[hidden]{display:none!important}
.single-product .bsi-area-calc__layout{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(220px,1.1fr);gap:18px;align-items:start}
.single-product .bsi-area-calc__fields{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end}
.single-product .bsi-area-calc__field{display:flex;flex-direction:column;gap:4px;margin:0;color:#555;font-size:12px}
.single-product .bsi-area-calc__input-wrap{display:flex;align-items:center;height:34px;border:1px solid #e5e5e5;border-radius:3px;background:#fff;overflow:hidden}
.single-product .bsi-area-calc__input-wrap input{width:86px;height:32px!important;margin:0!important;padding:4px 8px!important;border:0!important;box-shadow:none!important;background:#fff!important;font-size:14px!important}
.single-product .bsi-area-calc__input-wrap>span{padding:0 8px 0 2px;color:#777;font-size:13px}
.single-product .bsi-area-calc__field select{height:34px!important;min-height:34px!important;margin:0!important;padding:4px 28px 4px 9px!important;border:1px solid #e5e5e5!important;border-radius:3px!important;background-color:#fff!important;font-size:13px!important}
.single-product .bsi-area-calc__summary{min-height:52px;padding-top:18px}
.single-product .bsi-area-calc__hint{color:#888;font-size:12.5px;line-height:1.45}
.single-product .bsi-area-calc__result{color:#555;font-size:13px;line-height:1.45}
.single-product .bsi-area-calc__result[hidden],.single-product .bsi-area-calc__raw[hidden]{display:none!important}
.single-product .bsi-area-calc__result strong{color:#333;font-size:15px}
.single-product .bsi-area-calc__raw{margin-bottom:1px;color:#888;font-size:12px}
.single-product .bsi-area-calc__price{margin-top:1px;color:#6a452f;font-size:14px;font-weight:600}
.single-product .bsi-area-calc__stock{margin-top:2px;font-size:12.5px}
.single-product .bsi-area-calc__stock.is-ok{color:rgb(76,121,114)}
.single-product .bsi-area-calc__stock.is-short{color:#a45b3f}

/* Area-aware Length states: visually inactive when the currently selected city
   cannot supply enough pieces for the entered area. They stay visible so users
   can understand which lengths exist and choose a workable alternative. */
.single-product button.bsi-variation-label.is-area-short{
    border-color:#ead9cc!important;
    background:#fbf6f2!important;
    color:#b08a72!important;
    opacity:.72!important;
    cursor:not-allowed!important;
}
.single-product button.bsi-variation-label.is-area-short:hover,
.single-product button.bsi-variation-label.is-area-short:focus-visible{
    border-color:#ead9cc!important;
    background:#fbf6f2!important;
    color:#b08a72!important;
}
.single-product button.bsi-variation-label.is-area-short-selected{
    border-color:#b77a38!important;
    background:#b77a38!important;
    color:#fff!important;
}

@media(max-width:640px){
    .single-product .bsi-area-calc__layout{grid-template-columns:1fr;gap:7px}
    .single-product .bsi-area-calc__summary{min-height:0;padding-top:0}
}
@media(max-width:480px){
    .single-product .bsi-area-calc__fields{gap:7px 10px}
    .single-product .bsi-area-calc__input-wrap input{width:76px}
}

/* Calculator is rendered before the single variation/button row. */
.single-product form.variations_form .single_variation_wrap > .bsi-area-calc{
    display:block;
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    flex:0 0 100%;
}

/* 0.7.47-dev: one vertical rhythm for the product purchase stack.
   Keep 14px between: variations -> calculator -> buy row -> availability. */
.single-product form.variations_form.bsi-variation-labels-active .single_variation_wrap{
    margin-top:14px!important;
    padding-top:0!important;
}
.single-product form.variations_form .single_variation_wrap > .bsi-area-calc{
    margin:0!important;
}
/* The standard WooCommerce variation box only duplicated price/stock here.
   When our calculator is present, keeping that empty box visible added a different
   gap after a variation was selected. Data/events stay untouched in the DOM. */
.single-product form.variations_form .single_variation_wrap > .bsi-area-calc + .woocommerce-variation.single_variation{
    display:none!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
}
.single-product form.variations_form .single_variation_wrap > .bsi-area-calc ~ .woocommerce-variation-add-to-cart{
    margin-top:14px!important;
    margin-bottom:0!important;
}
/* Close the form with the same spacing used inside the stack. */
.single-product .summary form.variations_form.bsi-variation-labels-active{
    margin-bottom:14px!important;
}
.single-product .summary form.variations_form.bsi-variation-labels-active + .bsi-city-order-note-slot + .bsi-availability{
    margin-top:0!important;
}

/* Simple products: calculator is rendered before form.cart, not inside
   WoodMart's flex purchase row. This guarantees the same full-width
   placement as on variable products without fighting theme flex styles. */
.single-product .summary .bsi-area-calc[data-product-type="simple"]{
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 14px!important;
}
.single-product .summary .bsi-area-calc[data-product-type="simple"] + form.cart{
    margin-top:0!important;
}

@media(max-width:480px){
    .single-product .bsi-area-calc__toggle{gap:8px;padding-left:0;padding-right:0}
    .single-product .bsi-area-calc__status{padding:3px 6px;font-size:10.5px}
}

/* 0.7.56-dev: room mode first; one wall or all walls + ceiling. */
.single-product .bsi-area-calc__room{
    margin-top:10px;
    border-top:1px solid #eee;
}
.single-product .bsi-area-calc__room-toggle{
    -webkit-appearance:none;
    appearance:none;
    display:flex;
    width:100%;
    min-height:36px;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0;
    padding:8px 0 0;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:rgb(76,121,114);
    font:inherit;
    font-size:12.5px;
    font-weight:500;
    line-height:1.35;
    text-align:left;
    text-transform:none;
    cursor:pointer;
}
.single-product .bsi-area-calc.is-open .bsi-area-calc__room-toggle{
    padding-left:0;
    padding-right:0;
}
.single-product .bsi-area-calc__room-toggle:hover,
.single-product .bsi-area-calc__room-toggle:focus,
.single-product .bsi-area-calc__room-toggle:active{
    background:transparent!important;
    box-shadow:none!important;
    color:rgb(76,121,114);
}
.single-product .bsi-area-calc__room-arrow{
    flex:0 0 auto;
    color:#958d86;
    font-size:17px;
    line-height:1;
    transform:none;
    transition:transform .18s ease;
}
.single-product .bsi-area-calc__room-toggle[aria-expanded="true"] .bsi-area-calc__room-arrow{transform:rotate(90deg)}
.single-product .bsi-area-calc__room-body{padding:9px 0 0}
.single-product .bsi-area-calc__room-body[hidden]{display:none!important}
.single-product .bsi-area-calc__room-fields{display:grid;grid-template-columns:minmax(170px,1.4fr) repeat(3,minmax(100px,1fr));gap:10px;align-items:end}
.single-product .bsi-area-calc__room-fields.is-one-wall{grid-template-columns:minmax(170px,1.4fr) repeat(2,minmax(120px,1fr))}
.single-product .bsi-area-calc__room-fields .bsi-area-calc__input-wrap input{width:100%;min-width:0}
.single-product .bsi-area-calc__room-mode select{width:100%}
.single-product .bsi-area-calc__room-note{margin-top:7px;color:#999;font-size:11.5px;line-height:1.35}
.single-product .bsi-area-calc__room-note.is-auto{color:rgb(76,121,114)}
.single-product .bsi-area-calc__room-note.is-manual{color:#888}
.single-product .bsi-area-calc__room-fields .is-hidden{display:none!important}
@media(max-width:640px){
    .single-product .bsi-area-calc__room-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
