/*
Theme Name: KitchenSmart
Theme URI: https://kitchensmart.uk.com
Author: Signal Marketing
Description: Custom theme for KitchenSmart - Luxury German Kitchens, Milton Keynes
Version: 1.0.0
Text Domain: kitchensmart
*/

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;background:#fff;color:#222;overflow-x:hidden}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:#f5f4f2}
::-webkit-scrollbar-thumb{background:#ea3d2f;border-radius:3px}

@keyframes fadeUp{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes heroZoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.au{animation:fadeUp .8s cubic-bezier(.22,1,.36,1) forwards;opacity:0}
.ai{animation:fadeIn .8s ease forwards;opacity:0}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}
.d4{animation-delay:.4s}.d5{animation-delay:.5s}.d6{animation-delay:.6s}.d7{animation-delay:.7s}

.rv{opacity:0;transform:translateY(20px);transition:all .65s cubic-bezier(.22,1,.36,1)}
.rv.vis{opacity:1;transform:translateY(0)}

.iz{overflow:hidden}
.iz img{transition:transform .55s cubic-bezier(.22,1,.36,1)}
.iz:hover img{transform:scale(1.03)}

.nl{position:relative}
.nl::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:#ea3d2f;transition:width .3s}
.nl:hover::after{width:100%}

.dd{opacity:0;visibility:hidden;transform:translateY(5px);transition:all .2s}
.dp:hover .dd{opacity:1;visibility:visible;transform:translateY(0)}

.mm{transform:translateX(100%);transition:transform .35s cubic-bezier(.22,1,.36,1)}
.mm.open{transform:translateX(0)}

/* Mega menu */
header .mega{opacity:0!important;visibility:hidden!important;transform:translateY(6px);transition:all .25s cubic-bezier(.22,1,.36,1);pointer-events:none!important}
header .mega-trigger:hover .mega{opacity:1!important;visibility:visible!important;transform:translateY(0);pointer-events:auto!important}
.mega a{transition:color .15s}
.nav-link{position:relative}
.nav-link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:#ea3d2f;transition:width .25s}
.mega-trigger:hover .nav-link::after{width:100%}

/* Mobile menu */
.mob-menu{transform:translateX(100%);transition:transform .35s cubic-bezier(.22,1,.36,1)}
.mob-menu.open{transform:translateX(0)}
#mobMenu .mob-sub{max-height:0!important;padding-top:0!important;padding-bottom:0!important;overflow:hidden!important;opacity:0;visibility:hidden;transition:max-height .35s cubic-bezier(.22,1,.36,1),padding .35s,opacity .2s,visibility .2s}
#mobMenu .mob-sub.open{max-height:600px!important;padding-bottom:1rem!important;opacity:1;visibility:visible}
.mob-chevron{transition:transform .25s}
.mob-chevron.open{transform:rotate(180deg)}

/* Mega image zoom */
.mg-img{overflow:hidden;border-radius:4px}
.mg-img img{transition:transform .45s cubic-bezier(.22,1,.36,1)}
.mg-img:hover img{transform:scale(1.05)}

/* FAQ accordion */
.ks-faq-a{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1)}
.ks-faq-item.open .ks-faq-a{max-height:800px}
.ks-faq-item.open .ks-faq-chev{transform:rotate(180deg)}
.ks-faq-item.open{border-color:rgba(234,61,47,.3)}
.ks-faq-item.open .ks-faq-q{background:#f5f4f2}

/* Policy / legal prose */
.ks-prose{color:#555;font-size:15px;line-height:1.7}
.ks-prose h2{color:#222;font-size:22px;font-weight:700;margin-top:2em;margin-bottom:.6em;line-height:1.25}
.ks-prose h2:first-child{margin-top:0}
.ks-prose h3{color:#222;font-size:17px;font-weight:700;margin-top:1.75em;margin-bottom:.5em;line-height:1.3}
.ks-prose h4{color:#222;font-size:15px;font-weight:700;margin-top:1.5em;margin-bottom:.4em}
.ks-prose p{margin-bottom:1.1em}
.ks-prose ul,.ks-prose ol{margin:1em 0 1.25em 1.25em;padding:0}
.ks-prose ul{list-style:disc}
.ks-prose ol{list-style:decimal}
.ks-prose li{margin-bottom:.4em;padding-left:.25em}
.ks-prose a{color:#ea3d2f;text-decoration:underline;text-underline-offset:3px}
.ks-prose a:hover{color:#c61c0f}
.ks-prose strong{color:#222;font-weight:700}
.ks-prose hr{border:none;border-top:1px solid #e5e5e3;margin:2em 0}
.ks-prose blockquote{border-left:3px solid #ea3d2f;padding-left:1.25em;margin:1.5em 0;font-style:italic;color:#2e2e2e}
.ks-prose table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:14px}
.ks-prose table th,.ks-prose table td{border:1px solid #e5e5e3;padding:.75em 1em;text-align:left}
.ks-prose table th{background:#f5f4f2;font-weight:700;color:#222}

/* Gallery */
.gal-track{scrollbar-width:none;-ms-overflow-style:none}
.gal-track::-webkit-scrollbar{display:none}

/* Lightbox */
.lightbox{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.92);align-items:center;justify-content:center}
.lightbox.active{display:flex}
.lb-img{max-width:90vw;max-height:85vh;object-fit:contain}

/* Review text clamp + toggle */
.ks-rv-wrap{position:relative}
.ks-rv-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.ks-rv-wrap.expanded .ks-rv-text{display:block;-webkit-line-clamp:unset;overflow:visible}
.ks-rv-toggle{display:none;background:none;border:none;padding:0;margin-top:6px;color:#ea3d2f;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
.ks-rv-toggle:hover{text-decoration:underline}
.ks-rv-wrap.clamped .ks-rv-toggle{display:inline-block}
