/* =====================================================================
   123 LayBy — theme compatibility layer
   Styles the markup that PHP helpers, AJAX responses and the existing
   jQuery plugins still output (category menu helper, mini cart, search
   suggestions, Bootstrap modals/tabs, jQuery UI datepicker, SweetAlert,
   flash messages, legacy form classes). Loaded after style.css.
   ===================================================================== */

/* ---------- Base safety ---------- */
.lb-main{display:block;min-height:40vh}
.lb-theme .hidden{display:none!important}
.lb-theme .clearfix::after{content:"";display:table;clear:both}
.lb-theme .pull-right{float:right}
.lb-theme .pull-left{float:left}
.lb-theme .text-center{text-align:center}
.lb-theme .text-right{text-align:right}
.lb-theme .img-responsive{max-width:100%;height:auto}
.lb-theme .fa{font-family:FontAwesome;font-style:normal}

/* ---------- Ticker account links ---------- */
@media (min-width:761px){.ticker__links{display:flex;align-items:center;gap:18px;flex:none}}
.ticker__links a{font-weight:600;white-space:nowrap;opacity:.95}
.ticker__links a:hover{opacity:1;text-decoration:underline}
.ticker__hi{white-space:nowrap;opacity:.9}

/* ---------- Header search (Cake form inside .search) ---------- */
.search form{width:100%;position:relative}
.search .control-group{position:relative;display:flex;align-items:center;width:100%}
.search .search-button{position:absolute;right:5px;top:50%;margin-top:-20px;width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;transition:transform .2s,background .2s}
.search .search-button:hover{background:var(--red-700);transform:scale(1.06)}
.search-suggestions{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 50px -30px rgba(23,24,28,.45);max-height:360px;overflow:auto;padding:6px}
.search-suggestions ul{display:grid}
.search-suggestions li a{display:block;padding:10px 14px;border-radius:12px;font-size:14.5px;font-weight:500;transition:background .15s,color .15s}
.search-suggestions li a:hover{background:var(--mist);color:var(--red)}
.search-suggestions:empty{display:none!important}

/* ---------- Header cart + mini cart dropdown ---------- */
.top-cart-row{position:relative}
.lb-cart{position:relative}
.lb-minicart{position:absolute;right:0;top:calc(100% + 10px);z-index:60;width:340px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 60px -30px rgba(23,24,28,.5);padding:14px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s var(--ease),visibility 0s .2s}
.lb-cart:hover .lb-minicart,.lb-cart:focus-within .lb-minicart{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .25s var(--ease)}
.lb-minicart::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.lb-minicart__item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.lb-minicart__img{width:64px;height:64px;border-radius:12px;background:var(--mist);padding:6px;display:grid;place-items:center}
.lb-minicart__img img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.lb-minicart__info .name{font-size:13.5px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lb-minicart__info .price{font-weight:700;color:var(--red);margin-top:4px;font-size:14px}
.lb-minicart__rm a{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--slate);transition:background .2s,color .2s}
.lb-minicart__rm a:hover{background:var(--red-50);color:var(--red)}
.lb-minicart__total{padding-top:12px;display:grid;gap:12px}
.lb-minicart__total .sumrow{display:flex;justify-content:space-between;font-weight:700}
.lb-minicart__total .price{color:var(--red)}
.lb-minicart__empty{padding:18px 6px;text-align:center;color:var(--slate);font-weight:600}
@media (max-width:760px){.lb-minicart{display:none}}

/* ---------- Category menu (output of CategoryHelper::getFrontCategories) ---------- */
.lb-catnav{align-items:stretch}
.lb-catnav>li{position:static}
.lb-catnav>li>a{position:relative;display:block;padding:14px 0;font-size:14px;font-weight:600;white-space:nowrap}
.lb-catnav>li>a::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:2px;border-radius:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.lb-catnav>li:hover>a,.lb-catnav>li:focus-within>a{color:var(--red)}
.lb-catnav>li:hover>a::after,.lb-catnav>li:focus-within>a::after{transform:scaleX(1)}
.lb-catnav>li>.dropdown-menu{position:absolute;left:0;right:0;top:100%;z-index:55;background:#fff;border-top:1px solid var(--line);box-shadow:0 40px 60px -40px rgba(23,24,28,.45);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .22s,transform .22s var(--ease),visibility 0s .22s}
.lb-catnav>li:hover>.dropdown-menu,.lb-catnav>li:focus-within>.dropdown-menu{opacity:1;visibility:visible;transform:none;transition:opacity .22s .06s,transform .3s .06s var(--ease)}
.lb-catnav .yamm-content{width:min(1320px,100% - 48px);margin-inline:auto;padding-block:28px 34px}
.lb-catnav .yamm-content>.row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:22px 32px;align-content:start}
.lb-catnav .yamm-content>.row:empty{display:none}
.lb-catnav li:has(.row:empty)>.dropdown-menu{display:none}
.lb-catnav .col-menu .title{display:inline-block;font:600 16px/1.3 var(--font-d);margin:0 0 6px;transition:color .2s}
.lb-catnav .col-menu a:hover .title{color:var(--red)}
.lb-catnav .col-menu ul.links li a,.lb-catnav .col-menu ul.list li a{display:inline-block;padding:3px 0;font-size:14px;color:var(--slate);transition:color .2s,transform .2s}
.lb-catnav .col-menu ul.list li a{padding-left:12px;font-size:13px}
.lb-catnav .col-menu ul li a:hover{color:var(--red);transform:translateX(3px)}

/* Mobile drawer version of the same helper output */
.lb-drawer-list>li{border-bottom:1px solid var(--line);position:relative}
.lb-drawer-list>li>a{display:block;padding:15px 44px 15px 2px;font-weight:700}
.lb-drawer-list>li.lb-drawer-acc>a,.lb-drawer-list>li.lb-drawer-out>a{color:var(--red)}
.lb-drawer-list>li.lb-drawer-help>a{color:var(--slate)}
.lb-drawer-list .dropdown-menu{display:none;padding:0 0 14px 4px}
.lb-drawer-list li.is-open>.dropdown-menu{display:block}
.lb-drawer-list .yamm-content>.row{display:grid;gap:4px}
.lb-drawer-list .col-menu .title{font-size:15px;font-weight:600;margin:0;padding:6px 0;color:var(--ink)}
.lb-drawer-list .col-menu ul li a{display:block;padding:5px 0 5px 12px;color:var(--slate);font-size:14.5px}
.lb-drawer-list .col-menu ul.list li a{padding-left:24px;font-size:14px}
.lb-drawer-list a:hover,.lb-drawer-list a:hover .title{color:var(--red)}
.lb-dd-tg{position:absolute;right:0;top:8px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;transition:background .2s}
.lb-dd-tg:hover{background:var(--mist)}
.lb-dd-tg svg{transition:transform .25s}
li.is-open>.lb-dd-tg svg{transform:rotate(90deg)}

/* ---------- Flash messages (element/flash/*) ---------- */
.lb-theme>.message{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:120;max-width:min(560px,calc(100% - 32px));padding:14px 20px;border-radius:16px;font-weight:600;font-size:14.5px;background:var(--ink);color:#fff;box-shadow:0 20px 40px -20px rgba(0,0,0,.6);cursor:pointer;animation:lbIn .4s var(--ease)}
.lb-theme>.message.success{background:#0B7A55}
.lb-theme>.message.error{background:var(--red-700)}
.lb-theme>.message.hidden{display:none}
@keyframes lbIn{from{opacity:0;transform:translate(-50%,-12px)}}

/* ---------- Bootstrap modal (JS still used: .modal('show')) ---------- */
div.modal{position:fixed;inset:0;z-index:1050;display:none;overflow-x:hidden;overflow-y:auto;padding:0;border:0;border-radius:0;width:auto;max-width:none;text-align:left;box-shadow:none;background:transparent;animation:none;outline:0}
div.modal.fade .modal-dialog{transform:translateY(-24px) scale(.98);opacity:0;transition:transform .35s var(--ease),opacity .3s}
div.modal.in .modal-dialog{transform:none;opacity:1}
.modal-dialog{position:relative;width:min(600px,calc(100% - 32px));margin:60px auto}
.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 120px)}
.modal-content{position:relative;width:100%;background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.5)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-body{padding:22px}
.modal-footer{padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}
.modal-body img{margin-inline:auto}
div.modal .close{position:absolute;right:12px;top:10px;z-index:2;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:26px;line-height:1;color:var(--ink);box-shadow:0 6px 16px -8px rgba(0,0,0,.4)}
div.modal .close:hover{background:var(--red);color:#fff}
div.modal .close .close-btn{font-size:inherit;color:inherit;margin:0}
.modal-backdrop{position:fixed;inset:0;z-index:1040;background:rgba(23,24,28,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.modal-backdrop.fade{opacity:0;transition:opacity .3s}
.modal-backdrop.in{opacity:1}
body.modal-open{overflow:hidden}

/* ---------- Bootstrap tabs / collapse used by existing JS ---------- */
.tab-content>.tab-pane{display:none}
.tab-content>.tab-pane.active{display:block;animation:lbFade .35s var(--ease)}
@keyframes lbFade{from{opacity:0;transform:translateY(6px)}}
.panel-collapse.collapse{display:none}
.panel-collapse.collapse.in{display:block}
.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}

/* ---------- SweetAlert above the sticky header ---------- */
.sweet-overlay{z-index:1100!important}
.sweet-alert{z-index:1110!important;border-radius:26px!important;font-family:var(--font-b)!important}
.sweet-alert h2{font-family:var(--font-d)!important;font-weight:650!important}
.sweet-alert button{border-radius:999px!important;font-weight:700!important;padding:12px 28px!important}

/* ---------- jQuery UI datepicker ---------- */
.ui-datepicker{z-index:1060!important;background:#fff;border:1px solid var(--line)!important;border-radius:18px;padding:12px;box-shadow:0 30px 50px -28px rgba(23,24,28,.5);font-family:var(--font-b)!important;width:290px}
.ui-datepicker .ui-datepicker-header{background:var(--mist);border:0;border-radius:12px;padding:8px 0;font-weight:700}
.ui-datepicker .ui-datepicker-title{font-family:var(--font-d)}
.ui-datepicker th{font-size:12px;color:var(--slate);font-weight:600}
.ui-datepicker td a,.ui-datepicker td span{text-align:center!important;border:0!important;border-radius:10px;background:transparent!important;padding:7px 0!important;font-weight:600}
.ui-datepicker td a:hover{background:var(--red-50)!important;color:var(--red)!important}
.ui-datepicker td .ui-state-active,.ui-datepicker td .ui-state-highlight{background:var(--red)!important;color:#fff!important}
.ui-datepicker .ui-state-disabled{opacity:.35}
.ui-datepicker-prev,.ui-datepicker-next{border-radius:50%!important;cursor:pointer;top:6px!important}
.ui-autocomplete{z-index:70!important;border-radius:14px;overflow:hidden}

/* ---------- Legacy form classes still printed by PHP / AJAX ---------- */
.lb-theme .form-control,.lb-theme .unicase-form-control{display:block;width:100%;min-height:50px;padding:12px 15px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font:500 15px var(--font-b);color:var(--ink);transition:border-color .2s,box-shadow .2s;box-shadow:none}
.lb-theme textarea.form-control{min-height:120px;resize:vertical}
.lb-theme select.form-control{appearance:none;-webkit-appearance:none;padding-right:42px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2317181C' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 15px center}
.lb-theme .form-control:focus,.lb-theme .unicase-form-control:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(23,24,28,.08)}
.lb-theme .form-control[readonly],.lb-theme .form-control[disabled]{background:var(--mist);color:var(--slate)}
.lb-theme .form-group{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;min-width:0}
.lb-theme .form-group>label,.lb-theme .info-title{font-weight:600;font-size:14px}
.lb-theme .form-group label span,.lb-theme .info-title span,.lb-theme .req{color:var(--red)}
/* field error boxes filled by form.js / validation.js ("#fieldError") */
.lb-theme .error-msg,.lb-theme [id$="Error"]{color:var(--red-700);font-size:13px;font-weight:600}
.lb-theme .message-div,.lb-theme #message-div{font-weight:600;font-size:14px}
.lb-theme #message-div.error{background:var(--red-50);color:var(--red-700);padding:12px 14px;border-radius:14px}
.lb-theme #message-div.success{background:var(--mint-50);color:#0B7A55;padding:12px 14px;border-radius:14px}
.lb-theme .cartMsgDiv:not(:empty){margin-top:10px;padding:10px 14px;border-radius:12px;background:var(--red-50);color:var(--red-700);font-weight:600;font-size:14px}

/* Legacy buttons printed by AJAX fragments (keep them on-brand) */
.lb-theme .btn-primary,.lb-theme .btn-upper,.lb-theme .btn-success,.lb-theme .btn-danger,.lb-theme .btn-default,.lb-theme .btn-info,.lb-theme .btn-warning{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px;font-weight:700;font-size:14.5px;border:0;cursor:pointer;transition:background .2s,transform .2s;text-transform:none}
.lb-theme .btn-primary,.lb-theme .btn-upper{background:var(--red);color:#fff}
.lb-theme .btn-primary:hover,.lb-theme .btn-upper:hover{background:var(--red-700);transform:translateY(-1px)}
.lb-theme .btn-success{background:var(--mint);color:#fff}
.lb-theme .btn-danger{background:var(--red-700);color:#fff}
.lb-theme .btn-default{background:#fff;border:1.5px solid var(--line);color:var(--ink)}
.lb-theme .btn-block{width:100%}

/* Tables printed by AJAX plan calculators and order pages */
.lb-theme .table,.lb-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px}
.lb-theme .table th,.lb-theme .table td,.lb-table th,.lb-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.lb-theme .table thead th,.lb-table thead th{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);font-weight:700;background:var(--mist)}
.lb-theme .table thead th:first-child,.lb-table thead th:first-child{border-radius:12px 0 0 12px}
.lb-theme .table thead th:last-child,.lb-table thead th:last-child{border-radius:0 12px 12px 0}
.lb-theme .table-responsive,.lb-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.lb-theme .table-bordered{border:1px solid var(--line);border-radius:14px;overflow:hidden}

/* Footer social icons from admin (image icons) */
.ftr .social{flex-wrap:wrap}
.ftr .social li{display:block}
.ftr .social a img{width:22px;height:22px;object-fit:contain;border-radius:4px}
.ftr__bot .copyright p{margin:0}

/* Ratings (jquery.rateit) */
.lb-theme .rateit .rateit-selected{color:var(--flame)}

/* Pagination / generic notices */
.lb-theme .pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:28px}
.lb-theme .pagination li a,.lb-theme .pagination li span{min-width:42px;height:42px;padding:0 12px;border-radius:999px;border:1.5px solid var(--line);display:grid;place-items:center;font-weight:700;font-size:14px}
.lb-theme .pagination li.active a,.lb-theme .pagination li.active span{background:var(--ink);border-color:var(--ink);color:#fff}

/* Generic rich text from CMS (descriptions, blog bodies, inner pages) */
.lb-rich{color:var(--ink);font-size:16px;line-height:1.7}
.lb-rich>*+*{margin-top:1em}
.lb-rich h1,.lb-rich h2,.lb-rich h3,.lb-rich h4{font-family:var(--font-d);letter-spacing:-.015em;line-height:1.2;margin-top:1.4em}
.lb-rich h1{font-size:32px}.lb-rich h2{font-size:26px}.lb-rich h3{font-size:21px}.lb-rich h4{font-size:18px}
.lb-rich ul,.lb-rich ol{padding-left:1.3em}
.lb-rich ul{list-style:disc}.lb-rich ol{list-style:decimal}
.lb-rich li+li{margin-top:.35em}
.lb-rich a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.lb-rich img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.lb-rich table{width:100%;border-collapse:collapse}
.lb-rich td,.lb-rich th{border:1px solid var(--line);padding:10px 12px}
.lb-rich p{margin:0}

/* ---------- Tablet header: give the search box room ---------- */
@media (min-width:761px) and (max-width:1100px){
  .hdr__act .act .txt{display:none}
  .hdr__act .act{padding:8px}
  .hdr__bar{gap:16px}
  .ticker__links{gap:12px;font-size:12.5px}
}

/* ---------- USP strip: keep icons centred in their round badge ----------
   (.usp span{display:block} in style.css was overriding .usp__ic{display:grid}) */
.usp .usp__ic{display:grid;place-items:center;flex:none;width:46px;height:46px;color:var(--red);font-size:0;line-height:0}
.usp .usp__ic svg{display:block;margin:0}
