/*
Theme Name: BestSmoke
Theme URI: https://bestsmoke.co.uk
Description: Header, footer and design system for the BestSmoke UK cigarette shop. All shop content (products, basket, checkout, orders, age gate, SEO) comes from the companion "BestSmoke" plugin — use the two together.
Version: 1.0.3
Requires at least: 6.0
Requires PHP: 7.4
Author: BestSmoke
Author URI: https://bestsmoke.co.uk
License: GPL-2.0+
Text Domain: bestsmoke-theme
*/

:root{
	--cst-drab:#4a412a;
	--cst-drab-deep:#2b2618;
	--cst-paper:#ecece6;
	--cst-surface:#ffffff;
	--cst-ink:#1d1a12;
	--cst-muted:#666152;
	--cst-line:#d6d3c7;
	--cst-focus:#c08a1c;
	--cst-name:"Lucida Sans","Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Verdana,sans-serif;
	--cst-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	--cst-wrap:1200px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body.cst-site{margin:0;background:var(--cst-paper);color:var(--cst-ink);font:16px/1.55 var(--cst-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--cst-drab)}
a:hover{color:var(--cst-ink)}
h1,h2,h3{line-height:1.2}
.cst-site :focus-visible{outline:3px solid var(--cst-focus);outline-offset:2px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cst-skip{position:absolute;left:12px;top:-60px;z-index:100000;padding:10px 16px;background:var(--cst-ink);color:#fff;border-radius:4px}
.cst-skip:focus{top:12px}
.cst-wrap{max-width:var(--cst-wrap);margin:0 auto;padding:0 24px}

/* ── Notice bar ── */
.cst-bar{background:var(--cst-drab-deep);color:#d9d2bb;font-size:.84rem}
.cst-bar .cst-wrap{display:flex;justify-content:center;gap:28px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.cst-bar strong{color:#fff;font-weight:600}

/* ── Header ── */
.cst-header{position:sticky;top:0;z-index:500;background:rgba(236,236,230,.94);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--cst-line)}
.cst-header__inner{display:flex;align-items:center;gap:32px;min-height:72px}
.cst-logo{font:400 1.35rem/1 var(--cst-name);letter-spacing:-.01em;color:var(--cst-ink);text-decoration:none;white-space:nowrap}
.cst-logo:hover{color:var(--cst-ink)}
.cst-logo img{max-height:44px;width:auto}
.cst-nav{flex:1}
.cst-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.cst-nav a{display:block;padding:10px 12px;border-radius:4px;color:var(--cst-ink);text-decoration:none;font-weight:500}
.cst-nav a:hover,.cst-nav .current-menu-item>a,.cst-nav a[aria-current="page"]{background:#dfded6}
.cst-header__tools{display:flex;align-items:center;gap:8px}
.cst-header__link{padding:10px 12px;color:var(--cst-ink);text-decoration:none;font-size:.95rem}
.cst-header__link:hover{text-decoration:underline}
.cst-basketbtn{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;background:var(--cst-drab);color:#fff;border-radius:4px;text-decoration:none;font-weight:600}
.cst-basketbtn:hover{background:var(--cst-drab-deep);color:#fff}
.cst-basketbtn__count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:var(--cst-drab);font-size:.8rem;display:inline-grid;place-items:center}
.cst-basketbtn__count[hidden]{display:none}
.cst-navtoggle{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:10px}
.cst-navtoggle span{display:block;height:2px;background:var(--cst-ink);margin:5px 0;transition:transform .2s,opacity .2s}
.cst-navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.cst-navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.cst-navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── Main ── */
.cst-main{min-height:60vh;padding:16px 0 40px}
.cst-content{line-height:1.7}
.cst-content > h1:first-child{font:400 clamp(1.9rem,3.5vw,2.6rem)/1.15 var(--cst-name);letter-spacing:-.015em;margin:8px 0 20px}
.cst-content h2{font:400 1.45rem/1.25 var(--cst-name);margin:32px 0 10px}
.cst-content p,.cst-content li{max-width:70ch}
.cst-prose{max-width:780px}

/* ── Footer ── */
.cst-footer{background:var(--cst-drab-deep);color:#cfc8b2;margin-top:40px}
.cst-footer a{color:#ece7d6;text-decoration:none}
.cst-footer a:hover{text-decoration:underline;color:#fff}
.cst-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding:56px 0 40px}
.cst-footer__brand .cst-logo{color:#fff;font-size:1.4rem}
.cst-footer__brand p{margin:14px 0 0;line-height:1.6;max-width:32ch}
.cst-footer h2{font:600 .95rem var(--cst-body);color:#fff;margin:0 0 14px}
.cst-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:.93rem}
.cst-footer__warning{border-top:1px solid #4a432f;border-bottom:1px solid #4a432f}
.cst-footer__warning p{margin:0;padding:18px 0;font:400 1.05rem var(--cst-name);color:#fff;text-align:center}
.cst-footer__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0 28px;font-size:.84rem}
.cst-footer__bottom p{margin:0}

/* ── Generic ── */
.cst-404{text-align:center;padding:72px 0}
.cst-404 h1{font:400 2.4rem var(--cst-name)}
.cst-searchlist{list-style:none;padding:0}
.cst-searchlist li{padding:16px 0;border-bottom:1px solid var(--cst-line)}

@media (max-width:960px){
	.cst-navtoggle{display:block;order:3}
	.cst-header__inner{gap:8px}
	.cst-header__tools{margin-left:auto}
	.cst-nav{position:absolute;left:0;right:0;top:100%;background:var(--cst-paper);border-bottom:1px solid var(--cst-line);display:none;padding:8px 16px 16px}
	.cst-nav.is-open{display:block}
	.cst-nav ul{flex-direction:column}
	.cst-nav a{padding:14px 12px;font-size:1.05rem}
	.cst-header__link{display:none}
	.cst-footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
	.cst-wrap{padding:0 16px}
	.cst-basketbtn__label{display:none}
	.cst-footer__grid{grid-template-columns:1fr;gap:28px}
	.cst-bar .cst-wrap{gap:4px 16px;font-size:.78rem}
}
