:root{font-family:Arial,Helvetica,sans-serif;color:#17191d;background:#fff;--black:#0c0d10;--charcoal:#20242a;--red:#c5001a;--red-dark:#9e0015;--paper:#f6f6f4;--line:#d9dce0;--muted:#626972}
*{box-sizing:border-box}
html{scroll-behavior:smooth}body{margin:0;line-height:1.55}
a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}
[hidden]{display:none!important}
.skip-link{position:absolute;top:-100px;left:1rem;z-index:4;padding:.7rem 1rem;background:#fff;border:2px solid var(--red)}
.skip-link:focus{top:1rem}
.site-header,header{background:#fff;border-bottom:1px solid var(--line)}
.header-inner,header{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px max(24px,calc((100vw - 1216px)/2))}
.brand,header>a{display:flex;align-items:center;gap:16px;text-decoration:none;font-weight:800}
.brand img,header>a img{width:auto;height:70px;object-fit:contain}
nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
nav a{font-size:.87rem;font-weight:800;text-decoration:none}
nav a:hover,nav a[aria-current=page]{color:var(--red)}
nav button{background:#fff;color:var(--black);border:1px solid var(--line)}
.hero{position:relative;overflow:hidden;background:var(--black);color:#fff}
.hero::before{content:"";position:absolute;inset:0;opacity:.16;background-image:linear-gradient(#fff2 1px,transparent 1px),linear-gradient(90deg,#fff2 1px,transparent 1px);background-size:70px 70px}
.hero-inner{position:relative;max-width:1280px;margin:auto;padding:76px 32px 86px}
.hero h1{max-width:900px;margin:0;font-size:clamp(2.6rem,5vw,5rem);line-height:1.02;letter-spacing:-.04em}
.hero p:not(.eyebrow){max-width:760px;color:#bec3ca;font-size:1.08rem}
.eyebrow{margin:0 0 14px;color:var(--red);font-size:.73rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.button,.contact,button[type=submit],#preview-import,#commit-import{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1rem;min-height:44px;border:0;border-radius:4px;background:var(--red);color:#fff;font-weight:800;text-decoration:none;cursor:pointer}
.button-outline{background:transparent;border:1px solid #777;color:#fff}
.button:hover,.contact:hover,button[type=submit]:hover,#preview-import:hover,#commit-import:hover{background:var(--red-dark)}
button:disabled{opacity:.52;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2679aa;outline-offset:2px}
.shell{max-width:1280px;margin:auto;padding:76px 32px}
.pillar-overview{padding-bottom:60px}
.section-heading h2{margin:0 0 30px;font-size:clamp(2rem,3.7vw,3.7rem);line-height:1.05;letter-spacing:-.035em}
.pillar-groups{display:grid;grid-template-columns:1fr;gap:18px}
.pillar-group{min-width:0;background:var(--paper);border:1px solid var(--line);padding:24px}
.pillar-group>img{height:90px;width:auto;object-fit:contain;object-position:left center;margin-bottom:18px}
.pillar-group h3{font-size:1.25rem;margin:0 0 18px}
.pillar-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pillar-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;background:#fff;border:1px solid var(--line);text-decoration:none;font-weight:700}
.pillar-links a:hover{border-color:var(--red);color:var(--red)}
.catalogue-results{max-width:none;background:var(--paper);padding-left:max(32px,calc((100vw - 1216px)/2));padding-right:max(32px,calc((100vw - 1216px)/2))}
#filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.5fr) auto;align-items:end;gap:16px;padding:20px;background:#fff;border:1px solid var(--line)}
label{display:grid;gap:6px;font-weight:700}
input,select,textarea{width:100%;min-height:44px;padding:.7rem;border:1px solid #9eafb7;border-radius:4px;background:#fff;color:var(--black)}
textarea{min-height:110px;resize:vertical}
#message{min-height:25px;margin:22px 0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.card,.panel{min-width:0;background:#fff;border:1px solid var(--line);border-radius:4px}
.card{overflow:hidden;display:flex;flex-direction:column}
.card>img,.image-placeholder{width:100%;height:210px;object-fit:contain;background:#edf0f1}
.image-placeholder{display:grid;place-items:center;padding:15px;color:var(--muted);font-size:.83rem;text-align:center}
.card-details{padding:22px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.card h3{margin:0;font-size:1.3rem;line-height:1.2}
.card .description{color:var(--muted);white-space:pre-line}
.price{font-size:1.35rem;margin-top:auto}
.stock{text-transform:capitalize;font-size:.9rem}
.contact{margin-top:8px}
footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px max(24px,calc((100vw - 1216px)/2));background:var(--black);color:#fff}
footer p{max-width:780px;margin:0;color:#bec3ca}footer a{color:#fff}
main.shell{max-width:1200px}
main.shell>h1{font-size:clamp(2rem,4vw,3.6rem)}
.panel{padding:24px;margin:20px 0}
.panel h2{margin-top:0}
#login{max-width:440px}
#workspace{display:block}
#product-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
#product-form h2,#product-form .description-field,#product-form #image-list,#product-form .actions{grid-column:1/-1}
#product-pillars{grid-column:1/-1;min-width:0;border:1px solid var(--line);padding:16px}
#product-pillars legend{font-weight:800;padding:0 6px}
.pillar-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pillar-choices label{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);font-weight:600}
.pillar-choices input{width:20px;height:20px;min-height:20px;flex:none}
#product-form .description-field textarea{width:100%}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.actions button:not([type=submit]),#clear,#logout,#image-list button,.card button{min-height:42px;padding:.6rem .9rem;background:#fff;color:var(--black);border:1px solid #aeb5bc;border-radius:4px;cursor:pointer}
.actions button:hover,#logout:hover,#image-list button:hover,.card button:hover{border-color:var(--red);color:var(--red)}
#image-list{display:flex;flex-wrap:wrap;gap:12px}
#image-list>div{display:flex;align-items:center;gap:8px}
#image-list img{width:96px;height:96px;object-fit:contain}
#admin-products .card{padding:20px;gap:6px}
#admin-products .card p,#admin-products .card h3{margin:0}
#admin-products .card button{margin-top:6px}
#mapping{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:18px 0}
#import-summary{font-weight:700}
.preview-scroll{overflow:auto;max-height:34rem}
.preview-scroll table{border-collapse:collapse;width:100%;min-width:780px}
.preview-scroll th,.preview-scroll td{border:1px solid var(--line);padding:.6rem;text-align:left;vertical-align:top}
.preview-scroll .invalid{background:#fff0ed}.preview-scroll .ready{background:#edf8ee}
@media(max-width:800px){.pillar-groups{grid-template-columns:1fr}#filters{grid-template-columns:1fr 1fr}#filters button{grid-column:1/-1}}
@media(max-width:620px){.header-inner,header{min-height:78px;padding:12px 18px;align-items:flex-start;flex-wrap:wrap}nav{width:100%;justify-content:space-between}.brand img,header>a img{height:54px}nav{gap:10px}nav a{font-size:.8rem}.hero-inner{padding:66px 20px}.hero h1{font-size:clamp(2.5rem,12vw,4rem)}.shell,.catalogue-results{padding:58px 20px}.pillar-group{padding:18px}.pillar-links,.pillar-choices,#filters,#product-form{grid-template-columns:1fr}#filters button,#product-form h2,#product-form .description-field,#product-form #image-list,#product-form .actions{grid-column:auto}footer{display:block;padding:30px 20px}footer>a{display:inline-block;margin-top:12px}.grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


#product-form fieldset:not(#product-pillars){min-width:0;border:1px solid var(--line);padding:16px}
#product-form fieldset:not(#product-pillars) legend{font-weight:800}
#product-form fieldset:not(#product-pillars) label,#product-form label:has(> input[name=stockUpdate]){display:flex;align-items:center;gap:10px}
#product-form input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:none}
#product-form #sku-help{margin:0;align-self:end;color:var(--muted);font-size:.9rem}
